前言

上一篇文章中我们讲了 Spring 的相关简介,那么这一节我们就来看看,如何使用 Spring 来创建一个最简单的 HelloWorld 入门实例。等到我们上手之后,再去研究一下 Spring 的一些核心原理及配置。

创建 Spring 实例的各种方式

创建 Spring 项目的方式有很多种,最原始可以通过导包来创建,但在这里我们就直接用 Maven 来进行依赖管理,省去各种导包过程。如果你对 Maven 还不够熟悉,那么推荐你先去看看 Maven 的相关内容,我这里之前也写了 Maven 的相关文章,详情可戳 👉 Maven 系列文章

Maven 创建

  1. 新建 Maven 项目;

创建 Spring 项目的 3 种方式 - 图1

  1. 填写项目名及 Maven 坐标相关配置;

创建 Spring 项目的 3 种方式 - 图2

  1. 点击 Finish 后完成项目构建,构建后的项目目录结构如下;

创建 Spring 项目的 3 种方式 - 图3

  1. 接下来我们就是在 pom.xml 中添加 Spring 的相关依赖,这里主要导入 Spring 的四个核心依赖包 BeansContextCoreExpression
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project xmlns="http://maven.apache.org/POM/4.0.0"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  5. <modelVersion>4.0.0</modelVersion>
  6. <groupId>com.cunyu1943</groupId>
  7. <artifactId>springdemo1</artifactId>
  8. <version>1.0-SNAPSHOT</version>
  9. <properties>
  10. <maven.compiler.source>11</maven.compiler.source>
  11. <maven.compiler.target>11</maven.compiler.target>
  12. </properties>
  13. <dependencies>
  14. <dependency>
  15. <groupId>org.springframework</groupId>
  16. <artifactId>spring-core</artifactId>
  17. <version>5.3.9</version>
  18. </dependency>
  19. <dependency>
  20. <groupId>org.springframework</groupId>
  21. <artifactId>spring-context</artifactId>
  22. <version>5.3.9</version>
  23. </dependency>
  24. <dependency>
  25. <groupId>org.springframework</groupId>
  26. <artifactId>spring-beans</artifactId>
  27. <version>5.3.9</version>
  28. </dependency>
  29. <dependency>
  30. <groupId>org.springframework</groupId>
  31. <artifactId>spring-expression</artifactId>
  32. <version>5.3.9</version>
  33. </dependency>
  34. </dependencies>
  35. </project>
  1. 创建一个普通类,然后类中创建一个普通方法;
  1. package com.cunyu;
  2. /**
  3. * Created with IntelliJ IDEA.
  4. *
  5. * @author : zhangliang
  6. * @version : 1.0
  7. * @project : JavaLearning
  8. * @package : com.cunyu
  9. * @className : Hero
  10. * @createTime : 2021/8/14 10:48
  11. * @description : 英雄实体类
  12. */
  13. public class Hero {
  14. private String name;
  15. private Integer sex;
  16. public void attack() {
  17. System.out.println("开始攻击 ~");
  18. }
  19. }
  1. 创建 Spring 配置文件,用于配置创建的对象;

Spring 配置文件一般是一个 xml 文件,其名字可以有我们自定义。但是要注意它的存放位置,一般是位于 resources 目录下,如果放在其他位置,有可能出现报错。

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
  5. <bean id="hero" class="com.cunyu.Hero"></bean>
  6. </beans>
  1. 建立测试类进行测试;
  1. package com.cunyu;
  2. import org.junit.Test;
  3. import org.springframework.context.ApplicationContext;
  4. import org.springframework.context.support.ClassPathXmlApplicationContext;
  5. /**
  6. * Created with IntelliJ IDEA.
  7. *
  8. * @author : zhangliang
  9. * @version : 1.0
  10. * @project : JavaLearning
  11. * @package : com.cunyu
  12. * @className : HeroTest
  13. * @createTime : 2021/8/14 10:55
  14. * @description : 英雄测试类
  15. */
  16. public class HeroTest {
  17. @Test
  18. public void testAttack() {
  19. // 加载 Spring 配置文件
  20. ApplicationContext applicationContext = new ClassPathXmlApplicationContext("ApplicationContent.xml");
  21. // 获取配置创建的对象
  22. Hero hero = applicationContext.getBean("hero", Hero.class);
  23. System.out.println(hero);
  24. hero.attack();
  25. }
  26. }

创建 Spring 项目的 3 种方式 - 图4

Spring Initializer 创建

  1. 新建项目时选择 Spring Initializer ,并填下 Maven 坐标相关信息;

