SpringBoot是如何做到无XML文件做配置的?
2020-12-13 05:21
标签:port 依赖 ESS 采集 实例 style resource ack utf-8 在传统的Spring框架系列中,xml配置文件无处不在。有SpringMVC、dao、service等各层次的配置文件。到了目前SpringBoot的时代,XML文件几乎销声匿迹。那么SpringBoot背后是如何做到无XML文件配置的呢? 首先,我们回顾一下在xml配置的时代,我们是如何定义一个Bean的?一般的,定义一个Bean的代码片断如下: 如果要定义的Bean数量特别的多,那么还是一个个定义吗?不太现实。故引出了context:component-scan。如: SpringBoot采用了叫JavaConfig方式来代替Xml配置,下边分几大点来比对其各自的表现形式。 1.配置形式层面上的。 xml方式: JavaConfig方式: @Configuration 2.Bean的定义层面 xml方式 javaconfig方式 3.Bean如果有依赖关系的层面 javaconfig方式 @Bean 4.xml文件导入另一个xml文件的层面 XML方式 JavaConfig方式 @Import和@ImportResource @Import(Xxx.class).只能是针对配置类。若还有部分是xml的,则用@ImportResource("xxx.xml") 其他 @PropertySource 注解,用于加载properties,可以声明多个(java8或以上版本) 默认情况下的Bean是单例的。若要多实例的,则@Scope("prototype")注解修饰 SpringBoot是如何做到无XML文件做配置的? 标签:port 依赖 ESS 采集 实例 style resource ack utf-8 原文地址:https://www.cnblogs.com/guokecheng/p/11137984.html
...
public class Config {
//bean定义
}
任何一个标注了@Configuration的类都是一个JavaConfig配置类
...
@Configuration
public class Config {
@Bean
public xxxServerImpl myBean() {
return new xxxServerImpl();
}
}
任何一个标注了@Bean的方法,其返回值将作为一个bean注册至spring Ioc容器,方法名将默认成为此bean的id
@Configuration
public class Config {
@Bean
public ClassPathResource getResource() {
return new ClassPathResource("/jdbc.properties");
}
public ConnectionProperty getConnectionProperty() {
return new ConnectionProperty(getResource());
}
}
若想要多个,但低于java8版本,可以使用@PropertySources来
下一篇:CSS命名规范