Redis_框架整合2_Mybatis

1、导入maven依赖pom.xml

        mysql

        mysql-connector-java


        org.mybatis.spring.boot

        mybatis-spring-boot-starter

        1.3.0

        org.mybatis.generator

        mybatis-generator-core

        test

        1.3.2

        true

        org.springframework.boot

        spring-boot-starter-jdbc

        com.alibaba

        druid

        1.1.10

        com.alibaba

        fastjson

        1.2.7

2、引入配置文件

spring:

    datasource:

        url:

 jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&autoReconnect=true&connectTimeout=3000&socketTimeout=1000

        username: root           # 需自己修改填写

        password: 123456         # 需自己修改填写

        type: com.alibaba.druid.pool.DruidDataSource

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

        minIdle: 5

        maxActive: 100

        initialSize: 10

        maxWait: 60000

        timeBetweenEvictionRunsMillis: 60000

        minEvictableIdleTimeMillis: 300000

        validationQuery: select 'x'

        testWhileIdle: true

        testOnBorrow: false

        testOnReturn: false

        poolPreparedStatements: true

        maxPoolPreparedStatementPerConnectionSize: 50

        removeAbandoned: true

        filters: stat 

                    # ,wall,log4j # 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙

        connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000 

                    # 通过 connectProperties属性来打开mergeSql功能;慢SQL记录

        useGlobalDataSourceStat: true # 合并多个DruidDataSource的监控数据

        druidLoginName: wjf # 登录druid的账号

        druidPassword: wjf # 登录druid的密码

        cachePrepStmts: true  # 开启二级缓存mybatis:

        typeAliasesPackage: com.xdclass.mobile.xdclassmobileredis.mapper# 需要自己修改填写

       mapperLocations: classpath:/com/xdclass/mobile/xdclassmobileredis/mapper/*.xml

       mapperScanPackage: com.xdclass.mobile.xdclassmobileredis.mapper

       configLocation: classpath:/mybatis-config.xml


3、引入mybatis-config.xml

 

     "http://mybatis.org/dtd/mybatis-3-config.dtd">

     

            

            

            

            

                   

                   

            

            

            

            

            

            

            

            

            

            

            

            

            

            

            

            

            

            

            

            

    

4、引入DataSourceConfig配置

package com.xdclass.mobile.xdclassmobileredis;

import com.alibaba.druid.pool.DruidDataSource;

import com.alibaba.druid.support.http.StatViewServlet;

import com.alibaba.druid.support.http.WebStatFilter;

import org.mybatis.spring.annotation.MapperScan;

import org.slf4j.Logger;

import org.slf4j.LoggerFactory;

import org.springframework.beans.factory.annotation.Value;

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 org.springframework.context.annotation.Primary;

import org.springframework.session.data.redis.config.annotation.web.http.EnableRedisHttpSession;

import javax.sql.DataSource;

import java.sql.SQLException;

/**

 * Created by wanlichao on 2016/10/25 0025.

 */

@Configuration

@MapperScan("com.xdclass.mobile.xdclassmobileredis.mapper")

@EnableRedisHttpSession(maxInactiveIntervalInSeconds= 50)

public class DataSourceConfig {

    private Logger logger = LoggerFactory.getLogger(DataSourceConfig.class);

    @Value("${spring.datasource.url}")

    private String dbUrl;

    @Value("${spring.datasource.type}")

    private String dbType;

    @Value("${spring.datasource.username}")

    private String username;

    @Value("${spring.datasource.password}")

    private String password;

    @Value("${spring.datasource.driver-class-name}")

    private String driverClassName;

    @Value("${spring.datasource.initialSize}")

    private int initialSize;

    @Value("${spring.datasource.minIdle}")

    private int minIdle;

    @Value("${spring.datasource.maxActive}")

    private int maxActive;

    @Value("${spring.datasource.maxWait}")

    private int maxWait;