创建 Spring 项目的 3 种方式 - 图5

  1. 这里其实严格上说是一个 SpringBoot 项目,而不是 Spring 项目,但用于 Spring 项目也可以,直接 Finish

创建 Spring 项目的 3 种方式 - 图6

  1. 同样的,我们创建实体类 Hero
  1. package com.cunyu.springdemo2;
  2. /**
  3. * Created with IntelliJ IDEA.
  4. *
  5. * @author : zhangliang
  6. * @version : 1.0
  7. * @project : JavaLearning
  8. * @package : com.cunyu.springdemo2
  9. * @className : Hero
  10. * @createTime : 2021/8/14 11:18
  11. * @description :
  12. */
  13. public class Hero {
  14. private String name;
  15. private Integer sex;
  16. public void attack() {
  17. System.out.println("开始攻击 ~");
  18. }
  19. }
  1. 然后同样在 resources 目录下新建 Spring 配置文件 ApplicationContent.xml
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
  5. <bean id="hero" class="com.cunyu.springdemo2.Hero"></bean>
  6. </beans>
  1. 编写测试类进行测试;
  1. package com.cunyu.springdemo2;
  2. import org.junit.jupiter.api.Test;
  3. import org.springframework.boot.test.context.SpringBootTest;
  4. import org.springframework.context.ApplicationContext;
  5. import org.springframework.context.support.ClassPathXmlApplicationContext;
  6. @SpringBootTest
  7. class SpringDemo2ApplicationTests {
  8. @Test
  9. void testAttack() {
  10. ApplicationContext applicationContext = new ClassPathXmlApplicationContext("ApplicationContent.xml");
  11. Hero hero = applicationContext.getBean("hero", Hero.class);
  12. System.out.println(hero);
  13. hero.attack();
  14. }
  15. }

创建 Spring 项目的 3 种方式 - 图7

  1. 注意

通过这种方式创建的 pom.xml 文件如下:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  4. <modelVersion>4.0.0</modelVersion>
  5. <parent>
  6. <groupId>org.springframework.boot</groupId>
  7. <artifactId>spring-boot-starter-parent</artifactId>
  8. <version>2.5.3</version>
  9. <relativePath/> <!-- lookup parent from repository -->
  10. </parent>
  11. <groupId>com.cunyu</groupId>
  12. <artifactId>springdemo2</artifactId>
  13. <version>0.0.1-SNAPSHOT</version>
  14. <name>SpringDemo2</name>
  15. <description>SpringDemo2</description>
  16. <properties>
  17. <java.version>11</java.version>
  18. </properties>
  19. <dependencies>
  20. <dependency>
  21. <groupId>org.springframework.boot</groupId>
  22. <artifactId>spring-boot-starter</artifactId>
  23. </dependency>
  24. <dependency>
  25. <groupId>org.springframework.boot</groupId>
  26. <artifactId>spring-boot-starter-test</artifactId>
  27. <scope>test</scope>
  28. </dependency>
  29. </dependencies>
  30. <build>
  31. <plugins>
  32. <plugin>
  33. <groupId>org.springframework.boot</groupId>
  34. <artifactId>spring-boot-maven-plugin</artifactId>
  35. </plugin>
  36. </plugins>
  37. </build>
  38. </project>

对比通过 Maven 创建的方式,这里所添加的依赖有所不同。这是因为这种方式实际上创建的是 SpringBoot 项目,而 SpringBoot 的依赖和 Spring 有所不同,但 SpringBoot 能够实现 Spring 所具有的功能,所以这里不用再去重复添加 Spring 的相关依赖。

在线创建

这种方式其实和 Spring Initializer 创建的方式一样,只不过它是以网页在线的方式,然后再导入导出 IDEA 中进行后续操作。

  1. 打开 https://start.spring.io/ 来生成项目;

创建 Spring 项目的 3 种方式 - 图8

  1. 然后点击左下角生成按钮或使用快捷键 Ctrl + Enter 生成;
  2. 将压缩包下载后,解压缩后用自己喜欢的 IDE 开发即可;

创建 Spring 项目的 3 种方式 - 图9

假如我们导入到 IDEA,那么接下来的步骤就是同上一种方式相同,接着就是创建实体类、配置 Spring 相关配置,最后测试类测试即可。

总结

好了,以上就是今天的所有内容了,主要介绍了 3 种创建 Spring 实例的方式。当然,你也可以去把 Spring 相关的依赖包进行下载后,然后导入包的方式进行项目创建,但这里更加推荐使用 Maven 的方式,方便快捷。

最后,原创不易,如果你觉得文章的内容对你有所帮助,那就点赞关注吧!