Repository navigation
JavaConfig
B1o0dy_Trey edited this page Feb 8, 2020
·
32 revisions
本章主要介绍配置类的编写。
@Configuration可以将类标记为配置类,并存放到容器中。配置类中支持配置文件的属性注入和编写工厂方法。在上下文启动时,容器会自动扫描resource目录下的配置文件,并将其注入到配置类@Value标注的属性中。
配置文件默认命名为application。
@Configuration注解可以将类标记为配置类
属性:
- value:用于标记yaml配置文件的item。
例如,resource目录下的application.yaml文件如下:
server:
localhost: 127.0.0.1
names:
- name1
- name2在配置类中应如下配置:
@Configuration("server")
public class ConfigBean{}如配置文件使用properties格式,则value属性则无需设置。
下面是一个例子,resource目录下的application.xml文件如下:
localhost = 127.0.0.1
driver = com.mysql.jdbc.Driver在注解中无需设置属性:
@Configuration
public class ConfigBean{}实现配置类的属性注入需要使用@Value注解
属性:
- value:用于指定配置文件中属性的key值
下面是一个例子:
@Configuration("server")
public class ConfigBean{
@Value("localhost")
private String localhost;
@Value("names")
private List<String> names;
}在配置类中使用@Named注解标注工厂方法,容器会将工厂方法的产品存储到容器中并注入依赖。产品实例可以直接通过beanName和类型获取。同时,工厂方法也可以使用@Singleton注解设置Scope属性。
假设我们新建了一个Bean类,这个工厂方法的产品实例是我们刚刚建好的Bean实例,代码如下:
@Configuration("server")
public class ConfigBean{
@Value("localhost")
private String localhost;
@Value("names")
private List<String> names;
@Singleton
@Named("factoryBean")
public Bean createBean(Bean bean){
return bean;
}
}