    @Value("${spring.datasource.timeBetweenEvictionRunsMillis}")

    private int timeBetweenEvictionRunsMillis;

    @Value("${spring.datasource.minEvictableIdleTimeMillis}")

    private int minEvictableIdleTimeMillis;

    @Value("${spring.datasource.validationQuery}")

    private String validationQuery;

    @Value("${spring.datasource.testWhileIdle}")

    private boolean testWhileIdle;

    @Value("${spring.datasource.testOnBorrow}")

    private boolean testOnBorrow;

    @Value("${spring.datasource.testOnReturn}")

    private boolean testOnReturn;

    @Value("${spring.datasource.poolPreparedStatements}")

    private boolean poolPreparedStatements;

    @Value("${spring.datasource.filters}")

    private String filters;

    @Value("${spring.datasource.connectionProperties}")

    private String connectionProperties;

    @Value("${spring.datasource.useGlobalDataSourceStat}")

    private boolean useGlobalDataSourceStat;

    @Value("${spring.datasource.druidLoginName}")

    private String druidLoginName;

    @Value("${spring.datasource.druidPassword}")

    private String druidPassword;

    @Bean(name="dataSource",destroyMethod = "close", initMethod="init")

    @Primary //不要漏了这

    public DataSource dataSource(){

            DruidDataSource datasource =new DruidDataSource();

            try{

                datasource.setUrl(this.dbUrl);

                datasource.setDbType(dbType);

                datasource.setUsername(username);

                datasource.setPassword(password);

                datasource.setDriverClassName(driverClassName);

                datasource.setInitialSize(initialSize);

                datasource.setMinIdle(minIdle);

                datasource.setMaxActive(maxActive);

                datasource.setMaxWait(maxWait);

                datasource.setTimeBetweenEvictionRunsMillis(timeBetweenEvictionRunsMillis);

                datasource.setMinEvictableIdleTimeMillis(minEvictableIdleTimeMillis);

                datasource.setValidationQuery(validationQuery);

                datasource.setTestWhileIdle(testWhileIdle);

                datasource.setTestOnBorrow(testOnBorrow);

                datasource.setTestOnReturn(testOnReturn);

                datasource.setPoolPreparedStatements(poolPreparedStatements);

                datasource.setFilters(filters);

            } catch (SQLException e) {

                logger.error("druid configuration initialization filter", e);

            }

        return datasource;

    }

    /////////  下面是druid 监控访问的设置  /////////////////

    @Bean

    public ServletRegistrationBean druidServlet() {

            ServletRegistrationBean reg =new ServletRegistrationBean();

            reg.setServlet(new StatViewServlet());

            reg.addUrlMappings("/druid/*");  //url 匹配

            reg.addInitParameter("allow", "192.168.16.110,127.0.0.1"); 

                    // IP白名单 (没有配置或者为空,则允许所有访问)

            reg.addInitParameter("deny", "192.168.16.111"); //IP黑名单 (存在共同时,deny优先于allow)

            reg.addInitParameter("loginUsername", this.druidLoginName);//登录名

            reg.addInitParameter("loginPassword", this.druidPassword);//登录密码

            reg.addInitParameter("resetEnable", "false"); // 禁用HTML页面上的“Reset All”功能

            return reg;

    }

    @Bean(name="druidWebStatFilter")

    public FilterRegistrationBean filterRegistrationBean() {

            FilterRegistrationBean filterRegistrationBean =new FilterRegistrationBean();

            filterRegistrationBean.setFilter(new WebStatFilter());

            filterRegistrationBean.addUrlPatterns("/*");

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

            filterRegistrationBean.addInitParameter("profileEnable", "true");

            filterRegistrationBean.addInitParameter("principalCookieName", "USER_COOKIE");

            filterRegistrationBean.addInitParameter("principalSessionName", "USER_SESSION");

            return filterRegistrationBean;

    }

}

你可能感兴趣的:(Redis_框架整合2_Mybatis)