Spring 韩顺平视频学习(第二课)
一、 spring开发提倡接口编程,配合di技术可以层与层的解耦
beans.xml:
<bean id="changeLetter" class="com.zte.spring.LowerLetter" scope="prototype">
<property name="letter" value="ABCD"></property>
</bean>
<!--<bean id="changeLetter" class="com.zte.spring.UpperLetter" >-->
<!--<property name="letter" value="abcd"></property>-->
<!--</bean>-->
代码:
ChangeLetter cl = (ChangeLetter) bf.getBean("changeLetter"); //ChangeLetter为接口
通过上面的案例,我们可以初步体会到di配合接口编程,的确可以减少层(web层) 和 业务层的耦合度(只需要修改配置,不需要修改代码!).
二、从ClassPathXmlApplicationContext容器中获取bean和XmlBeanFactory获取bean
1、 从ApplicationContext中取bean
ApplicationContext ac=new ClassPathXmlApplicationContext("com/hsp/ioc/beans.xml");
从beanfactory去获取bean
BeanFactory factory = new XmlBeanFactory(new ClassPathResource("com/hsp/ioc/beans.xml"));
结论:
1.bean scope 属性若不配置则默认为singleton , ApplicationContext 采用预加载,即在解析xml文件时即会实例化类对象;BeanFactory 则采用延迟加载,即加载xml时不会实例化,当第一次使用时才会进行实例化。(两则优缺点为内存与速度的取舍区别;移动端内存紧张使用BeanFactory,桌面程序则使用ApplicationContext)
2. scope设置为prototype时,为非单例模式

l request
l session
l global-session
是在web开发中才有意义.
u 三种获取ApplicationContext 对象引用的方法
1. ClassPathXmlApplicationContext -> 通过类路径
2. FileSystemXmlApplicationContext -> 通过文件路径
3. XmlWebApplicationContext

浙公网安备 33010602011771号