1:往ioc中添加一个对象:里面在初始化MyBean的时候需要参数,而这个参数却 配置在properties文件中,就可以写成下面这样
@PropertySource表示读取配置文件
@Configuration @PropertySource("classpath:/com/acme/app.properties") public class AppConfig { @Inject Environment env; @Bean public MyBean myBean() { return new MyBean(env.getProperty("bean.name")); } }
测试调用
AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext(); ctx.register(AppConfig.class); ctx.refresh(); MyBean myBean = ctx.getBean(MyBean.class); // use myBean ...
@Profile(""):表示当前需要使用哪个配置文件中的数据,有开发版,发布版。
@Configuration public class ProfileDatabaseConfig { @Bean("dataSource") @Profile("development") public DataSource embeddedDatabase() { ... } @Bean("dataSource") @Profile("production") public DataSource productionDatabase() { ... } }