Spring:IOC底层原理
程序员文章站
2022-03-03 12:33:18
...
IOC操作
- 实质:把对象的创建交给spring来管理
- IOC操作:
- 文件配置方式
- 注解方式
- IOC底层原理:
- xml配置文件:配置要创建对象类
- dom4j解析配置文件
- 工厂设计模式
- 反射:创建类的对象
IOC底层原理:
- 最底层:
缺陷:耦合度太高
public class User(){add();}
//在service中调用add()方法
User user=new User();
user.add();
- 工厂模式:
public class UserService{public void add()};
//创建工厂类
public class Factory{ getService(){return new UserService();}}
目的:UserServlet要得到一个User对象
public class UserServlet{UserService s=Factory.getService();}
- IOC原理:
目的:得到UserService对象
好处:以后只用修改xml文件
具体做法:- 创建xml文件
<bean id="user" class="cn.itclass.ioc.User"></bean>
- 创建工厂类:使用dom4j解析配置文件+反射
1. 使用dom4j解析xml文件
根据id值user,得到id对应的class属性的值
String classValue=“class属性值”;
2. 使用反射创建类对象
String cla=Class.forName(classValue); //类
UserService service=cla.newInstance(); //创建类的对象
//返回对象
return service;
IOC使用案例:
-
导入jar包
- beans context core expression 基本核心包
- log4j:支持日志输出的jar包
-
创建类,在类里面创建方法
-
创建spring配置文件,配置创建类
-
写代码测试对象创建
以下是配置文件中的内容:
- 配置文件中引入schema约束
- 配置文件已经封装好,可以直接得到对象
- spring核心配置文件名称和位置不是固定的
建议放到src下面,官方建议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 http://www.springframework.org/schema/beans/spring-beans.xsd">
<!-- IOC入门 -->
<bean id="user" class="cn.itclass.ioc.User"></bean>
</beans>
测试用例:
@Test
public void testUser () {
//1. 这一步作用:加载配置文件,根据配置文件中的内容创建好一个对象
/*
* dom4j解析配置文件,但是配置文件已经封装好一个对象
* 这一步作用:加载配置文件,根据配置文件中的内容创建好一个对象
*/
ApplicationContext context=new ClassPathXmlApplicationContext("bean1.xml");
//参数是xml配置文件的地址
//2.得到配置对象
User user=(User) context.getBean("user"); //配置文件中的id值
System.out.println(user);
user.add();
}
上一篇: 实例详解python3使用requests模块爬取页面内容
下一篇: JSF入门七(国际化信息)