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
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 继承的思维:从思维模式到架构设计的深度解析
· 如何在 .NET 中 使用 ANTLR4
· 后端思维之高并发处理方案
· 理解Rust引用及其生命周期标识(下)
· 从二进制到误差:逐行拆解C语言浮点运算中的4008175468544之谜
· Cursor预测程序员行业倒计时:CTO应做好50%裁员计划
· 想让你多爱自己一些的开源计时器
· 大模型 Token 究竟是啥:图解大模型Token
· 用99元买的服务器搭一套CI/CD系统
· 当职场成战场:降职、阴谋与一场硬碰硬的抗争