组合基于 Java 的配置

Spring 的基于 Java 的配置功能允许您编写注解,这可以降低配置的复杂性。

使用@Import注解

就像<import/>在 Spring XML 文件中使用该元素来帮助模块化配置一样,@Import注释允许@Bean从另一个配置类加载定义,如以下示例所示:

@Configuration
public class ConfigA { @Bean
public A a() {
return new A();
}
} @Configuration
@Import(ConfigA.class)
public class ConfigB { @Bean
public B b() {
return new B();
}
}
有条件地包含@Configuration类或@Bean方法

@Profile只有在 Spring 中启用了特定配置文件时才使用注解来激活

@Profile注释实际上是通过使用更灵活的注释来实现的,称为[@Conditional

结合 Java 和 XML 配置

Spring 的@Configuration类支持并非旨在 100% 完全替代 Spring XML。@ImportResource使用根据需要导入 XML。

以 XML 为中心的@Configuration类的使用,将类声明@Configuration为普通 Spring<bean/>元素

@Configuration
public class AppConfig { @Autowired
private DataSource dataSource; @Bean
public AccountRepository accountRepository() {
return new JdbcAccountRepository(dataSource);
} @Bean
public TransferService transferService() {
return new TransferService(accountRepository());
}
}
<beans>
<!-- enable processing of annotations such as @Autowired and @Configuration -->
<context:annotation-config/>
<context:property-placeholder location="classpath:/com/acme/jdbc.properties"/> <bean class="com.acme.AppConfig"/> <bean class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</bean>
</beans>

@Configuration类是配置容器的主要机制的应用程序中,仍然可能至少需要使用一些 XML。在这些场景中,您可以根据@ImportResource需要使用和定义尽可能多的 XML。

@Configuration
@ImportResource("classpath:/com/acme/properties-config.xml")
public class AppConfig { @Value("${jdbc.url}")
private String url; @Value("${jdbc.username}")
private String username; @Value("${jdbc.password}")
private String password; @Bean
public DataSource dataSource() {
return new DriverManagerDataSource(url, username, password);
}
}

最新文章

  1. LINQ系列:Linq to Object集合操作符
  2. 《ASP.NET SignalR系列》第三课 SignalR的支持平台
  3. 如何将Js代码封装成Jquery插件
  4. Delphi深度探索-CodeSite应用指南
  5. JS改变input的value值不触发onchange事件解决方案 (转)
  6. HDU4349--Xiao Ming&#39;s Hope(数论)
  7. 关于MDCSwipeToChooseView的应用
  8. 锋利的Jquery解惑系列(一)------基本概念大锅炖
  9. C 产生随机码 (输入数字来产生)
  10. oledb快速导入Excel案例
  11. HBase Maven 工程模块梳理
  12. CodeForces 696A Lorenzo Von Matterhorn (LCA + map)
  13. markown编辑器截图粘贴预览,并将图片传至七牛云
  14. 4、C#基础 - C# 的 常见概念简述
  15. Angular专题系列之一:初识Anjularjs
  16. 聊聊String
  17. .NET ORM框架 SqlSugar4.0 功能快速预览【开源】
  18. GitHub Git 简单操作
  19. 【Hbase学习之一】Hbase 简介
  20. 权重比较(id class 标签)

热门文章

  1. Autojs页面开发
  2. 项目开发中的ORM框架使用mybatis还是mybatis-plus
  3. 日常开发记录-this.$message,this.$prompt,交换弹窗确定和取消按钮的位置,确定在左,取消在右
  4. JSONObject和JSONArray的区别
  5. j2ee目录索引
  6. 添加vscode到windows的右键菜单
  7. PGI 用户手册之 Site-Specific Customization of the Compilers
  8. django的注意事项
  9. 安装gitlab的总结
  10. RTT笔记-分析自动初始化机制转