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

 

 

posted @ 2017-03-20 22:42  牛哥学coding  阅读(235)  评论(0)    收藏  举报