SpringBoot+SpringCloud+vue+Element开发项目——集成Druid数据源

vue

添加依赖

pom.xml

<!--druid-->

<dependency>

<groupId>com.alibaba</groupId>

<artifactId>druid-spring-boot-starter</artifactId>

<version>1.1.10</version>

</dependency>

添加配置文件

application.yml

server:

port: 8001

spring:

datasource:

name: druidDataSource

type: com.alibaba.druid.pool.DruidDataSource

druid:

driver-class-name: com.mysql.jdbc.Driver

url: jdbc:mysql://localhost:3306/mdh?useUnicode=true&zeroDateTimeBehavior=convertToNull&autoReconnect=true&characterEncoding=utf-8

username: root

password: root

filters: stat,wall,log4j,config

max-active: 100

initial-size: 1

max-wait: 60000

min-idle: 1

time-between-eviction-runs-millis: 60000

min-evictable-idle-time-millis: 300000

validation-query: select 'x'

test-while-idle: true

test-on-borrow: false

test-on-return: false

pool-prepared-statements: true

max-open-prepared-statements: 50

max-pool-prepared-statement-per-connection-size: 20

自定义属性配置,添加配置类

DruidDataSourceProperties.java

/**

* 数据源属性

*/

@ConfigurationProperties(prefix = "spring.datasource.druid")

public class DruidDataSourceProperties {

// jdbc

private String driverClassName;

private String url;

private String username;

private String password;

// jdbc connection pool

private int initialSize;

private int minIdle;

private int maxActive = 100;

private long maxWait;

private long timeBetweenEvictionRunsMillis;

private long minEvictableIdleTimeMillis;

private String validationQuery;

private boolean testWhileIdle;

private boolean testOnBorrow;

private boolean testOnReturn;

private boolean poolPreparedStatements;

private int maxPoolPreparedStatementPerConnectionSize;

// filter

private String filters;

public int getInitialSize() {

return initialSize;

}

public void setInitialSize(int initialSize) {

this.initialSize = initialSize;

}

public int getMinIdle() {

return minIdle;

}

public void setMinIdle(int minIdle) {

this.minIdle = minIdle;

}

public int getMaxActive() {

return maxActive;

}

public void setMaxActive(int maxActive) {

this.maxActive = maxActive;

}

public long getMaxWait() {

return maxWait;

}

public void setMaxWait(long maxWait) {

this.maxWait = maxWait;

}

public long getTimeBetweenEvictionRunsMillis() {

return timeBetweenEvictionRunsMillis;

}

public void setTimeBetweenEvictionRunsMillis(long timeBetweenEvictionRunsMillis) {

this.timeBetweenEvictionRunsMillis = timeBetweenEvictionRunsMillis;

}

public long getMinEvictableIdleTimeMillis() {

return minEvictableIdleTimeMillis;

}

public void setMinEvictableIdleTimeMillis(long minEvictableIdleTimeMillis) {

this.minEvictableIdleTimeMillis = minEvictableIdleTimeMillis;

}

public String getValidationQuery() {

return validationQuery;

}

public void setValidationQuery(String validationQuery) {

this.validationQuery = validationQuery;

}

public boolean isTestWhileIdle() {

return testWhileIdle;

}

public void setTestWhileIdle(boolean testWhileIdle) {

this.testWhileIdle = testWhileIdle;

}

public boolean isTestOnBorrow() {

return testOnBorrow;

}

public void setTestOnBorrow(boolean testOnBorrow) {

this.testOnBorrow = testOnBorrow;

}

public boolean isTestOnReturn() {

return testOnReturn;

}

public void setTestOnReturn(boolean testOnReturn) {

this.testOnReturn = testOnReturn;

}

public boolean isPoolPreparedStatements() {

return poolPreparedStatements;

}

public void setPoolPreparedStatements(boolean poolPreparedStatements) {

this.poolPreparedStatements = poolPreparedStatements;

}

public int getMaxPoolPreparedStatementPerConnectionSize() {

return maxPoolPreparedStatementPerConnectionSize;

}

public void setMaxPoolPreparedStatementPerConnectionSize(int maxPoolPreparedStatementPerConnectionSize) {

this.maxPoolPreparedStatementPerConnectionSize = maxPoolPreparedStatementPerConnectionSize;

}

public String getFilters() {

return filters;

}

public void setFilters(String filters) {

this.filters = filters;

}

public String getDriverClassName() {

return driverClassName;

}

public void setDriverClassName(String driverClassName) {

this.driverClassName = driverClassName;

}

public String getUrl() {

return url;

}

public void setUrl(String url) {

this.url = url;

}

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;

}

在config包下创建DruidConfig配置类

DruidConfig.java

/**

* Druid数据源配置

*/

@Configuration

@EnableConfigurationProperties({DruidDataSourceProperties.class})

