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