Spring框架之IOC(控制反转)—–(Inversion of Control)
-
什么是IOC?
- 用来完成—- 原来由程序员主动通过new来实例化对象的这个事情,转交给Spring来负责创建对象。
- 控制反转中—-控制是控制类的对象。反转是指将对象交给Spring类进行管理
-
IOC作用
解耦—-解耦是指:程序员不需要去管理对象,即不需要自己取创建对象了。
- 举例:比如mybatis中每次使用mapper时需要创建SqlSesssion对象。这个过程转交给Spring来完成,可以提高开发效率。
-
环境搭建:
- 首先需要四个核心包:core、bean、context、expression
- 另外需要一个commons-logging包
-
xml文件配置
- xml文件的配置使用的是schema约束。
- 这种约束方式相比dtd文件,是对标签进行约束更加灵活
- 标签的约束通过引入文件的不同会产生不同的限制效果,可扩展性强。
- 官方命名为applicationContext.xml 可以自己命名其他名字。
- 通过引入xsd文件(schema文件)来进行约束。每次引入一个xsd文件时就是引入了一个namespace(命名空间)
-
通过Spring来创建对象。
-
一般new对象的方式
![这里写图片描述](https://img-blog.csdn.net/20180911211822819?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xpMTY2NjM2MjY2MA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
//javabean
public class People {
private String name;
private int age;
..get、set方法
}
//测试方法
public static void main(String[] args) {
//People peo = new People();
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");//加载配置文件,创建applicationContext的实现类
People peo = applicationContext.getBean("peo", People.class);
System.out.println(peo);
}
xml文件配置对象
<bean id="peo" class="com.song.po.People"/> <!-- 配置对象的id和全类名 通过id获取对象 --!>
- 默认情况下,创建对象使用的是对象的无参构造。对象创建是在加载配置文件时创建的。
//javabean的无参构造
public People() {
System.out.println("走无参构造");
}
//注释掉取下面取对象的代码
public static void main(String[] args) {
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
// People peo = applicationContext.getBean("peo", People.class);
// System.out.println(peo);
}
//结果:走无参构造 说明在加载xml文件时就已经创建了bean对象,并放入了applicationContext容器中了
// String[] beanName = applicationContext.getBeanDefinitionNames(); 该方法获取容器中所有加载对象的id名
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)