public class DruidConfig {

@Autowired

private DruidDataSourceProperties properties;

@Bean

@ConditionalOnMissingBean

public DataSource druidDataSource() {

DruidDataSource druidDataSource = new DruidDataSource();

druidDataSource.setDriverClassName(properties.getDriverClassName());

druidDataSource.setUrl(properties.getUrl());

druidDataSource.setUsername(properties.getUsername());

druidDataSource.setPassword(properties.getPassword());

druidDataSource.setInitialSize(properties.getInitialSize());

druidDataSource.setMinIdle(properties.getMinIdle());

druidDataSource.setMaxActive(properties.getMaxActive());

druidDataSource.setMaxWait(properties.getMaxWait());

druidDataSource.setTimeBetweenEvictionRunsMillis(properties.getTimeBetweenEvictionRunsMillis());

druidDataSource.setMinEvictableIdleTimeMillis(properties.getMinEvictableIdleTimeMillis());

druidDataSource.setValidationQuery(properties.getValidationQuery());

druidDataSource.setTestWhileIdle(properties.isTestWhileIdle());

druidDataSource.setTestOnBorrow(properties.isTestOnBorrow());

druidDataSource.setTestOnReturn(properties.isTestOnReturn());

druidDataSource.setPoolPreparedStatements(properties.isPoolPreparedStatements());

druidDataSource.setMaxPoolPreparedStatementPerConnectionSize(properties.getMaxPoolPreparedStatementPerConnectionSize());

try {

druidDataSource.setFilters(properties.getFilters());

druidDataSource.init();

} catch (SQLException e) {

e.printStackTrace();

}

return druidDataSource;

}

/**

* 注册Servlet信息, 配置监控视图

*

* @return

*/

@Bean

@ConditionalOnMissingBean

public ServletRegistrationBean<Servlet> druidServlet() {

ServletRegistrationBean<Servlet> servletRegistrationBean = new ServletRegistrationBean<Servlet>(new StatViewServlet(), "/druid/*");

//白名单:

// servletRegistrationBean.addInitParameter("allow","127.0.0.1,139.196.87.48");

//IP黑名单 (存在共同时,deny优先于allow) : 如果满足deny的话提示:Sorry, you are not permitted to view this page.

servletRegistrationBean.addInitParameter("deny","192.168.1.119");

//登录查看信息的账号密码, 用于登录Druid监控后台

servletRegistrationBean.addInitParameter("loginUsername", "admin");

servletRegistrationBean.addInitParameter("loginPassword", "admin");

//是否能够重置数据.

servletRegistrationBean.addInitParameter("resetEnable", "true");

return servletRegistrationBean;

}

/**

* 注册Filter信息, 监控拦截器

*

* @return

*/

@Bean

@ConditionalOnMissingBean

public FilterRegistrationBean<Filter> filterRegistrationBean() {

FilterRegistrationBean<Filter> filterRegistrationBean = new FilterRegistrationBean<Filter>();

filterRegistrationBean.setFilter(new WebStatFilter());

filterRegistrationBean.addUrlPatterns("/*");

filterRegistrationBean.addInitParameter("exclusions", "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*");

return filterRegistrationBean;

}

}

添加log4j依赖

pom.xml

<!--log4j-->

<dependency>

<groupId>log4j</groupId>

<artifactId>log4j</artifactId>

<version>1.2.17</version>

</dependency>

添加log4j配置

log4j.properties

### set log levels ###    

log4j.rootLogger = INFO,DEBUG, console, infoFile, errorFile ,debugfile,mail

LocationInfo=true

log4j.appender.console = org.apache.log4j.ConsoleAppender

log4j.appender.console.Target = System.out

log4j.appender.console.layout = org.apache.log4j.PatternLayout

log4j.appender.console.layout.ConversionPattern =[%d{yyyy-MM-dd HH:mm:ss,SSS}]-[%p]:%m %x %n

log4j.appender.infoFile = org.apache.log4j.DailyRollingFileAppender

log4j.appender.infoFile.Threshold = INFO

log4j.appender.infoFile.File = D:/logs/log

log4j.appender.infoFile.DatePattern = '.'yyyy-MM-dd'.log'

log4j.appender.infoFile.Append=true

log4j.appender.infoFile.layout = org.apache.log4j.PatternLayout

log4j.appender.infoFile.layout.ConversionPattern =[%d{yyyy-MM-dd HH:mm:ss,SSS}]-[%p]:%m %x %n

log4j.appender.errorFile = org.apache.log4j.DailyRollingFileAppender

log4j.appender.errorFile.Threshold = ERROR

log4j.appender.errorFile.File = D:/logs/error

log4j.appender.errorFile.DatePattern = '.'yyyy-MM-dd'.log'

log4j.appender.errorFile.Append=true

log4j.appender.errorFile.layout = org.apache.log4j.PatternLayout

log4j.appender.errorFile.layout.ConversionPattern =[%d{yyyy-MM-dd HH:mm:ss,SSS}]-[%p]:%m %x %n

log4j.appender.debugfile = org.apache.log4j.DailyRollingFileAppender

log4j.appender.debugfile.Threshold = DEBUG

log4j.appender.debugfile.File = D:/logs/debug

log4j.appender.debugfile.DatePattern = '.'yyyy-MM-dd'.log'

log4j.appender.debugfile.Append=true

log4j.appender.debugfile.layout = org.apache.log4j.PatternLayout

log4j.appender.debugfile.layout.ConversionPattern =[%d{yyyy-MM-dd HH:mm:ss,SSS}]-[%p]:%m %x %n

启动应用 访问http://localhost:8001/druid/login.html   用户名:admin   密码:admin

跨域请求CORS实现

新建一个CORS配置类 实现WebMvcConfigurer接口

CorsConfig.java

@Configuration

public class CorsConfig implements WebMvcConfigurer {

@Override

public void addCorsMappings(CorsRegistry registry){

registry.addMapping("/**") //允许跨域访问的路径

.allowedOrigins("*") //允许跨域访问的源

.allowedMethods("POST","GET","PUT","OPTIONS","DELETE") //允许请求的方法

.maxAge(168000) //预检间隔时间

.allowedHeaders("*") //允许头部设置

.allowCredentials(true); //是否发送cookie

}

}

以上是 SpringBoot+SpringCloud+vue+Element开发项目——集成Druid数据源 的全部内容, 来源链接: utcz.com/z/377855.html

回到顶部