spring-boot配置文件部分2------自定义配置文件和使用
方式一:通过参数形式指定配置文件
可以通过spring.config.name 修改默认的配置文件名称,不需要指定扩展名。比如:
$ java -jar myproject.jar --spring.config.name=myproject
可以通过spring.config.location指定配置文件,需要全路径与文件名,可指定多个,比如:
$ java -jar myproject.jar --spring.config.location=classpath:/default.properties,classpath:/override.properties
可以通过spring.config.location指定配置文件的位置,比如:
$ java -jar myproject.jar --spring.config.additional-location=classpath:/custom-config/,file:./custom-config/
方式二:通过注解指定配置文件
Spring Boot可使用注解的方式将自定义的properties文件映射到实体bean中
1springboot读取properties配置文件
connection.username=admin
connection.password=kyjufskifas2jsfs
connection.remoteAddress=192.168.1.1
2建立对应bean
@Configuration
@ConfigurationProperties(prefix = "connection")
@PropertySource("classpath:/connection.properties")
public class ConnectionSettings {
private String username;
private String remoteAddress;
private String password ;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getRemoteAddress() {
return remoteAddress;
}
public void setRemoteAddress(String remoteAddress) {
this.remoteAddress = remoteAddress;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
我们还可以把@ConfigurationProperties还可以直接定义在@bean的注解上
@Bean
@ConfigurationProperties(prefix = "connection")
public ConnectionSettings connectionSettings(){
return new ConnectionSettings();
}
3.具体使用
@Autowired
ConnectionSettings conn;
@RequestMapping(value = {"/",""})
public String hellTask(){
String userName = conn.getUsername();
return "hello task !!";
}
4.如果发现@ConfigurationPropertie不生效,有可能是项目的目录结构问题,可以通过@EnableConfigurationProperties(ConnectionSettings.class)来明确指定需要用哪个实体类来装载配置信息
@Configuration
@EnableConfigurationProperties(ConnectionSettings.class)
public class MailConfiguration {
@Autowired private MailProperties mailProperties;
@Bean public JavaMailSender javaMailSender() {
// omitted for readability
}
}
上一篇: Spring Boot 配置文件属性注入
下一篇: Hibernate的级联操作