Spring的俩个核心功能
1、IOC/DI 控制反转/依赖注入
2、AOP
## IOC 控制反转
1.利用程序控制对象的创建和声明周期的管理称为“主动控制”。
主动控制适合管理和创建过程简单的对象。
2.相对“主动控制”来说,为控制反转。
对象的创建过程复杂繁琐,适合控制反转,将对象的创建和生命周期管理交给“环境”,也就是交给Spring框架来进行管理。
3.使用Spring的控制反转
1.导入Spring的包
2.创建需要被管理的对象
3.配置Spring的配置文件:告诉Spring IOC创建哪个类型的对象
4.创建测试案例
1)初始化Spring IOC容器,Spring会自动创建对象
2)从Spring中获得创建好的对象
-----IOC的使用--------
1.创建maven工程导入Spring的包与Junit的包(方便测试)
<!--Spring框架包-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.2.2.RELEASE</version>
</dependency>
<!--Junit测试包-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
2.创建需要被管理的对象(这里简单创建了一个用户的实体类)
package entity;
public class User {
private String userName;
private Integer age;
private String sex;
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
@Override
public String toString() {
return "User{" +
"userName='" + userName + '\'' +
", age=" + age +
", sex='" + sex + '\'' +
'}';
}
}
3.配置Spring的配置文件,在resources文件夹下创建applicationContext.xml文件(参考官网链接)
xml配置文件官网链接
<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">
<!-- 通知Spring,再启动时候自动创建User类型对象,并且绑定标识ID为“user” -->
<bean id="user" class="entity.User"></bean>
<!-- 如果该类为接口,或者抽象类需要加上属性,abstract="true" -->
<bean id="user" abstract="true" class="entity.User"></bean>
</beans>
4.创建测试案例
@Test
public void getUser(){
ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
//根据配置文件中的标识id来获取
//User user = (User)ctx.getBean("user");
//Spring提供重载方法,可避免类型转化
User user = ctx.getBean("user",User.class);
user.setUserName("csdn");
System.out.println(user);
}
5.运行结果
User{userName=‘csdn’, age=null, sex=‘null’}
可以看出这样我们就将对象交给了Spring来管理,想要获取对象时就可以通过Spring框架来获取对象。
小伙伴们肯定会有许多疑问?这样获取对象不如自己创建简单,怎么样创建对象时赋值进行初始化等等,看下一篇文章。