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

0x01.2 创建方式选择
选择“Maven”项目, jdk1.8默认即可, 然后点击下一步

0x01.3 完善项目信息
Name = 项目名Location = 项目地址GroupId = 组名ArtifictId 一般写项目名点击完成即可

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

如果你懒的话,也可以直接复制这个完整的pom.xml目录: ./SpringDemo/pom.xml<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.github.pmiaowu</groupId> <artifactId>SpringDemo</artifactId> <version>1.0-SNAPSHOT</version> <!-- 修改Maven编译的JDK版本为1.8 --> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> </properties> <dependencies> <!-- https://mvnrepository.com/artifact/org.springframework/spring-context --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.3.21</version> </dependency> <!-- https://mvnrepository.com/artifact/junit/junit --> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.13.2</version> <scope>test</scope> </dependency> </dependencies></project>
0x01.5 添加目录
在 ./SpringDemo/src/main/java/目录 创建 com文件夹然后在 com文件夹里面在创建一个 test文件夹目录结构如下# 目录结构├── src│ └── main│ └── java│ └── com│ └── test│ └── User.java│ └── resources│ └── applicationContext.xml│ └── test│ └── java│ └── Test.java这样子Spring项目就创建完毕了,在通过小例子来进行基础了解
0x02 小例子
0x02.1 基本例子
// 第一步// 在./SpringDemo/src/main/java/com/test/创建个User.java// 目录: ./SpringDemo/src/main/java/com/test/// 文件名: User.javapackage com.test;public class User { private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } public void show() { System.out.println("name: " + name); }}
// 第二步// 在./SpringDemo/src/main/resources/创建个applicationContext.xml// 文件名可以任取,不过一般这个文件名都叫applicationContext.xml// 目录: ./SpringDemo/src/main/resources/// 文件名: applicationContext.xml<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd"></beans>
导入以后IDEA会提示: Application context not configured for this file点击IDEA左边的: Configure application context创建一下即可,如下图所示


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

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