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.java
package 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.java
import 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,使用者不必再为单实例模式类/属性文件解析等这些很底层的需求编写代码,更专注于上层的应用