feat: 从配置文件中初始化配置

This commit is contained in:
禾几海
2020-10-17 00:13:17 +08:00
parent c0687b4776
commit a3edc00a03
6 changed files with 31 additions and 12 deletions

View File

@@ -1,11 +1,13 @@
package cn.celess.blog.configuration; package cn.celess.blog.configuration;
import cn.celess.blog.enmu.ConfigKeyEnum;
import cn.celess.blog.entity.Config; import cn.celess.blog.entity.Config;
import cn.celess.blog.mapper.ConfigMapper; import cn.celess.blog.mapper.ConfigMapper;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.ApplicationArguments; import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner; import org.springframework.boot.ApplicationRunner;
import org.springframework.core.env.Environment;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.util.List; import java.util.List;
@@ -22,12 +24,29 @@ public class ApplicationListener implements ApplicationRunner {
@Autowired @Autowired
ConfigMapper configMapper; ConfigMapper configMapper;
@Autowired
Environment env;
@Override @Override
public void run(ApplicationArguments args) throws Exception { public void run(ApplicationArguments args) throws Exception {
log.info("博客启动!"); log.info("博客启动!");
List<Config> configurations = configMapper.getConfigurations(); // 设置初始值
setProperty(ConfigKeyEnum.FILE_QINIU_SECRET_KEY);
setProperty(ConfigKeyEnum.FILE_QINIU_ACCESS_KEY);
setProperty(ConfigKeyEnum.FILE_QINIU_BUCKET);
List<Config> configurations = configMapper.getConfigurations()
.stream()
.filter(config -> config.getValue() != null && !"".equals(config.getValue()))
.collect(Collectors.toList());
configurations.forEach(config -> System.setProperty(config.getName(), config.getValue())); configurations.forEach(config -> System.setProperty(config.getName(), config.getValue()));
log.debug("注入配置成功 {}", configurations.stream().map(Config::getName).collect(Collectors.toList())); log.debug("注入配置成功 {}", configurations.stream().map(Config::getName).collect(Collectors.toList()));
} }
private void setProperty(ConfigKeyEnum e) {
String property = env.getProperty(e.getKey());
if (property != null) {
System.setProperty(e.getKey(), property);
}
}
} }

View File

@@ -1,9 +1,9 @@
server.port=8081 server.port=8081
# 七牛的密钥配置 # 七牛的密钥配置
qiniu.accessKey= file.qiniu.accessKey=
qiniu.secretKey= file.qiniu.secretKey=
qiniu.bucket= file.qiniu.bucket=
# sitemap 存放地址 # sitemap 存放地址
sitemap.path= sitemap.path=
# 生成JWT时候的密钥 # 生成JWT时候的密钥

View File

@@ -1,9 +1,9 @@
server.port=8081 server.port=8081
# 七牛的密钥配置 # 七牛的密钥配置
qiniu.accessKey=${QINIU_ACCESSKEY:null} file.qiniu.accessKey=${QINIU_ACCESSKEY:null}
qiniu.secretKey=${QINIU_SECRETKEY:null} file.qiniu.secretKey=${QINIU_SECRETKEY:null}
qiniu.bucket=xiaohai file.qiniu.bucket=xiaohai
# sitemap 存放地址 # sitemap 存放地址
sitemap.path= sitemap.path=
# 生成JWT时候的密钥 # 生成JWT时候的密钥

View File

@@ -216,8 +216,8 @@ VALUES (1, '1.新增网站更新接口api \n2.新增友链api \n3.优化了文
INSERT INTO config (conf_id, conf_name, conf_value) INSERT INTO config (conf_id, conf_name, conf_value)
VALUES (1, 'file.type', 'local'), VALUES (1, 'file.type', 'local'),
(2, 'file.qiniu.accessKey', ''), (2, 'file.qiniu.accessKey', null),
(3, 'file.qiniu.secretKey', ''), (3, 'file.qiniu.secretKey', null),
(4, 'file.qiniu.bucket', ''), (4, 'file.qiniu.bucket', null),
(6, 'file.local.directoryPath', '~/blog/files'), (6, 'file.local.directoryPath', '~/blog/files'),
(7, 'db.type', 'h2') (7, 'db.type', 'h2')

View File

@@ -115,7 +115,7 @@ CREATE TABLE `config`
( (
`conf_id` int primary key auto_increment, `conf_id` int primary key auto_increment,
`conf_name` varchar(255) unique not null comment '配置名', `conf_name` varchar(255) unique not null comment '配置名',
`conf_value` varchar(255) not null comment '配置值' `conf_value` varchar(255) default null comment '配置值'
); );
CREATE VIEW articleView CREATE VIEW articleView

View File

@@ -120,7 +120,7 @@ CREATE TABLE `config`
( (
`conf_id` int primary key auto_increment, `conf_id` int primary key auto_increment,
`conf_name` varchar(255) unique not null comment '配置名', `conf_name` varchar(255) unique not null comment '配置名',
`conf_value` varchar(255) not null comment '配置值' `conf_value` varchar(255) default null comment '配置值'
); );
CREATE VIEW articleView CREATE VIEW articleView