spring boot整合mybatis -配置 druid 数据源

druid 数据库连接池是由阿里提供,由于其性能很高并且提供了强大的监控功能,所以被越来越多的应用。

第一次配置,很简单。也没有花太多时间,最坑的是 druid 监控的配置处理时:
# 这里一定要配置为 "/druid/*",而不是"/druid",浏览器会报错404!
ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(
                new StatViewServlet(), "/druid/*"); 
                #这里一定要配置为 "/druid/*",如果是"/druid",浏览器会报错404!

第一步 配置pom.xml文件

		<dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.0.17</version>
        </dependency>

同时配置 mybatis 启动包 和 mysql 连接包

		<dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>1.3.2</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
        <!--日志配置 将数据库SQL执行打印出来,还需要新增一个配置文件 logback-spring.xml  start -->
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-core</artifactId>
        </dependency>
         <!--日志配置 将数据库SQL执行打印出来,还需要新增一个配置文件 logback-spring.xml  end-->

第二步 配置application.properties

spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
# 配合Druid监控的过滤配置filters ,去掉后监控界面sql无法统计,'wall'用于防火墙
spring.datasource.filters=stat,wall,log4j 

同时配置 mybatis

spring.datasource.url = jdbc:mysql://**数据库ip**:3306/mldn?useUnicode=true&amp;characterEncoding=utf8&allowMultiQueries=true
spring.datasource.username = root
spring.datasource.password = root
spring.datasource.initialSize=5  
spring.datasource.minIdle=5  
spring.datasource.maxActive=50
spring.datasource.maxWait=60000  
spring.datasource.timeBetweenEvictionRunsMillis=60000 
spring.datasource.minEvictableIdleTimeMillis=300000  
spring.datasource.validationQuery=SELECT 1 FROM DUAL
spring.datasource.testWhileIdle=true 
spring.datasource.testOnBorrow=true
spring.datasource.testOnReturn=false
spring.datasource.poolPreparedStatements=false  
spring.datasource.maxPoolPreparedStatementPerConnectionSize=20 
# 配合Druid监控的过滤配置filters ,去掉后监控界面sql无法统计,'wall'用于防火墙
spring.datasource.filters=stat,wall,log4j 
# connectProperties
spring.datasources.connectionProperties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
# Mybatis配置
# Mybatis所有操作类的别名所在包
mybatis.typeAliasesPackage=com.example.demo.bean
# Mybatis所有的映射文件
mybatis.mapperLocations=classpath:mapper/**/*.xml
# Mybatis配置文件所在路径
mybatis.config-location=classpath:mybatis-config.xml

当然还要有Mybatis配置文件:src\main\resources\mybatis-config.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-mybatis.org//DTD Config 3.0//EN" "http://mybatis.org.dtd/mybatis-3-config.dtd">
<configuration>
 	<settings>
        <!-- 打印查询语句 -->
        <!--<setting name="logImpl" value="STDOUT_LOGGING" />-->
        <setting name="logImpl" value="SLF4J" />
    </settings>
    <typeAliases>
        <typeAlias alias="Integer" type="java.lang.Integer" />
        <typeAlias alias="Long" type="java.lang.Long" />
        <typeAlias alias="HashMap" type="java.util.HashMap" />
        <typeAlias alias="LinkedHashMap" type="java.util.LinkedHashMap" />
        <typeAlias alias="ArrayList" type="java.util.ArrayList" />
        <typeAlias alias="LinkedList" type="java.util.LinkedList" />
    </typeAliases>
</configuration>

logback配置文件:src\main\resources\logback-spring.xml

