SpringBoot配置
开始看这篇文章之前,我先说明,我会重点讲解yml的配置,更加简单方便,但是语法要求较严格。
注意:
- properties的优先级比yml高
- 一个项目只有一个配置文件。
- 下面properties我简称P,yml简称Y
端口配置
P
# 应用服务 WEB 访问端口
server.port=8080
Y
server:
port: 8080
自定义配置
假如需要一个密钥key才能调用学习api,那么key怎么配置,如何获取?
- 定义学习api密钥(随便取名)
P
# 定义学习api密钥
study.key=123456
study.user=nickbears
Y
# 定义学习api密钥
study:
key: 123456
user: nickbears
如何读取配置文件?(为了效果明显,我用Bean生命周期里的afterPropertiesSet
方法,为了在加载前读取配置进行打印操作)
这是主函数:
@SpringBootApplication
public class Springboot02Application implements InitializingBean {
public static void main(String[] args) {
SpringApplication.run(Springboot02Application.class, args);
}
/**
* 参数设置完成之后,执行此方法
* @throws Exception
*/
@Override
public void afterPropertiesSet() throws Exception {
System.out.println();
System.out.println("afterPropertiesSet:");
System.out.println();
}
}
读取方式 1 @Value
@SpringBootApplication
public class Springboot02Application implements InitializingBean {
@Value("${study.key}") //读取配置文件
private String studyKey;
public static void main(String[] args) {
SpringApplication.run(Springboot02Application.class, args);
}
/**
* 参数设置完成之后,执行此方法
* @throws Exception
*/
@Override
public void afterPropertiesSet() throws Exception {
System.out.println();
System.out.println("afterPropertiesSet:");
System.out.println(studyKey);
System.out.println();
}
}
注意:接下来我会省略以上部分代码,只保留核心代码。
MYSQL配置
- 没有对比没有伤害,谁简单?
- 使用yml记得:后面一定要加一个空格
- yml分层级写
P
# 设置MYSQL 的服务器连接信息
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/java100?characterEncoding=utf8
spring.datasource.username=root
spring.datasource.password=123456
Y
# 设置MYSQL 的服务器连接信息
spring:
datasource:
url: jdbc:mysql://127.0.0.1:3306/java100?characterEncoding=utf8
username: root
password: 123456
yml读取不同数据类型
# 测试数据读取不同数据类型
# 测试数据读取不同数据类型
Y
myprofile:
isdebug: true
读取
@SpringBootApplication
public class Springboot02Application implements InitializingBean {
@Value("${study.key}") //读取配置文件
private String studyKey;
@Value("${myprofile.isdebug}")
private boolean flag;
public static void main(String[] args) {
SpringApplication.run(Springboot02Application.class, args);
}
/**
* 参数设置完成之后,执行此方法
* @throws Exception
*/
@Override
public void afterPropertiesSet() throws Exception {
System.out.println();
System.out.println("afterPropertiesSet:");
System.out.println("studyKey:"+studyKey);
System.out.println("isdbug:"+flag);
System.out.println();
}
}
读取方式2 @ConfigurationProperties
- 我要读取一个对象
Y
# 读取对象
user:
id: 1
name: nickbers
age: 18
创建实体类
- get 和 set 必须的,我用lombook的Data注解表示
- @Component是必须的
- @ConfigurationProperties 映射是必须的
@Component //spring启动时将配置文件映射到当前类上
@ConfigurationProperties("user")
@Data //get 和上 set方法
public class User {
private int id;
private String name;
private int age;
}
属性注入,打印查看效果
@SpringBootApplication
public class Springboot02Application implements InitializingBean {
@Value("${study.key}") //读取配置文件
private String studyKey;
@Value("${myprofile.isdebug}")
private boolean flag;
@Autowired
private User user;
public static void main(String[] args) {
SpringApplication.run(Springboot02Application.class, args);
}
/**
* 参数设置完成之后,执行此方法
* @throws Exception
*/
@Override
public void afterPropertiesSet() throws Exception {
System.out.println();
System.out.println("afterPropertiesSet:");
System.out.println("studyKey:"+studyKey);
System.out.println("isdbug:"+flag);
System.out.println("User:"+user);
System.out.println();
}
}
更多关于Spring配置项的可以去看官网学习,或者关注我的gitee,里面有详细的文档和代码供大家下载浏览,详情看我的第一篇文章,我的gitee 和 wiki文档
本文含有隐藏内容,请 开通VIP 后查看