Spring系列之基于 Java 的容器配置-9
组合基于 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);
}
}
Spring系列之基于 Java 的容器配置-9的更多相关文章
- Spring核心技术(十二)——基于Java的容器配置(二)
使用@Configuration注解 @Configuration注解是一个类级别的注解,表明该对象是用来指定Bean的定义的.@Configuration注解的类通过@Bean注解的方法来声明Bea ...
- Spring核心技术(十一)——基于Java的容器配置(一)
基本概念: @Bean和@Configuration Spring中新的基于Java的配置的核心就是支持@Configuration注解的类以及@Bean注解的方法. @Bean注解用来表示一个方法会 ...
- IOC容器--1.12. 基于 Java 的容器配置
用Java的方式配置Spring ,不使用Spring的XML配置,全权交给Java来做 JavaConfig是Spring的一个子项目,在Sring 4 之后成为核心功能 这种纯Java的配置方式 ...
- Spring IOC之基于注解的容器配置
Spring配置中注解比XML更好吗?基于注解的配置的介绍提出的问题是否这种途径比XML更好.简单来说就是视情况而定. 长一点的答案是每一种方法都有自己的长处也不足,而且这个通常取决于开发者决定哪一种 ...
- [译]17-spring基于java代码的配置元数据
spring还支持基于java代码的配置元数据.不过这种方式不太常用,但是还有一些人使用.所以还是很有必要介绍一下. spring基于java代码的配置元数据,可以通过@Configuration注解 ...
- Spring IoC — 基于Java类的配置
普通的POJO只要标注@Configuration注解,就可以为Spring容器提供Bean定义的信息了,每个标注了@Bean的类方法都相当于提供一个Bean的定义信息. 基于Java类的配置方法和基 ...
- Spring @Bean注解 (基于java的容器注解)
基于java的容器注解,意思就是使用Java代码以及一些注解,就可以取代spring 的 xml配置文件. 1-@Configuration & @Bean的配合 @Configuration ...
- Spring IOC之基于JAVA的配置
基础内容:@Bean 和 @Configuration 在Spring中新的支持java配置的核心组件是 @Configuration注解的类和@Bean注解的方法. @Bean注解被用于表明一个方法 ...
- Spring学习(13)--- 基于Java类的配置Bean 之 @Configuration & @Bean注解
基于Java配置选项,可以编写大多数的Spring不用配置XML,但有几个基于Java的注释的帮助下解释.从Spring3.0开始支持使用java代码来代替XML来配置Spring,基于Java配置S ...
- Spring(八)之基于Java配置
基于 Java 的配置 到目前为止,你已经看到如何使用 XML 配置文件来配置 Spring bean.如果你熟悉使用 XML 配置,那么我会说,不需要再学习如何进行基于 Java 的配置是,因为你要 ...
随机推荐
- 日志服务器 nagios log server
官网 https://www.nagios.com/products/ 可官网下载手动安装也可命令安装 命令安装 cd /tmp wget https://assets.nagios.com/down ...
- 【uni-app】第2节HBuilderX未检测到手机问题(今天终于找到解决办法了,亲测可以)
1.[问题描述]项目想在真机调试,开发者选项已开启USB调试,但是HBuilderX未检测到手机或模拟器 2.[解决办法] 2.1 找到HBuilderX安装目 ...
- 微信小程序搜索排名权重!
最后,再介绍一下排名权重的计算比例: 1.小程序上线时间(占比5%) 2.描述中完全匹配出现关键词次数越多,排名越靠前(10%) 3.标题中关键词出现1次,且整体标题的字数越短,排名越靠前(35%) ...
- 随机数Random和SecureRandom
"Random" objects should be reused Bug Critical Main sources owasp-a6 Available SinceNov 16 ...
- error: the option `Z` is only accepted on the nightly compiler
问题记录 $ cargo expand Checking helo v0.1.0 (/Users/Buzz/Documents/git/rust-lang/hello) error: the opti ...
- 《Kubernetes零基础快速入门》PDF电子书赠阅
<Python 3.8从入门到精通(视频教学版)> <Kubernetes零基础快速入门> PDF电子书赠阅,个人学习使用,禁止任何形式的商用. https://pan.bai ...
- One-Shot Transfer Learning of Physics-Informed Neural Networks
本文提出了一种将迁移学习应用到PINN的方法.可以极大的缩短训练PINN所用的时间,目前,PINN所需要的训练次数往往都在成千上万次, 作者通过批量训练PINN,来学习丰富的潜在空间用来执行迁移学习. ...
- Kafka Reblance & max.poll.interval.ms 重复消费问题
1. 什么是kafka Reblance 消费组是MQ中一个非常重要的概念,一个消费组监听一个Topic时,Kafka服务端会给消费组中的每一个实例,进行队列分配,每一个实例指定消费一个或多个队列(分 ...
- select控件操作汇总
1.通过select的text来选中对应的option $("#dddddd option:contains('小型车')").attr("selected", ...
- c语言 开灯问题 vs2019编译通过
1 #include<stdio.h> 2 #include<stdlib.h> 3 //开灯问题 4 //总共有n盏灯,编号为1~n,k个人 5 //第一个人摁下所有灯的开关 ...