在SpringBoot 里只需在application.properties定义属性,直接使用@Value注入即可。
application.properties
#oracle database settings
jdbc.type=oracle
jdbc.driver=oracle.jdbc.driver.OracleDriver
jdbc.url=jdbc:oracle:thin:@127.0.0.1:1521:orcl
jdbc.username=jeesite
jdbc.password=123456
Application.java
@RestController
@SpringBootApplication(exclude={DataSourceAutoConfiguration.class})
public class Application {
@Value("${jdbc.username}")
private String username;
@Value("${jdbc.password}")
private String password;
@RequestMapping("/")
public String index(){
return "username:" + username + " password:" + password;
}
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
类型安全的配置(基于properties)
SpringBoot提供了基于类型安全的配置方式,通过@ConfigurationProperties将properties属性和一个Bean及其属性关联,从而实现类型安全的配置。
person.properties
sosweet.name=tom
sosweet.age=20
AutoSettings.java
/**
* 类型安全的Bean
*
* 通过@ConfigurationProperties加载properties文件内的配置,
* 通过prefix属性指定properties的配置的前缀,
* 通过locations指定properties文件的位置。
*/
@Component
@ConfigurationProperties(prefix="sosweet",locations={"classpath:person.properties"}) //
public class AutoSettings {
private String name;
private String age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
}
通过@ConfigurationProperties加载properties文件内的配置,通过prefix属性指定properties的配置的前缀,通过locations指定properties文件的位置。
Application.java
/**
* @SpringBootApplication 是SpringBoot项目的核心注解,主要目的是开启自动配置。
*/
@RestController
@SpringBootApplication(exclude={DataSourceAutoConfiguration.class})
public class Application {
public static Logger log = Logger.getLogger(Application.class);
@Autowired
private AutoSettings autoSettings;
@RequestMapping("/")
public String index(){
log.info("testest..............");
return "name:" + autoSettings.getName() + " age:" + autoSettings.getAge();
}
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
启动项目并访问