1 Spring 模块构建
- 先创建一个 JDK 17 的 IDEA project,删除 src 目录。
- 然后创建一个 parent 为 Spring 6 的 Module。

- 导入依赖
<dependencies>
<!--spring context依赖-->
<!--当你引入Spring Context依赖之后,表示将Spring的基础依赖引入了-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>6.0.2</version>
</dependency>
<!--junit5测试-->
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>5.3.1</version>
</dependency>
</dependencies>- 创建基础类,如 HelloWorld 类
- 在 resources 目录创建一个 Spring 配置文件(命名随意)
- New → XML 配置文件 →Spring config
- 添加 HelloWorld bean 配置
- 创建测试类
- 见下面 2.4 节
2 Spring 第一个程序
2.1 创建 Maven 项目,引入依赖
创建 Maven 项目,在 pom.xml 中添加 Spring 框架依赖。
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.3.11</version>
</dependency>2.2 定义接口以及实现类
public interface HelloSpring {
void sayHello();
}
public class HelloSpringImpl implements HelloSpring {
@Override
public void sayHello() {
System.out.println("Hello Spring");
}
}2.3 创建 Spring 配置文件
resources/applicationContext. Xml
Spring 配置文件
<?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 http://www.springframework.org/schema/beans/spring-beans.xsd"> <!-- bean definitions here -->
<!--将指定类配置给Spring,让Spring创建其对象的实例-->
<!--id:标识符(别名) class:需要实例化的类路径-->
<bean id="helloSpring" class="com.thr.HelloSpringImpl"></bean>
<bean id="helloSpring1" class="com.thr.HelloSpringImpl"></bean>
<bean id="helloSpring2" class="com.thr.HelloSpringImpl"></bean>
</beans>
<beans>
根标签,spring 把 java 对象称为 bean。
spring-beans.xsd
约束文件,和 mybatis 中的 dtd 一样。
<bean id="" class="" />
使用一个 <bean> 标签来标志一个 bean 对象。
id 为该对象的自定义名称,唯一值,spring 通过该值来找到对象。
class 为类的全限定名称,但是不能是接口(Spring 通过反射创建对象,必须使用类)。类的全限定名称,类文件右键-copy path-copy reference。
Spring 创建好对象后将其放到 map 中,类似 stringMap. Put (id, 对象)。
同一个类可以创建多个 Bean 对象,只要 id 值不同即可。
2.4 使用 Spring 创建并使用自定义对象
根据配置文件生成对象
Spring 创建对象的时间:在创建 Spring 容器时 (创建 ApplicationContext 对象时),创建所有 Bean 对象。可以通过在对象的构造函数中添加输出语句来检测到。
这种方法执行效率高 & 占内存。
//Spring方式:XML解析+反射+工厂模式
//1.初始化Spring容器,加载 Spring 配置文件
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
//2.通过容器获取helloSpring实例,getBean()方法中的参数是bean标签中的id
HelloSpring helloSpring1 = (HelloSpring) applicationContext.getBean("helloSpring");
//3.调用实例中的方法
helloSpring1.sayHello();ApplicationContext. Class
读取 Spring 配置文件并创建 Spring 容器的接口,常用的实现类有 FileSystemXmlApplicationContext.class 和 ClassPathXmlApplicationContext.class,前者一般用于读取其他盘符中的文件/绝对路径,后者一般用于当前项目根目录文件读取。
getBean(id) 方法,根据 Bean 对象的 id,获得 Bean 对象,Object 返回,记得强转。
getBeanDefinitionCount() 方法,获得 Bean 对象的数量,int 返回。
getBeanDefinitionNames() 方法,获得 Bean 对象的名称,String[] 返回。