This commit is contained in:
lsy
2017-12-26 20:52:43 +08:00
parent d2de7c7101
commit 0b39654175
12 changed files with 40 additions and 837 deletions
+4
View File
@@ -65,6 +65,10 @@
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
</dependency>
<!--表单校验相关依赖-->
<dependency>
<groupId>org.hibernate</groupId>
@@ -19,7 +19,7 @@ public class SalveDataSourceCondition implements Condition {
public boolean matches(ConditionContext conditionContext, AnnotatedTypeMetadata annotatedTypeMetadata) {
Environment environment = conditionContext.getEnvironment();
//判断环境中是否有从数据库的配置
logger.info("是否包含从数据库: {}",environment.containsProperty("jdbc.slave.username"));
return environment.containsProperty("jdbc.slave.username");
logger.info("是否包含从数据库: {}",environment.containsProperty("druid.two.username"));
return environment.containsProperty("druid.two.username");
}
}
@@ -1,262 +0,0 @@
package com.micro.fast.common.config;
import com.alibaba.druid.pool.DruidDataSource;
import com.alibaba.druid.support.http.StatViewServlet;
import com.alibaba.druid.support.http.WebStatFilter;
import com.alibaba.druid.support.spring.stat.DruidStatInterceptor;
import com.micro.fast.common.config.param.DruidMasterParamConfig;
import com.micro.fast.common.config.param.JdbcConnectionMasterParamConfig;
import com.micro.fast.util.AESUtil;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.AutoConfigureBefore;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import javax.sql.DataSource;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
/**
* 替换默认的数据源,使用自定义的druid数据源 主数据库
* @author lishouyu
* @version 1.0
* @since 1.0
*/
@Configuration
@AutoConfigureBefore({DynamicDataSourceConfig.class})
public class DataSourceMasterConfig {
private static final Logger logger = LoggerFactory.getLogger(DataSourceMasterConfig.class);
/**
* jdbc连接参数配置对象
* @see com.micro.fast.common.config.param.JdbcConnectionMasterParamConfig
*/
@Autowired
private JdbcConnectionMasterParamConfig jdbcConnectionMasterParamConfig;
/**
* druid数据库连接池参数配置对象
* @see com.micro.fast.common.config.param.DruidMasterParamConfig
*/
@Autowired
private DruidMasterParamConfig druidMasterParamConfig;
/**
* 注册druid的监控视图servlet
* @return servletRegistrationBean
*/
@Bean(name = "masterDruidServlet")
public ServletRegistrationBean servletRegistrationBean() {
ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean();
//1.注册servlet
servletRegistrationBean.setServlet(new StatViewServlet());
//2.设置servlet初始化的参数,如果传入了参数默认的配置就不会生效
Map<String, String> initParams = new HashMap<>();
ArrayList<String> servletInitParams = druidMasterParamConfig.getServletInitParams();
if (servletInitParams != null && !servletInitParams.isEmpty()) {
for (String param: servletInitParams) {
String[] keyValue = param.split(":");
String key = keyValue[0];
String value = keyValue[1];
initParams.put(key, value);
if (logger.isInfoEnabled()) {
logger.info("micro-fast common druidServletParam使用自定义的配置");
logger.info("micro-fast common 添加druidServletParam {}:{}", key, value);
}
}
} else {
//设置登录密码
initParams.put("loginUsername", "micro");
initParams.put("loginPassword", "fast");
//设置能否重置
initParams.put("resetEnable", "false");
//deny优先于allow
initParams.put("allow", "127.0.0.1,172.17.0.1,fthipw.natappfree.cc,fthipw.natappfree.cc");
//initParams.put("deny","213.122.232.233");
if (logger.isInfoEnabled()) {
logger.info("micro-fast common druidServletParam使用默认的配置");
logger.info("micro-fast common 添加druidServletParam loginUsername:micro");
logger.info("micro-fast common 添加druidServletParam loginPassword:fast");
logger.info("micro-fast common 添加druidServletParam resetEnable:false");
logger.info("micro-fast common 添加druidServletParam allow:127.0.0.1");
}
}
servletRegistrationBean.setInitParameters(initParams);
//3.设置访问druid的servlet的地址
String servletUrl = druidMasterParamConfig.getServletUrl();
if (servletUrl != null) {
servletRegistrationBean.addUrlMappings(servletUrl);
if (logger.isInfoEnabled()) {
logger.info("micro-fast common druidServlet使用自定义访问地址:{}", servletUrl);
}
} else {
servletRegistrationBean.addUrlMappings("/druid/*");
if (logger.isInfoEnabled()) {
logger.info("micro-fast common druidServlet使用默认访问地址:{}", "/druid/*");
}
}
return servletRegistrationBean;
}
/**
* 注册druid过滤器用于对url的执行sql进行监控
* @return filterRegistrationBean
*/
@Bean
public FilterRegistrationBean filterRegistrationBean() {
FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean();
filterRegistrationBean.setFilter(new WebStatFilter());
Map<String, String> initParams = new HashMap<>();
//设置忽略请求
initParams.put("exclusions", "*.js,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico,/static/*,/druid/*");
if (logger.isInfoEnabled()) {
logger.info("micro-fast common druidFilter使用默认不拦截的patterns:{}", "*.js,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico,/static/*,/druid/*");
}
filterRegistrationBean.setInitParameters(initParams);
filterRegistrationBean.addUrlPatterns("/*");
return filterRegistrationBean;
}
/**
* spring-druid监控配置
* @return druidStatInterceptor
*/
@Bean(value = "druid-stat-interceptor")
public DruidStatInterceptor druidStatInterceptor() {
DruidStatInterceptor druidStatInterceptor = new DruidStatInterceptor();
return druidStatInterceptor;
}
/**
* 设置要拦截统计的bean,根据BeanId来设置拦截配置,用来bean的监控
* @return beanNameAutoProxyCreator
*/
@Bean
public BeanNameAutoProxyCreator beanNameAutoProxyCreator() {
BeanNameAutoProxyCreator beanNameAutoProxyCreator = new BeanNameAutoProxyCreator();
beanNameAutoProxyCreator.setProxyTargetClass(true);
//设置要监控的bean的id,多个请使用逗号分割
String beanNames = druidMasterParamConfig.getBeanNames();
if (StringUtils.isNotEmpty(beanNames)) {
beanNameAutoProxyCreator.setBeanNames(beanNames);
if (logger.isInfoEnabled()) {
logger.info("micro-fast common druid要监控的bean的ids: {}", beanNames);
}
}
//要使用的拦截器
beanNameAutoProxyCreator.setInterceptorNames("druid-stat-interceptor");
return beanNameAutoProxyCreator;
}
/**
* 数据源
* @return druidDataSource
*/
@Bean(name = "masterDataSource")
public DataSource druidDataSource() {
DruidDataSource druidDataSource = new DruidDataSource();
//数据库连接的相关配置
druidDataSource.setUsername(jdbcConnectionMasterParamConfig.getUsername());
druidDataSource.setPassword(AESUtil.AESDecode(jdbcConnectionMasterParamConfig.getPassword()));
druidDataSource.setUrl(jdbcConnectionMasterParamConfig.getUrl());
druidDataSource.setDriverClassName(jdbcConnectionMasterParamConfig.getDriverClass());
if (logger.isInfoEnabled()) {
logger.info("micro-fast common jdbc: username:{} ", jdbcConnectionMasterParamConfig.getUsername());
logger.info("micro-fast common jdbc: 加密后的password:{} ", jdbcConnectionMasterParamConfig.getPassword());
logger.info("micro-fast common jdbc: url:{} ", jdbcConnectionMasterParamConfig.getUrl());
logger.info("micro-fast common jdbc: driverClass:{} ", jdbcConnectionMasterParamConfig.getDriverClass());
}
//连接池的具体配置
if (druidMasterParamConfig.getDefaultAutoCommit() != null) {
druidDataSource.setDefaultAutoCommit(druidMasterParamConfig.getDefaultAutoCommit());
if (logger.isInfoEnabled()) {
logger.info("micro-fast common druidPoolConfig: defaultAutoCommit:{}", druidMasterParamConfig.getDefaultAutoCommit());
}
} else {
druidDataSource.setDefaultAutoCommit(true);
if (logger.isInfoEnabled()) {
logger.info("micro-fast common druidPoolConfig: defaultAutoCommit:{}", true);
}
}
if (druidMasterParamConfig.getInitialSize() != null) {
druidDataSource.setInitialSize(druidMasterParamConfig.getInitialSize());
if (logger.isInfoEnabled()) {
logger.info("micro-fast common druidPoolConfig: initialSize:{}", druidMasterParamConfig.getInitialSize());
}
} else {
druidDataSource.setInitialSize(20);
if (logger.isInfoEnabled()) {
logger.info("micro-fast common druidPoolConfig: initialSize:{}", 20);
}
}
if(druidMasterParamConfig.getMaxActive() != null) {
druidDataSource.setMaxActive(druidMasterParamConfig.getMaxActive());
if (logger.isInfoEnabled()) {
logger.info("micro-fast common druidPoolConfig: maxActive:{}", druidMasterParamConfig.getMaxActive());
}
} else {
druidDataSource.setMaxActive(50);
if (logger.isInfoEnabled()) {
logger.info("micro-fast common druidPoolConfig: maxActive:{}", 50);
}
}
if(druidMasterParamConfig.getMinIdle() != null) {
druidDataSource.setMinIdle(druidMasterParamConfig.getMinIdle());
if (logger.isInfoEnabled()) {
logger.info("micro-fast common druidPoolConfig: minIdle:{}", druidMasterParamConfig.getMinIdle());
}
} else {
druidDataSource.setMinIdle(10);
if (logger.isInfoEnabled()) {
logger.info("micro-fast common druidPoolConfig: minIdle:{}", 10);
}
}
if(druidMasterParamConfig.getMaxWait() != null) {
druidDataSource.setMaxWait(druidMasterParamConfig.getMaxWait());
if (logger.isInfoEnabled()) {
logger.info("micro-fast common druidPoolConfig: maxWait:{}", druidMasterParamConfig.getMaxWait());
}
} else {
druidDataSource.setMaxWait(1000);
if (logger.isInfoEnabled()) {
logger.info("micro-fast common druidPoolConfig: maxWait:{}", 1000);
}
}
if (druidMasterParamConfig.getMinEvictableIdleTimeMillis() != null) {
druidDataSource.setMinEvictableIdleTimeMillis(druidMasterParamConfig.getMinEvictableIdleTimeMillis());
if (logger.isInfoEnabled()) {
logger.info("micro-fast common druidPoolConfig: minEvictableIdleTimeMillis:{}", druidMasterParamConfig.getMinEvictableIdleTimeMillis());
}
} else {
druidDataSource.setMinEvictableIdleTimeMillis(3600000);
if (logger.isInfoEnabled()) {
logger.info("micro-fast common druidPoolConfig: minEvictableIdleTimeMillis:{}", 3600000);
}
}
try {
//开启sql监控
druidDataSource.setFilters("stat,wall");
} catch (SQLException e) {
if (logger.isErrorEnabled()) {
logger.error("设置过滤器失败", e);
}
}
return druidDataSource;
}
}
@@ -1,148 +0,0 @@
package com.micro.fast.common.config;
import com.alibaba.druid.pool.DruidDataSource;
import com.micro.fast.common.condition.SalveDataSourceCondition;
import com.micro.fast.common.config.param.DruidSlaveParamConfig;
import com.micro.fast.common.config.param.JdbcConnectionSlaveParamConfig;
import com.micro.fast.util.AESUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.AutoConfigureBefore;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Conditional;
import org.springframework.context.annotation.Configuration;
import javax.sql.DataSource;
import java.sql.SQLException;
import java.util.ArrayList;
/**
* 替换默认的数据源,使用自定义的druid数据源 从数据库
* @author lishouyu
* @version 1.0
* @since 1.0
*/
@Configuration
@AutoConfigureBefore({DynamicDataSourceConfig.class})
@Conditional(SalveDataSourceCondition.class)//根据SalveDataSourceCondition条件化装配bean
public class DataSourceSlaveConfig {
private static final Logger logger = LoggerFactory.getLogger(DataSourceSlaveConfig.class);
/**
* jdbc连接参数配置对象
* @see JdbcConnectionSlaveParamConfig
*/
@Autowired(required = false)
private JdbcConnectionSlaveParamConfig jdbcConnectionSlaveParamConfig;
/**
* druid数据库连接池参数配置对象
* @see DruidSlaveParamConfig
*/
@Autowired(required = false)
private DruidSlaveParamConfig druidSlaveParamConfig;
/**
* 数据源
* @return slaveDruidDataSource
*/
@Bean(name = "slaveDataSource")
public DataSource druidDataSource() {
DruidDataSource druidDataSource = new DruidDataSource();
//数据库连接的相关配置
druidDataSource.setUsername(jdbcConnectionSlaveParamConfig.getUsername());
druidDataSource.setPassword(AESUtil.AESDecode(jdbcConnectionSlaveParamConfig.getPassword()));
druidDataSource.setUrl(jdbcConnectionSlaveParamConfig.getUrl());
druidDataSource.setDriverClassName(jdbcConnectionSlaveParamConfig.getDriverClass());
if (logger.isInfoEnabled()) {
logger.info("micro-fast common jdbc: username:{} ", jdbcConnectionSlaveParamConfig.getUsername());
logger.info("micro-fast common jdbc: 加密后的password:{} ", jdbcConnectionSlaveParamConfig.getPassword());
logger.info("micro-fast common jdbc: url:{} ", jdbcConnectionSlaveParamConfig.getUrl());
logger.info("micro-fast common jdbc: driverClass:{} ", jdbcConnectionSlaveParamConfig.getDriverClass());
}
//连接池的具体配置
if (druidSlaveParamConfig.getDefaultAutoCommit() != null) {
druidDataSource.setDefaultAutoCommit(druidSlaveParamConfig.getDefaultAutoCommit());
if (logger.isInfoEnabled()) {
logger.info("micro-fast common druidPoolConfig: defaultAutoCommit:{}", druidSlaveParamConfig.getDefaultAutoCommit());
}
} else {
druidDataSource.setDefaultAutoCommit(true);
if (logger.isInfoEnabled()) {
logger.info("micro-fast common druidPoolConfig: defaultAutoCommit:{}", true);
}
}
if (druidSlaveParamConfig.getInitialSize() != null) {
druidDataSource.setInitialSize(druidSlaveParamConfig.getInitialSize());
if (logger.isInfoEnabled()) {
logger.info("micro-fast common druidPoolConfig: initialSize:{}", druidSlaveParamConfig.getInitialSize());
}
} else {
druidDataSource.setInitialSize(20);
if (logger.isInfoEnabled()) {
logger.info("micro-fast common druidPoolConfig: initialSize:{}", 20);
}
}
if(druidSlaveParamConfig.getMaxActive() != null) {
druidDataSource.setMaxActive(druidSlaveParamConfig.getMaxActive());
if (logger.isInfoEnabled()) {
logger.info("micro-fast common druidPoolConfig: maxActive:{}", druidSlaveParamConfig.getMaxActive());
}
} else {
druidDataSource.setMaxActive(50);
if (logger.isInfoEnabled()) {
logger.info("micro-fast common druidPoolConfig: maxActive:{}", 50);
}
}
if(druidSlaveParamConfig.getMinIdle() != null) {
druidDataSource.setMinIdle(druidSlaveParamConfig.getMinIdle());
if (logger.isInfoEnabled()) {
logger.info("micro-fast common druidPoolConfig: minIdle:{}", druidSlaveParamConfig.getMinIdle());
}
} else {
druidDataSource.setMinIdle(10);
if (logger.isInfoEnabled()) {
logger.info("micro-fast common druidPoolConfig: minIdle:{}", 10);
}
}
if(druidSlaveParamConfig.getMaxWait() != null) {
druidDataSource.setMaxWait(druidSlaveParamConfig.getMaxWait());
if (logger.isInfoEnabled()) {
logger.info("micro-fast common druidPoolConfig: maxWait:{}", druidSlaveParamConfig.getMaxWait());
}
} else {
druidDataSource.setMaxWait(1000);
if (logger.isInfoEnabled()) {
logger.info("micro-fast common druidPoolConfig: maxWait:{}", 1000);
}
}
if (druidSlaveParamConfig.getMinEvictableIdleTimeMillis() != null) {
druidDataSource.setMinEvictableIdleTimeMillis(druidSlaveParamConfig.getMinEvictableIdleTimeMillis());
if (logger.isInfoEnabled()) {
logger.info("micro-fast common druidPoolConfig: minEvictableIdleTimeMillis:{}", druidSlaveParamConfig.getMinEvictableIdleTimeMillis());
}
} else {
druidDataSource.setMinEvictableIdleTimeMillis(3600000);
if (logger.isInfoEnabled()) {
logger.info("micro-fast common druidPoolConfig: minEvictableIdleTimeMillis:{}", 3600000);
}
}
try {
//开启sql监控
druidDataSource.setFilters("stat,wall");
} catch (SQLException e) {
if (logger.isErrorEnabled()) {
logger.error("设置过滤器失败", e);
}
}
return druidDataSource;
}
}
@@ -0,0 +1,27 @@
package com.micro.fast.common.config;
import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceBuilder;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Conditional;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import javax.sql.DataSource;
@Configuration
public class DruidDataSourceConfig {
@Primary
@Bean(name = "masterDataSource")
@ConfigurationProperties("druid.one")
public DataSource dataSourceOne(){
return DruidDataSourceBuilder.create().build();
}
@Bean(name = "slaveDataSource")
@ConfigurationProperties("druid.two")
@Conditional(com.micro.fast.common.condition.SalveDataSourceCondition.class)
public DataSource dataSourceTwo(){
return DruidDataSourceBuilder.create().build();
}
}
@@ -37,7 +37,6 @@ public class DynamicDataSourceConfig {
private DataSource slaveDataSource;
@Bean(name = "dynamicDataSource")
@Primary
public DataSource dynamicDataSource(){
//动态数据源对象
DynamicDataSource dynamicDataSource = new DynamicDataSource();
@@ -1,136 +0,0 @@
package com.micro.fast.common.config.param;
import org.springframework.boot.autoconfigure.AutoConfigureBefore;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;
import java.util.ArrayList;
/**
* druid数据库连接池的相关配置参数类 主数据库
* @author lishouyu
* @version 1.0
* @since 1.0
*/
@Configuration
@AutoConfigureBefore(com.micro.fast.common.config.DataSourceMasterConfig.class)
@ConfigurationProperties(prefix = "druid.master")
public class DruidMasterParamConfig {
/**
* druid数据连接池的servlet的初始化参数
*/
private ArrayList<String> servletInitParams;
/**
* druid数据库连接池的访问路径
*/
private String servletUrl;
/**
* druid要监控的bean的名字,多个使用逗号分割
*/
private String beanNames;
/**
* 事务是否自动提交
*/
private Boolean defaultAutoCommit;
/**
* 连接池的初始化大小
*/
private Integer initialSize;
/**
* 连接池的最大的数量
*/
private Integer maxActive;
/**
* 连接池的最小空闲数量
*/
private Integer minIdle;
/**
* 当连接池中连接已经用完了,等待建立一个新连接的最大毫秒数
*/
private Integer maxWait;
/**
* 到达多长时间释放连接池
*/
private Integer minEvictableIdleTimeMillis;
public ArrayList<String> getServletInitParams() {
return servletInitParams;
}
public void setServletInitParams(ArrayList<String> servletInitParams) {
this.servletInitParams = servletInitParams;
}
public String getServletUrl() {
return servletUrl;
}
public void setServletUrl(String servletUrl) {
this.servletUrl = servletUrl;
}
public String getBeanNames() {
return beanNames;
}
public void setBeanNames(String beanNames) {
this.beanNames = beanNames;
}
public Boolean getDefaultAutoCommit() {
return defaultAutoCommit;
}
public void setDefaultAutoCommit(Boolean defaultAutoCommit) {
this.defaultAutoCommit = defaultAutoCommit;
}
public Integer getInitialSize() {
return initialSize;
}
public void setInitialSize(Integer initialSize) {
this.initialSize = initialSize;
}
public Integer getMaxActive() {
return maxActive;
}
public void setMaxActive(Integer maxActive) {
this.maxActive = maxActive;
}
public Integer getMinIdle() {
return minIdle;
}
public void setMinIdle(Integer minIdle) {
this.minIdle = minIdle;
}
public Integer getMaxWait() {
return maxWait;
}
public void setMaxWait(Integer maxWait) {
this.maxWait = maxWait;
}
public Integer getMinEvictableIdleTimeMillis() {
return minEvictableIdleTimeMillis;
}
public void setMinEvictableIdleTimeMillis(Integer minEvictableIdleTimeMillis) {
this.minEvictableIdleTimeMillis = minEvictableIdleTimeMillis;
}
}
@@ -1,139 +0,0 @@
package com.micro.fast.common.config.param;
import com.micro.fast.common.condition.SalveDataSourceCondition;
import org.springframework.boot.autoconfigure.AutoConfigureBefore;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Conditional;
import org.springframework.context.annotation.Configuration;
import java.util.ArrayList;
/**
* druid数据库连接池的相关配置参数类
* @author lishouyu
* @version 1.0
* @since 1.0
*/
@Configuration
@Conditional(SalveDataSourceCondition.class)//根据SalveDataSourceCondition条件化装配bean
@AutoConfigureBefore(com.micro.fast.common.config.DataSourceSlaveConfig.class)
@ConfigurationProperties(prefix = "druid.slave")
public class DruidSlaveParamConfig {
/**
* druid数据连接池的servlet的初始化参数
*/
private ArrayList<String> servletInitParams;
/**
* druid数据库连接池的访问路径
*/
private String servletUrl;
/**
* druid要监控的bean的名字,多个使用逗号分割
*/
private String beanNames;
/**
* 事务是否自动提交
*/
private Boolean defaultAutoCommit;
/**
* 连接池的初始化大小
*/
private Integer initialSize;
/**
* 连接池的最大的数量
*/
private Integer maxActive;
/**
* 连接池的最小空闲数量
*/
private Integer minIdle;
/**
* 当连接池中连接已经用完了,等待建立一个新连接的最大毫秒数
*/
private Integer maxWait;
/**
* 到达多长时间释放连接池
*/
private Integer minEvictableIdleTimeMillis;
public ArrayList<String> getServletInitParams() {
return servletInitParams;
}
public void setServletInitParams(ArrayList<String> servletInitParams) {
this.servletInitParams = servletInitParams;
}
public String getServletUrl() {
return servletUrl;
}
public void setServletUrl(String servletUrl) {
this.servletUrl = servletUrl;
}
public String getBeanNames() {
return beanNames;
}
public void setBeanNames(String beanNames) {
this.beanNames = beanNames;
}
public Boolean getDefaultAutoCommit() {
return defaultAutoCommit;
}
public void setDefaultAutoCommit(Boolean defaultAutoCommit) {
this.defaultAutoCommit = defaultAutoCommit;
}
public Integer getInitialSize() {
return initialSize;
}
public void setInitialSize(Integer initialSize) {
this.initialSize = initialSize;
}
public Integer getMaxActive() {
return maxActive;
}
public void setMaxActive(Integer maxActive) {
this.maxActive = maxActive;
}
public Integer getMinIdle() {
return minIdle;
}
public void setMinIdle(Integer minIdle) {
this.minIdle = minIdle;
}
public Integer getMaxWait() {
return maxWait;
}
public void setMaxWait(Integer maxWait) {
this.maxWait = maxWait;
}
public Integer getMinEvictableIdleTimeMillis() {
return minEvictableIdleTimeMillis;
}
public void setMinEvictableIdleTimeMillis(Integer minEvictableIdleTimeMillis) {
this.minEvictableIdleTimeMillis = minEvictableIdleTimeMillis;
}
}
@@ -1,73 +0,0 @@
package com.micro.fast.common.config.param;
import org.springframework.boot.autoconfigure.AutoConfigureBefore;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;
import org.springframework.validation.annotation.Validated;
import javax.validation.constraints.NotNull;
/**
* 对jdbc连接参数进行从配置文件中读取,校验不能为空 主数据库
* @author lishouyu 18332763730@163.com 2017/10/02
* @version 1.0
* @since 1.0
*/
@Configuration
@AutoConfigureBefore(com.micro.fast.common.config.DataSourceMasterConfig.class)
@ConfigurationProperties(prefix = "jdbc.master")
@Validated //配合ConfigurationProperties进行参数校验
public class JdbcConnectionMasterParamConfig {
/**
* 用户名
*/
@NotNull
private String username;
/**
* 密码
*/
@NotNull
private String password;
/**
* jdbc链接数据库的url
*/
@NotNull
private String url;
/**
* 驱动名称
*/
@NotNull
private String driverClass;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public String getDriverClass() {
return driverClass;
}
public void setDriverClass(String driverClass) {
this.driverClass = driverClass;
}
}
@@ -1,75 +0,0 @@
package com.micro.fast.common.config.param;
import com.micro.fast.common.condition.SalveDataSourceCondition;
import org.springframework.boot.autoconfigure.AutoConfigureBefore;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Conditional;
import org.springframework.context.annotation.Configuration;
import org.springframework.validation.annotation.Validated;
import javax.validation.constraints.NotNull;
/**
* 对jdbc连接参数进行从配置文件中读取,校验不能为空
* @author lishouyu 18332763730@163.com 2017/10/02
* @version 1.0
* @since 1.0
*/
@Configuration
@Conditional(SalveDataSourceCondition.class)//根据SalveDataSourceCondition条件化装配bean
@ConfigurationProperties(prefix = "jdbc.slave")
@AutoConfigureBefore(com.micro.fast.common.config.DataSourceSlaveConfig.class)
@Validated
public class JdbcConnectionSlaveParamConfig {
/**
* 用户名
*/
private String username;
/**
* 密码
*/
@NotNull
private String password;
/**
* jdbc链接数据库的url
*/
@NotNull
private String url;
/**
* 驱动名称
*/
@NotNull
private String driverClass;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public String getDriverClass() {
return driverClass;
}
public void setDriverClass(String driverClass) {
this.driverClass = driverClass;
}
}
@@ -4,13 +4,14 @@ import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.boot.autoconfigure.jdbc.JdbcTemplateAutoConfiguration;
import org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration;
import org.springframework.cloud.client.SpringCloudApplication;
import org.springframework.cloud.netflix.feign.EnableFeignClients;
@SpringCloudApplication
@EnableFeignClients
@MapperScan(basePackages = {"com.micro.fast.ucenter.dao"})
@EnableAutoConfiguration(exclude = DataSourceAutoConfiguration.class)
public class UcenterApplication {
public static void main(String[] args) {
+5
View File
@@ -263,6 +263,11 @@
<artifactId>druid</artifactId>
<version>${druid.version}</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.6</version>
</dependency>
<!--表单校验相关依赖-->
<dependency>
<groupId>org.hibernate</groupId>