0x01 创建项目

0x01.1 打开idea创建新项目

image.png

0x01.2 创建方式选择

  1. 选择“Maven”项目, jdk1.8默认即可, 然后点击下一步

image.png

0x01.3 完善项目信息

  1. Name = 项目名
  2. Location = 项目地址
  3. GroupId = 组名
  4. ArtifictId 一般写项目名
  5. 点击完成即可

image.png

0x01.4 修改pom.xml导入依赖

  1. 在建好的项目下找到pom.xml文件并打开
  2. 目录: ./SpringDemo/pom.xml
  3. 注: 第一次添加依赖会报红, 需要点击旁边的Maven按钮刷新, 等待IDEA自动导入依赖文件
  4. 1. 修改Maven编译的JDK版本为1.8
  5. 注: 在 <project></project> 标签中添加如下数据
  6. <properties>
  7. <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  8. <maven.compiler.source>1.8</maven.compiler.source>
  9. <maven.compiler.target>1.8</maven.compiler.target>
  10. </properties>
  11. 2. 添加Spring所需要的依赖
  12. 注: 在 <dependencies></dependencies> 标签中添加如下数据,没有这个标签就自己创建
  13. <!-- https://mvnrepository.com/artifact/org.springframework/spring-context -->
  14. <dependency>
  15. <groupId>org.springframework</groupId>
  16. <artifactId>spring-context</artifactId>
  17. <version>5.3.21</version>
  18. </dependency>
  19. 3. 添加单元测试框架所需要的依赖
  20. 注: 在 <dependencies></dependencies> 标签中添加如下数据,没有这个标签就自己创建
  21. <!-- https://mvnrepository.com/artifact/junit/junit -->
  22. <dependency>
  23. <groupId>junit</groupId>
  24. <artifactId>junit</artifactId>
  25. <version>4.13.2</version>
  26. <scope>test</scope>
  27. </dependency>

image.png

  1. 如果你懒的话,也可以直接复制这个完整的pom.xml
  2. 目录: ./SpringDemo/pom.xml
  3. <?xml version="1.0" encoding="UTF-8"?>
  4. <project xmlns="http://maven.apache.org/POM/4.0.0"
  5. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  6. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  7. <modelVersion>4.0.0</modelVersion>
  8. <groupId>com.github.pmiaowu</groupId>
  9. <artifactId>SpringDemo</artifactId>
  10. <version>1.0-SNAPSHOT</version>
  11. <!-- 修改Maven编译的JDK版本为1.8 -->
  12. <properties>
  13. <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  14. <maven.compiler.source>1.8</maven.compiler.source>
  15. <maven.compiler.target>1.8</maven.compiler.target>
  16. </properties>
  17. <dependencies>
  18. <!-- https://mvnrepository.com/artifact/org.springframework/spring-context -->
  19. <dependency>
  20. <groupId>org.springframework</groupId>
  21. <artifactId>spring-context</artifactId>
  22. <version>5.3.21</version>
  23. </dependency>
  24. <!-- https://mvnrepository.com/artifact/junit/junit -->
  25. <dependency>
  26. <groupId>junit</groupId>
  27. <artifactId>junit</artifactId>
  28. <version>4.13.2</version>
  29. <scope>test</scope>
  30. </dependency>
  31. </dependencies>
  32. </project>

0x01.5 添加目录

  1. ./SpringDemo/src/main/java/目录 创建 com文件夹
  2. 然后在 com文件夹里面在创建一个 test文件夹
  3. 目录结构如下
  4. # 目录结构
  5. ├── src
  6. └── main
  7. └── java
  8. └── com
  9. └── test
  10. └── User.java
  11. └── resources
  12. └── applicationContext.xml
  13. └── test
  14. └── java
  15. └── Test.java
  16. 这样子Spring项目就创建完毕了,在通过小例子来进行基础了解

0x02 小例子

