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 @   牛哥学coding  阅读(230)  评论(0编辑  收藏  举报
(评论功能已被禁用)
编辑推荐:
· 继承的思维:从思维模式到架构设计的深度解析
· 如何在 .NET 中 使用 ANTLR4
· 后端思维之高并发处理方案
· 理解Rust引用及其生命周期标识(下)
· 从二进制到误差:逐行拆解C语言浮点运算中的4008175468544之谜
阅读排行:
· Cursor预测程序员行业倒计时:CTO应做好50%裁员计划
· 想让你多爱自己一些的开源计时器
· 大模型 Token 究竟是啥:图解大模型Token
· 用99元买的服务器搭一套CI/CD系统
· 当职场成战场:降职、阴谋与一场硬碰硬的抗争
点击右上角即可分享
微信分享提示