Spring Boot (四) druid及beetlSQL配置

上篇主要讲述了SpringBoot Maven搭建层层之间的关系,本篇则主要针对beetlSQL,druid数据源来整合一下。
对于beetlSQL的好处beetlSQL基本使用中当中已经讲述,这里则不再多提。
再beetlSQL的配合使用中,我们使用了alibaba的Druid数据库连接池,Druid这个新生代的后期勃发再此不多说,可以自行学习。配置Druid很简单:
1、添加Maven依赖(包含mysql和beetlSQL的Maven依赖也一并加上)

            <!--mysql-->
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>5.1.45</version>
            </dependency>
            <!--阿里巴巴Druid数据源-->
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>druid</artifactId>
                <version>1.1.6</version>
            </dependency>
            <!--beetlSQL-->
            <dependency>
                <groupId>com.ibeetl</groupId>
                <artifactId>beetlsql</artifactId>
                <version>2.10.19</version>
            </dependency>

2、资源配置文件
(2.1资源配置)

#database config
datasource.exam.url=jdbc:mysql://192.168.XX.XX:3001/user?useUnicode=true&characterEncoding=utf-8
datasource.exam.username = XXX
datasource.exam.password = XXXX

datasource.maxActive=10
datasource.initialSize=1
datasource.maxWaitMillis=15000
datasource.minIdle=5
datasource.timeBetweenEvictionRunsMillis=60000
datasource.minEvictableIdleTimeMillis=300000
datasource.validationQuery=SELECT 'x'
datasource.testWhileIdle=true
datasource.testOnBorrow=false
datasource.testOnReturn=false

(2.2资源配置详解)

配置说明
datasource.maxActive最大连接池数量
datasource.minIdle最小连接池数量
datasource.initialSize初始化时建立物理连接的个数。初始化发生在显示调用init方法,或者第一次getConnection时
datasource.maxWaitMillis获取连接时最大等待时间,单位毫秒
datasource.timeBetweenEvictionRunsMillis1) Destroy线程会检测连接的间隔时间 2) testWhileIdle的判断依据,详细看testWhileIdle属性的说明
datasource.validationQuery用来检测连接是否有效的sql,要求是一个查询语句。如果validationQuery为null,testOnBorrow、testOnReturn、 testWhileIdle都不会起作用
datasource.testWhileIdle申请连接的时候检测,如果空闲时间大于timeBetweenEvictionRunsMillis, 执行validationQuery检测连接是否有效
datasource.testOnBorrow申请连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能。
datasource.testOnReturn归还连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能

3、创建工厂类读取资源文件

@Configuration
@PropertySource({"classpath:dev/application-db.properties"})
public class DataSourceConfig {


    @Value("${datasource.exam.url}")
    private String examUrl;
    @Value("${datasource.exam.username}")
    private String examUserName;
    @Value("${datasource.exam.password}")
    private String examPassword;

    @Value("${datasource.maxActive}")
    private int maxActive;
    @Value("${datasource.initialSize}")
    private int initialSize;
    @Value("${datasource.maxWaitMillis}")
    private long maxWaitMillis;
    @Value("${datasource.minIdle}")
    private int minIdle;
    @Value("${datasource.timeBetweenEvictionRunsMillis}")
    private long timeBetweenEvictionRunsMillis;
    @Value("${datasource.minEvictableIdleTimeMillis}")
    private long minEvictableIdleTimeMillis;
    @Value("${datasource.validationQuery}")
    private String validationQuery;
    @Value("${datasource.testWhileIdle}")
    private boolean testWhileIdle;
    @Value("${datasource.testOnBorrow}")
    private boolean testOnBorrow;
    @Value("${datasource.testOnReturn}")
    private boolean testOnReturn;