<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="true">
	<!-- 尽量别用绝对路径,如果带参数不同容器路径解释可能不同 -->
	<property name="LOG_HOME" value="../logs" />
	<springProperty scope="context" name="logLevel" source="log.level"/>
	<appender name="Console" class="ch.qos.logback.core.ConsoleAppender">
		<layout class="ch.qos.logback.classic.PatternLayout">
			<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
		</layout>
	</appender>

	<!-- 按照每天生成日志文件 -->
	<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
			<FileNamePattern>${LOG_HOME}/CcxDecision_%d{yyyy-MM-dd}.log</FileNamePattern>
			<MaxHistory>180</MaxHistory>
		</rollingPolicy>
		<layout class="ch.qos.logback.classic.PatternLayout">
			<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
		</layout>
	</appender>

	<!--设置具体包的日志级别-->
	<springProfile name="dev,product">
		**<logger name="com.example.demo" level="debug" />** <!-- 配置自己项目 -->
		<logger name="org.springframework.web" level="debug"/>
		<logger name="io.lettuce.core.RedisClient" level="debug" />
		<logger name="org.apache.http.wire" level="debug" />
		<logger name="com.mycompany.myapp.mapper.MyMapper" level="DEBUG"/>
	</springProfile>

	<root level="${logLevel}"> <!-- root将级别为“INFO”及大于“INFO”的日志信息交给已经配置好的名为“Console”的appender处理,“Console”appender将信息打印到Console; -->
		<appender-ref ref="Console" /> <!-- 标识这个appender将会添加到这个logger -->
		<appender-ref ref="FILE" />
	</root>
</configuration>

最终在我们项目logs下可以看到日志文件
在这里插入图片描述

第三步

新增一个 druid 配置类,设置 DruidDataSource。
DruidConfig.java

package com.example.demo.config;
import com.alibaba.druid.pool.DruidDataSource;
import com.alibaba.druid.support.http.StatViewServlet;
import com.alibaba.druid.support.http.WebStatFilter;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.context.properties.ConfigurationProperties;
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 javax.sql.DataSource;
import java.sql.SQLException;

@Configuration
public class DruidConfig {
    // 主要实现WEB监控的配置处理
    @Bean
    public ServletRegistrationBean druidServlet() {
        ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(
                new StatViewServlet(), "/druid"); //进行druid监控的配置处理操作
        servletRegistrationBean.addInitParameter("allow",
                "127.0.0.1,10.0.5.58"); // 白名单
        servletRegistrationBean.addInitParameter("deny", "192.168.1.200"); // 黑名单
        servletRegistrationBean.addInitParameter("loginUsername", "druid"); // druid的用户名
        servletRegistrationBean.addInitParameter("loginPassword", "druid"); // druid的密码
        servletRegistrationBean.addInitParameter("resetEnable", "false"); // 是否可以重置数据源
        return servletRegistrationBean;
    }

    // 主要实现文件监控的配置处理
    @Bean
    public FilterRegistrationBean filterRegistrationBean() {
        FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean();
        filterRegistrationBean.setFilter(new WebStatFilter());
        filterRegistrationBean.addUrlPatterns("/*"); // 所有请求进行监控处理
        filterRegistrationBean.addInitParameter("exclusions", "*.js,*.gif,*.jpg,*.css,/druid/*");// 不监控的格式
        return filterRegistrationBean;
    }
    // 将所有前缀为spring.datasource下的配置项都加载到DataSource中
    @ConfigurationProperties(prefix = "spring.datasource")
    @Bean
    public DataSource druidDataSource() {
        return new DruidDataSource();
    }

}

注意:非常关键的监控配置:

ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(
                new StatViewServlet(), "/druid/*"); 
                #这里一定要配置为 "/druid/*",如果是"/druid",浏览器会报错404!

第四步 验证

输入地址:http://localhost/druid/login.html
在这里插入图片描述
登陆成功,可以很清晰的看到我刚刚执行的SQL:(自己写一个查询方法,进入druid监控前,先执行几次)
在这里插入图片描述

