码迷,mamicode.com
首页 > 编程语言 > 详细

spring学习---3

时间:2016-04-04 10:18:38      阅读:163      评论:0      收藏:0      [点我收藏+]

标签:

1.装配进阶

1)environment-specific bean

@profile

@Configuration
public class DataSourceConfig {
@Bean(destroyMethod="shutdown")
@Profile("dev")
public DataSource embeddedDataSource() {
return new EmbeddedDatabaseBuilder()
.setType(EmbeddedDatabaseType.H2)
.addScript("classpath:schema.sql")
.addScript("classpath:test-data.sql")
.build();
}
@Bean
@Profile("prod")
public DataSource jndiDataSource() {
JndiObjectFactoryBean jndiObjectFactoryBean =
new JndiObjectFactoryBean();
jndiObjectFactoryBean.setJndiName("jdbc/myDS");
jndiObjectFactoryBean.setResourceRef(true);
jndiObjectFactoryBean.setProxyInterface(javax.sql.DataSource.class);
return (DataSource) jndiObjectFactoryBean.getObject();
}
}

2)conditioinal beans

@Conditional

@Bean
@Conditional(MagicExistsCondition.class)
public MagicBean magicBean() {
return new MagicBean();
}

3)ambiguity in autowiring

autowiring works when exactly one bean matches the disired result.

@ Primary--- designating a primary bean

@Qualifier("beanid")

4)Scoping beans

在spring的应用上下文中,所有的bean都是单例的

@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)

? Singleton—One instance of the bean is created for the entire application.
? Prototype—One instance of the bean is created every time the bean is injected
into or retrieved from the Spring application context.
? Session—In a web application, one instance of the bean is created for each session.
? Request—In a web application, one instance of the bean is created for each
request.

5)runtime value injection

@Configuration
@PropertySource("classpath:/com/soundsystem/app.properties")
public class ExpressiveConfig {
@Autowired
Environment env;
@Bean
public BlankDisc disc() {
return new BlankDisc(
env.getProperty("disc.title"),
env.getProperty("disc.artist"));
}
}

6) wiring with Spring Expression Language(SpEL)

#{}

spring学习---3

标签:

原文地址:http://www.cnblogs.com/flyingbee6/p/5351414.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!