0x02.1 基本例子

  1. // 第一步
  2. // 在./SpringDemo/src/main/java/com/test/创建个User.java
  3. // 目录: ./SpringDemo/src/main/java/com/test/
  4. // 文件名: User.java
  5. package com.test;
  6. public class User {
  7. private String name;
  8. public String getName() {
  9. return name;
  10. }
  11. public void setName(String name) {
  12. this.name = name;
  13. }
  14. public void show() {
  15. System.out.println("name: " + name);
  16. }
  17. }
  1. // 第二步
  2. // 在./SpringDemo/src/main/resources/创建个applicationContext.xml
  3. // 文件名可以任取,不过一般这个文件名都叫applicationContext.xml
  4. // 目录: ./SpringDemo/src/main/resources/
  5. // 文件名: applicationContext.xml
  6. <?xml version="1.0" encoding="UTF-8"?>
  7. <beans xmlns="http://www.springframework.org/schema/beans"
  8. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  9. xsi:schemaLocation="http://www.springframework.org/schema/beans
  10. https://www.springframework.org/schema/beans/spring-beans.xsd">
  11. </beans>
  1. 导入以后IDEA会提示: Application context not configured for this file
  2. 点击IDEA左边的: Configure application context
  3. 创建一下即可,如下图所示

image.png
image.png

  1. // 第三步
  2. // 在<beans>标签中,中配置User的信息, 设定User的姓名, 这里设置User的名字为“张三”
  3. // 这里提供一个配置好的applicationContext.xml文件
  4. // 目录: ./SpringDemo/src/main/resources/
  5. // 文件名: applicationContext.xml
  6. <?xml version="1.0" encoding="UTF-8"?>
  7. <beans xmlns="http://www.springframework.org/schema/beans"
  8. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  9. xsi:schemaLocation="http://www.springframework.org/schema/beans
  10. https://www.springframework.org/schema/beans/spring-beans.xsd">
  11. <!-- 使用Spring来创建对象, 在Spring中这些都叫Bean
  12. property标签就是对应对象中的属性设置
  13. 这种过程也叫做控制反转, 生成对象的任务交给了Spring容器来生成 -->
  14. <!-- <bean id="xx" class="xx"></bean>标签
  15. bean = 对象
  16. id = 变量名
  17. class = new的对象 -->
  18. <!-- <property name="xx" value="xx"></property>
  19. property = 相当于给对象中的属性设值
  20. name = 要设置的对象属性名称
  21. value = 具体的值, 基本数据类型 -->
  22. <!-- 注意: property标签中,name属性必须带有对应的setXxxx方法 -->
  23. <!-- 例如: name=张三, 必须要有一个setName()方法进行属性值的设置与getName()方法进行数据读取 -->
  24. <bean id="userTest" class="com.test.User">
  25. <property name="name" value="张三"></property>
  26. </bean>
  27. </beans>
  1. // 第四步
  2. // 创建一个测试类Test进行测试
  3. // 目录: ./SpringDemo/src/test/java/
  4. // 文件名: Test.java
  5. import com.test.User;
  6. import org.springframework.context.ApplicationContext;
  7. import org.springframework.context.support.ClassPathXmlApplicationContext;
  8. public class Test {
  9. public static void main(String[] args) {
  10. // 获取Spring的上下文对象
  11. ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
  12. User user = (User) context.getBean("userTest");
  13. user.show();
  14. }
  15. }
  16. // 运行结果
  17. name: 张三

image.png

0x03 小结

  1. 提供0x02的小例子可以看出来
  2. Spring中对象的创建不再通过在程序中new一个对象实现
  3. 而是Spring将所有相关的对象都交给Spring容器负责创建与维护
  4. 在程序的使用过程中,现在可以直接从Spring中拿到所需要的对象
  5. 通过Spring提供的IOC容器,可以将对象之间的依赖关系交由Spring进行控制,避免程序过度耦合
  6. 有了Spring,使用者不必再为单实例模式类/属性文件解析等这些很底层的需求编写代码,更专注于上层的应用