    @Bean(value = "examDB")
    @Primary
    public DataSource getExamDataSource(){
        DruidDataSource druidDataSource=new DruidDataSource();
        druidDataSource.setName("examDB");
        druidDataSource.setUrl(examUrl);
        druidDataSource.setUsername(examUserName);
        druidDataSource.setPassword(examPassword);

        //druidDataSource配置
        druidDataSource.setMaxActive(maxActive);
        druidDataSource.setInitialSize(initialSize);
        druidDataSource.setMaxWait(maxWaitMillis);
        druidDataSource.setMinIdle(minIdle);
        druidDataSource.setTimeBetweenEvictionRunsMillis(timeBetweenEvictionRunsMillis);
        druidDataSource.setMinEvictableIdleTimeMillis(minEvictableIdleTimeMillis);
        druidDataSource.setValidationQuery(validationQuery);
        druidDataSource.setTestWhileIdle(testWhileIdle);
        druidDataSource.setTestOnBorrow(testOnBorrow);
        druidDataSource.setTestOnReturn(testOnReturn);
        return druidDataSource;

    }
}

三步druid则配置完工了,Dao层我们使用的简单方便快捷,且优点多多的beetlSQL来完成,Maven依赖上述已经配置好,由于SpringBoot没有对beetlSQL的快速启动装配,所以我们得手动导入相关的bean,包括数据源,扫描宝,事务管理器等必须的。

@Configuration
public class SQLManagerConfig {

    @Bean(name = "examSqlManager")
    @Primary
    public SqlManagerFactoryBean getSqlManagerFactoryBean(@Qualifier("examDB")DataSource master){
        SqlManagerFactoryBean factoryBean=new SqlManagerFactoryBean();
        BeetlSqlDataSource source=new BeetlSqlDataSource();
        source.setMasterSource(master);
        factoryBean.setCs(source);
        factoryBean.setDbStyle(new MySqlStyle());
        //开启驼峰
        factoryBean.setNc(new UnderlinedNameConversion());
        //sql文件路径
        factoryBean.setSqlLoader(new ClasspathLoader("/sql"));
        return factoryBean;
    }

    /**
     * 配置包扫描
     * @return
     */
    @Bean(name = "examSqlScannerConfigurer")
    public BeetlSqlScannerConfigurer getBeetlSqlScannerConfigurer() {
        BeetlSqlScannerConfigurer conf = new BeetlSqlScannerConfigurer();
        conf.setBasePackage("com.exam.api.dao");
        conf.setDaoSuffix("Dao");
        conf.setSqlManagerFactoryBeanName("examSqlManager");
        return conf;
    }
}

到此为止,从web层到dao层的一个基本启动流程就搭建完工了。下篇则主要讲述启动过程中的一些问题以及流程实践操作。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
Spring Boot是一种用于快速开发基于Spring框架的应用程序的框架,而Druid是一个开源的数据库连接池和监控平台。Druid Admin是一种基于Web的管理平台,可以用于监控和管理Druid数据库连接池。 要在Spring Boot使用Druid Admin,需要遵循以下步骤: 1. 在pom.xml文件添加DruidDruid Admin的依赖。 ```xml <dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>1.1.10</version> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-admin-starter</artifactId> <version>1.1.10</version> </dependency> ``` 2. 在application.properties或application.yml文件添加Druid配置信息。 ```properties spring.datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2B8 spring.datasource.username=root spring.datasource.password=root spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver # Druid监控配置 # 访问Druid监控平台的URL为:http://localhost:8080/druid spring.datasource.druid.stat-view-servlet.enabled=true spring.datasource.druid.stat-view-servlet.url-pattern=/druid/* spring.datasource.druid.stat-view-servlet.login-username=admin spring.datasource.druid.stat-view-servlet.login-password=admin spring.datasource.druid.stat-view-servlet.reset-enable=true spring.datasource.druid.stat-view-servlet.allow=127.0.0.1 ``` 3. 在Spring Boot启动类添加@EnableAdminServer注解,启用Druid Admin监控平台。 ```java import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import de.codecentric.boot.admin.server.config.EnableAdminServer; @EnableAdminServer @SpringBootApplication public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } } ``` 4. 启动Spring Boot应用程序,Druid Admin监控平台即可访问。在浏览器输入"http://localhost:8080",即可进入Druid Admin监控平台。 希望这些步骤能够帮助你在Spring Boot成功使用Druid Admin监控平台。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值