<think>好的,我现在需要处理用户关于安装麒麟信安3.3操作系统的查询。首先,我需要回顾用户提供的系统级指令,确保回答符合格式要求,比如数学表达式使用$...$,独立公式用$$...$$,中文回答,生成相关问题等。不过当前问题涉及操作系统安装,可能不涉及数学公式,但还是要检查是否有需要的地方,比如版本号或硬件参数可能需要强调。 接下来,用户的问题具体是寻找麒麟信安3.3的安装教程。根据用户提供的引用内容,引用[1]是关于麒麟信安4.0及以上安装Docker的步骤,而引用[2]是银河麒麟虚拟机安装的指南。用户需要的是3.3版本的安装教程,但现有引用中没有直接提到3.3版本的信息。这可能需要推断或基于现有信息提供相近的指导。 首先,我需要确认麒麟信安3.3和4.0的安装步骤是否相似。通常,同一操作系统不同版本的安装流程可能大同小异,可能在硬件要求、软件包版本或某些配置步骤上有差异。因此,可以建议用户参考4.0的安装步骤,同时注意版本差异。 根据引用[2],银河麒麟的安装涉及创建虚拟机、选择ISO镜像、配置硬件、安装设置等步骤。虽然这是针对银河麒麟的,但麒麟信安可能也有类似的安装流程,尤其是在虚拟机环境中。因此,可以引导用户按照类似的步骤操作,但提醒注意版本特定的要求。 接下来,我需要整理回答的结构,确保符合用户要求的清晰结构,分步骤说明。可能需要包括准备工作、安装步骤、注意事项等部分。同时,要引用提供的资料,比如引用[1]中的硬件要求和更新系统软件包的步骤,引用[2]中的虚拟机安装流程,但需要明确指出这些是不同版本或不同系统的步骤,可能存在差异。 此外,用户可能需要安装指南的具体步骤,比如如何获取ISO镜像、启动安装程序、分区设置、网络配置等。但现有引用中没有麒麟信安3.3的具体细节,因此需要建议用户查阅官方文档或联系支持,同时提供基于现有信息的通用步骤。 还需要注意用户提到的麒麟信安3.3是否与引用中的麒麟信安4.0或银河麒麟有兼容性或步骤上的不同。可能需要指出这些潜在差异,避免用户操作错误。 最后,生成相关问题时要围绕安装指南、系统要求、常见问题等,确保问题相关且有帮助。 总结步骤: 1. 确认用户需求:麒麟信安3.3安装教程。 2. 分析现有引用,发现没有直接对应的信息,但找到类似系统的安装步骤。 3. 基于现有引用和通用安装知识,提供可能的步骤,并指出版本差异。 4. 提醒用户参考官方文档或寻求官方支持。 5. 生成相关问题,如系统要求、虚拟机安装、升级到新版本等。</think>根据现有资料及相近版本安装经验,麒麟信安3.3操作系统的安装可参考以下通用步骤: ### 一、系统安装准备 1. **硬件要求**(参考4.0版本调整): - CPU架构:$x86\_64$ - 内存:建议≥2GB - 硬盘空间:≥20GB(需考虑应用需求)[^1] 2. **获取安装介质**: - 联系麒麟信安官方获取3.3版本ISO镜像 - 校验文件哈希值确保完整性 ### 二、安装流程(虚拟机环境参考[^2]) ```markdown 1. 创建虚拟机: - 使用VMware/VirtualBox选择"典型"配置 - 加载麒麟信安3.3 ISO镜像 - 分配资源(建议2核CPU/4GB内存/40GB磁盘) 2. 启动安装程序: - 选择"安装麒麟信安操作系统" - 设置语言、时区与键盘布局 3. 磁盘分区: - 自动分区(推荐新手) - 手动分区需保留/boot(≥1GB)、swap(≈内存2倍)、/(≥15GB) 4. 用户配置- 设置root密码(需满足复杂度要求) - 创建普通用户(建议启用sudo权限) ``` ### 三、注意事项 1. **驱动兼容性**:3.3版本可能需手动加载部分硬件驱动 2. **软件源配置**:安装后执行`sudo apt update`更新源(若源未自动识别) 3. **安全加固**:建议安装后配置防火墙规则(如$iptables$或$firewalld$)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值