1、创建普通的Maven项目
Spring项目创建分三个步骤:
-
创建meven项目
-
添加Spring框架支持
-
添加启动类
第一步:
第二步:添加框架:
在pom.xml里添加两个依赖
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.2.3.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>5.2.3.RELEASE</version>
</dependency>
1. 第一个依赖配置块:
-
groupId:
指定了依赖的组织/项目的唯一标识符,这里是org.springframework
,表示是 Spring 框架的官方组织。 -
artifactId
: 指定了依赖项目的名称,这里是spring-context
,表示 Spring 框架的上下文模块。 -
version
: 指定了依赖项目的版本号,这里是5.2.3.RELEASE,表示所使用的 Spring 框架的版本号。
2. 第二个依赖配置块:
-
groupId
`: 依然是org.springframework
,表示是 Spring 框架的官方组织。 -
artifactId:
这次是spring-beans
,表示 Spring 框架的 beans 模块,负责管理bean的加载、注册和生命周期。 -
version:
同样是`5.2.3.RELEASE`版本。
依赖的示例图:
2、创建实体类
在子项目的java
目录下新建一个com.atangbiji.pojo
包(用于存放我们自己编写的实体类),并在该包下新建一个Hello
实体类。
User.java
文件:
public class User {
private int id;
private String name;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
3、创建Beans的XML配置文件(重点)
我们将Bean交给Spring保管!因此我们需要在在resources资源目录下创建一个 Spring 配置⽂件spring-config.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 http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd">
<!--bean就是那些组成我们应用程序的Java对象,由Spring中的IOC容器创建、组装和管理-->
<!--bean标签用于创建Java对象。其中:id:bean的唯一标识;class:bean所对应对象的全限定类名-->
<bean id = 'user' class =' com.java.demo.User'></bean>
</beans>
我们在配置文件中使用<Bean>标签,将类注入到Spring当中
注:
-
XML配置文件的名称可以自定义,官方建议使用
applicationContext.xml
。 -
Spring
给8种基本类型和String
类型的成员变量赋值时用value
; -
Spring
给引用类型的成员变量赋值时用ref
。
4、测试
在子项目的src/test/java
目录下,新建一个MyTest
测试类,用于测试Spring
。
MyTest.java
文件
import com.atangbiji.pojo.Hello;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class MyTest {
@Test
public void test(){
//解析beans.xml文件,IOC容器生成并管理相应的Bean对象
ApplicationContext context = new ClassPathXmlApplicationContext("spring-config.xml");
//通过Spring的上下文对象,从IOC容器中获取Bean对象
User user = context.getBean("user", User.class);
//调用Bean对象的方法
System.out.println(user.toString());
}
}
注:ClassPathXmlApplicationContext是实现ApplicationContext接口的类,扫描配置文件(名字一定要一模一样),获取Spring容器的Bean对象。
扩展:通过BeanFactory 获取beans
BeanFactory beanFactory = new XmlBeanFactory(new ClassPathResource("spring-config.xml"));
获取bean后的执行代码:
public class APP {
public static void main(String[] args) {
BeanFactory beanFactory = new XmlBeanFactory(new ClassPathResource("spring-config.xml"));
User user = beanFactory.getBean("user",User.class);
}
}
BeanFactory和ApplicationContex 的区别:
功能上的区别:
-
ApplicationContext
在初始化容器时就会实例化所有的 Bean,提前进行依赖注入、初始化和单例模式的创建等操作,因此启动时间相对较长,但对于用户来说,获取 Bean 时速度较快。 -
BeanFactory
在初始化容器时不会实例化所有的 Bean,而是在获取 Bean 时才进行实例化。因此启动时间较短,但是在获取 Bean 时可能会稍微慢一些。
场景上:
-
如果应用程序需要提前加载所有的 Bean,并且对启动时间没有特别高的要求,可以选择使用
ApplicationContext
。 -
如果应用程序的启动时间较为重要,而且有些 Bean 可能很少被使用,可以选择使用
BeanFactory
。
5.总结
-
Spring项目的创建
-
创建一个Maven项目
-
添加Spring框架依赖 【spring-context】
-
添加启动类 【功能:为后面从Spring容器中读取Bean做准备】
-
-
存储Bean
-
创建Bean对象
-
将Bean注册到Spring容器中 【spring-config.xml配置文件】
-
-
读取Bean
-
得到Spring 对象【ApplicationContext,BeanFactory】
-
通过Spring 对象的 getBean() 方法获取到Bean对象 【DI操作】
-
通过Spring 对象的 getBean() 方法获取到Bean对象 【DI操作】
-
JAVA学习课堂
博主是一名程序猿,平时会积累自己的学习经验,java相关技术、SSM、spring全家桶,微服务、MySQL、集群、分布式、VUE等相关知识,面试相关知识。 一起努力。一起加油,惊艳所有人。
公众号