《Spring in action》之高级装配
2024-09-30 21:01:45
1.Spring 通过配置profile bean、激活profile来设置对应环境。
配置profile bean:
可通过@Profile("dev")注解进行配置、也可以通过xml配置。
激活profile:方法有很多
常用:作为DispatcherServlet初始化参数,例如在web.xml中的<context-param>中配置
2.处理自动装配的歧义性
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = PhoneConfig.class)
public class PhoneTest { @Autowired
@Qualifier("huawei")
private Phone phone; @Test
public void checkPhone(){
phone.speak();
Assert.assertNotNull(phone);
}
}
当phone接口有多个实现时只用 @Autowired是有问题的还需要使用限定符 @Qualifier("huawei")、“huawei“这个是bean的id。
3.Bean的作用域
单例(Singleton):整个应用一个实例
原型(Prototype):每次注入或通过上下文获取时创建一个新的实例
会话(Session):为每个会话创建一个实例
请求(Request):为每个请求创建一个实例
组件扫描中:@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)
@Component
@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)
public class Apple implements Phone{
@Override
public void speak() {
System.out.println("apple speak");
}
}
xml配置:scope="prototype"
<bean id="playUtil" class="com.spring.aop.PlayUtil" scope="prototype"/>
使用会话和请求作用域很适合购物车场景、购物车bean应该是1个会话一个
最新文章
- UP Board 妄图启动ubilinux失败
- xml中DTD解析
- Sprint第三阶段(第四天12.12)
- VS Code 相关
- 苹果官方制作MAC OS的启动U盘的步骤
- 最近想上游戏,弄了个工作室,名";柑谷工作室";
- c# 控制服务启动停止
- hadoop 2.0 native
- iOS系统控件显示中文
- LCA与RMQ
- VM Depot 镜像新增系列II – 学习管理系统,内容管理系统以及平台管理工具
- Android ActionBar完全解析,使用官方推荐的最佳导航栏(下) .
- ExtJs目录说明
- hdu 4465 Candy 2012 成都现场赛
- springmvc(一) springmvc框架原理分析和简单入门程序
- Android 开发,你遇上 Emoji 头疼吗?
- mybatis自动生成
- JMeter请求执行次数 你想执行几次就执行几次
- 读书笔记 C#委托的BeginInvoke、EndInvoke之浅析
- 1、CDH 搭建Hadoop在安装之前(存储空间规划)