Druid中监听器的使用(课时十九)

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: Druid中监听器的使用(课时十九)

Druid数据库

Java程序很大一部分要操作数据库,为了提高性能操作数据库的时候,又不得不使用数据库连接池。


Druid 是阿里巴巴开源平台上一个数据库连接池实现,结合了 C3P0、DBCP 等 DB 池的优点,同时加入了日志监控。


Druid 可以很好的监控 DB 池连接和 SQL 的执行情况,天生就是针对监控而生的 DB 连接池。


Druid已经在阿里巴巴部署了超过600个应用,经过一年多生产环境大规模部署的严苛考验。


Spring Boot 2.0 以上默认使用 Hikari 数据源,可以说 Hikari 与 Driud 都是当前 Java Web 上最优秀的数据源,我们来重点介绍 Spring Boot 如何集成 Druid 数据源,如何实现数据库监控。

Github地址:https://github.com/alibaba/druid/

spring:
  datasource:
    username: root
    password: 123456
    url: jdbc:mysql://localhost:3306/mybatis?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8
    driver-class-name: com.mysql.cj.jdbc.Driver
    type: com.alibaba.druid.pool.DruidDataSource
    initial-size: 5
    min-idle: 5
    max-active: 20
    # 配置获取连接等待超时的时间
    max-wait: 60000
    # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
    time-between-eviction-runs-millis: 60000
    # 配置一个连接在池中最小生存的时间,单位是毫秒
    min-evictable-idle-time-millis: 300000
    validation-query: SELECT 1 FROM DUAL
    test-while-idle: true
    test-on-borrow: false
    test-on-return: false
    # 打开PSCache,并且指定每个连接上PSCache的大小
    pool-prepared-statements: true
    #   配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙 最好的功能
    max-pool-prepared-statement-per-connection-size: 20
    filters: stat,wall
    use-global-data-source-stat: true
    # 通过connectProperties属性来打开mergeSql功能;慢SQL记录
    connect-properties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000

type: com.alibaba.druid.pool.DruidDataSource

package com.alibaba.druid.pool;
/**
 * @author ljw [ljw2083@alibaba-inc.com]
 * @author wenshao [szujobs@hotmail.com]
 */
public class DruidDataSource extends DruidAbstractDataSource implements DruidDataSourceMBean, ManagedDataSource, Referenceable, Closeable, Cloneable, ConnectionPoolDataSource, MBeanRegistration {
    private final static Log                 LOG                       = LogFactory.getLog(DruidDataSource.class);
    private static final long                serialVersionUID          = 1L;
    // stats
    private volatile long                    recycleErrorCount         = 0L;
    private long                             connectCount              = 0L;
    private long                             closeCount                = 0L;
    private volatile long                    connectErrorCount         = 0L;
    private long                             recycleCount              = 0L;
    private long                             removeAbandonedCount      = 0L;
    private long                             notEmptyWaitCount         = 0L;
    private long                             notEmptySignalCount       = 0L;
    private long                             notEmptyWaitNanos         = 0L;
    private int                              keepAliveCheckCount       = 0;
    private int                              activePeak                = 0;
    private long                             activePeakTime            = 0;
    private int                              poolingPeak               = 0;
    private long                             poolingPeakTime           = 0;
    // store
    private volatile DruidConnectionHolder[] connections;
    private int                              poolingCount              = 0;
    private int                              activeCount               = 0;
    private volatile long                    discardCount              = 0;
    private int                              notEmptyWaitThreadCount   = 0;
    private int                              notEmptyWaitThreadPeak    = 0;
    //
    private DruidConnectionHolder[]          evictConnections;
    private DruidConnectionHolder[]          keepAliveConnections;
    // threads
    private volatile ScheduledFuture<?>      destroySchedulerFuture;
    private DestroyTask                      destroyTask;
    private volatile Future<?>               createSchedulerFuture;
    private CreateConnectionThread           createConnectionThread;
    private DestroyConnectionThread          destroyConnectionThread;
    private LogStatsThread                   logStatsThread;
    private int                              createTaskCount;
    private volatile long                    createTaskIdSeed          = 1L;
    private long[]                           createTasks;
    private final CountDownLatch             initedLatch               = new CountDownLatch(2);
    private volatile boolean                 enable                    = true;
    private boolean                          resetStatEnable           = true;
    private volatile long                    resetCount                = 0L;
    private String                           initStackTrace;
    private volatile boolean                 closing                   = false;
    private volatile boolean                 closed                    = false;
    private long                             closeTimeMillis           = -1L;
    protected JdbcDataSourceStat             dataSourceStat;
    private boolean                          useGlobalDataSourceStat   = false;
    private boolean                          mbeanRegistered           = false;
    public static ThreadLocal<Long>          waitNanosLocal            = new ThreadLocal<Long>();
    private boolean                          logDifferentThread        = true;
    private volatile boolean                 keepAlive                 = false;
    private boolean                          asyncInit                 = false;
    protected boolean                        killWhenSocketReadTimeout = false;
    protected boolean                        checkExecuteTime          = false;
    private static List<Filter>              autoFilters               = null;
    private boolean                          loadSpifilterSkip         = false;
    private volatile DataSourceDisableException disableException       = null;

下面为连接池的补充设置,应用到上面所有数据源中

    # 初始化大小,最小,最大

     initial-size: 5

     min-idle: 5

     max-active: 20

     # 配置获取连接等待超时的时间

     max-wait: 60000

     # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒

     time-between-eviction-runs-millis: 60000

     # 配置一个连接在池中最小生存的时间,单位是毫秒

     min-evictable-idle-time-millis: 300000

     validation-query: SELECT 1 FROM DUAL

     test-while-idle: true

     test-on-borrow: false

     test-on-return: false

     # 打开PSCache,并且指定每个连接上PSCache的大小

     pool-prepared-statements: true

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

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

     filters: stat,wall

     use-global-data-source-stat: true

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

     connect-properties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000

package com.springdate.config;
import com.alibaba.druid.pool.DruidDataSource;
import com.alibaba.druid.support.http.StatViewServlet;
import com.alibaba.druid.support.http.WebStatFilter;
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 javax.sql.DataSource;
import java.util.HashMap;
import java.util.Map;
@Configuration
public class DruidConfig {
    //    将文件绑定事件
    @ConfigurationProperties(prefix = "spring.datasource")
    @Bean
    public DataSource dataSource() {
        return new DruidDataSource();
    }
    //配置 Druid 监控管理后台的Servlet;
    //因为SpringBoot内置 Servlet 容器时没有web.xml文件,所以使用 Spring Boot 的注册 Servlet 方式
    @Bean
    public ServletRegistrationBean statViewServlet() {
        ServletRegistrationBean bean = new ServletRegistrationBean(new StatViewServlet(), "/druid/*");
        // 这些参数可以在 com.alibaba.druid.support.http.StatViewServlet
        //   druid数据库     http://localhost:8080/druid/login.html
        // 的父类 com.alibaba.druid.support.http.ResourceServlet 中找到
        Map<String, String> initParams = new HashMap<>();
        initParams.put("loginUsername", "admin");
        //后台管理界面的登录账号
        initParams.put("loginPassword", "123456");
        //后台管理界面的登录密码
}
 //后台允许谁可以访问
        //initParams.put("allow", "localhost"):表示只有本机可以访问
        //initParams.put("allow", ""):为空或者为null时,表示允许所有访问
        initParams.put("allow", "");
        //deny:Druid 后台拒绝谁访问
        //initParams.put("kuangshen", "192.168.1.20");表示禁止此ip访问
        //设置初始化参数
        bean.setInitParameters(initParams);
        return bean;
}
  //过滤的功能
    @Bean
    public FilterRegistrationBean WebStatFilter() {
        FilterRegistrationBean bean = new FilterRegistrationBean();
        //设置过滤器
        bean.setFilter(new WebStatFilter());
        //可以有啥请求呀
        HashMap<String, String> initparamenters = new HashMap<>();
        //这些内容不进行统计
        initparamenters.put("exclusions", "*.js,*.css,/druid/*");
        return bean;
    }
package com.springdate.Controller;
//测试
/**
 * 整合jdbcTemplate
 */
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
import java.util.Map;
@RestController
public class jdbc {
    @Autowired
    JdbcTemplate jdbcTemplate;
    //查询书籍看所有信息
    @GetMapping("/userlist")
    public List<Map<String, Object>> userList(){
        String sql = "SELECT * FROM account";
        List<Map<String, Object>> lists_maps  = jdbcTemplate.queryForList(sql);
        return lists_maps;
    }

官网地址:http://localhost:8080/druid/login.html

 // 的父类 com.alibaba.druid.support.http.ResourceServlet 中找到
        Map<String, String> initParams = new HashMap<>();
        initParams.put("loginUsername", "admin");
        //后台管理界面的登录账号
        initParams.put("loginPassword", "123456");
        //后台管理界面的登录密码

启动程序

package com.springdate;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class SpringbootSpringdate04Application {
    public static void main(String[] args) {
        SpringApplication.run(SpringbootSpringdate04Application.class, args);
    }
}
"C:\Program Files\Java\jdk1.8.0_171\bin\java.exe" -XX:TieredStopAtLevel=1 -noverify -Dspring.output.ansi.enabled=always -Dcom.sun.management.jmxremote -Dspring.jmx.enabled=true -Dspring.liveBeansView.mbeanDomain -Dspring.application.admin.enabled=true "-javaagent:D:\IDEA\com.text\IntelliJ IDEA 2020.1.2\lib\idea_rt.jar=52650:D:\IDEA\com.text\IntelliJ IDEA 2020.1.2\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program Files\Java\jdk1.8.0_171\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8.0_171\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.8.0_171\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk1.8.0_171\jre\lib\ext\cldrdata.jar;C:\Program Files\Java\jdk1.8.0_171\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.8.0_171\jre\lib\ext\jaccess.jar;C:\Program Files\Java\jdk1.8.0_171\jre\lib\ext\jfxrt.jar;C:\Program Files\Java\jdk1.8.0_171\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk1.8.0_171\jre\lib\ext\nashorn.jar;C:\Program Files\Java\jdk1.8.0_171\jre\lib\ext\sunec.jar;C:\Program Files\Java\jdk1.8.0_171\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk1.8.0_171\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk1.8.0_171\jre\lib\ext\sunpkcs11.jar;C:\Program Files\Java\jdk1.8.0_171\jre\lib\ext\zipfs.jar;C:\Program Files\Java\jdk1.8.0_171\jre\lib\javaws.jar;C:\Program Files\Java\jdk1.8.0_171\jre\lib\jce.jar;C:\Program Files\Java\jdk1.8.0_171\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.8.0_171\jre\lib\jfxswt.jar;C:\Program Files\Java\jdk1.8.0_171\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.8.0_171\jre\lib\management-agent.jar;C:\Program Files\Java\jdk1.8.0_171\jre\lib\plugin.jar;C:\Program Files\Java\jdk1.8.0_171\jre\lib\resources.jar;C:\Program Files\Java\jdk1.8.0_171\jre\lib\rt.jar;D:\maven-workspace\spaceVideospringboot\springboot-springdate04\target\classes;C:\Users\MZFAITHDREAM\.m2\repository\com\jpattern\jporm-jdbctemplate\5.3.0\jporm-jdbctemplate-5.3.0.jar;C:\Users\MZFAITHDREAM\.m2\repository\com\jpattern\jporm\5.3.0\jporm-5.3.0.jar;C:\Users\MZFAITHDREAM\.m2\repository\log4j\log4j\1.2.14\log4j-1.2.14.jar;C:\Users\MZFAITHDREAM\.m2\repository\com\alibaba\druid-spring-boot-starter\1.2.9\druid-spring-boot-starter-1.2.9.jar;C:\Users\MZFAITHDREAM\.m2\repository\com\alibaba\druid\1.2.9\druid-1.2.9.jar;C:\Users\MZFAITHDREAM\.m2\repository\javax\annotation\javax.annotation-api\1.3.2\javax.annotation-api-1.3.2.jar;C:\Users\MZFAITHDREAM\.m2\repository\org\slf4j\slf4j-api\1.7.36\slf4j-api-1.7.36.jar;C:\Users\MZFAITHDREAM\.m2\repository\org\springframework\boot\spring-boot-autoconfigure\2.7.4\spring-boot-autoconfigure-2.7.4.jar;C:\Users\MZFAITHDREAM\.m2\repository\org\springframework\boot\spring-boot\2.7.4\spring-boot-2.7.4.jar;C:\Users\MZFAITHDREAM\.m2\repository\org\springframework\boot\spring-boot-starter-web\2.7.4\spring-boot-starter-web-2.7.4.jar;C:\Users\MZFAITHDREAM\.m2\repository\org\springframework\boot\spring-boot-starter\2.7.4\spring-boot-starter-2.7.4.jar;C:\Users\MZFAITHDREAM\.m2\repository\org\springframework\boot\spring-boot-starter-logging\2.7.4\spring-boot-starter-logging-2.7.4.jar;C:\Users\MZFAITHDREAM\.m2\repository\ch\qos\logback\logback-classic\1.2.11\logback-classic-1.2.11.jar;C:\Users\MZFAITHDREAM\.m2\repository\ch\qos\logback\logback-core\1.2.11\logback-core-1.2.11.jar;C:\Users\MZFAITHDREAM\.m2\repository\org\apache\logging\log4j\log4j-to-slf4j\2.17.2\log4j-to-slf4j-2.17.2.jar;C:\Users\MZFAITHDREAM\.m2\repository\org\apache\logging\log4j\log4j-api\2.17.2\log4j-api-2.17.2.jar;C:\Users\MZFAITHDREAM\.m2\repository\org\slf4j\jul-to-slf4j\1.7.36\jul-to-slf4j-1.7.36.jar;C:\Users\MZFAITHDREAM\.m2\repository\jakarta\annotation\jakarta.annotation-api\1.3.5\jakarta.annotation-api-1.3.5.jar;C:\Users\MZFAITHDREAM\.m2\repository\org\yaml\snakeyaml\1.30\snakeyaml-1.30.jar;C:\Users\MZFAITHDREAM\.m2\repository\org\springframework\boot\spring-boot-starter-json\2.7.4\spring-boot-starter-json-2.7.4.jar;C:\Users\MZFAITHDREAM\.m2\repository\com\fasterxml\jackson\core\jackson-databind\2.13.4\jackson-databind-2.13.4.jar;C:\Users\MZFAITHDREAM\.m2\repository\com\fasterxml\jackson\core\jackson-annotations\2.13.4\jackson-annotations-2.13.4.jar;C:\Users\MZFAITHDREAM\.m2\repository\com\fasterxml\jackson\core\jackson-core\2.13.4\jackson-core-2.13.4.jar;C:\Users\MZFAITHDREAM\.m2\repository\com\fasterxml\jackson\datatype\jackson-datatype-jdk8\2.13.4\jackson-datatype-jdk8-2.13.4.jar;C:\Users\MZFAITHDREAM\.m2\repository\com\fasterxml\jackson\datatype\jackson-datatype-jsr310\2.13.4\jackson-datatype-jsr310-2.13.4.jar;C:\Users\MZFAITHDREAM\.m2\repository\com\fasterxml\jackson\module\jackson-module-parameter-names\2.13.4\jackson-module-parameter-names-2.13.4.jar;C:\Users\MZFAITHDREAM\.m2\repository\org\springframework\boot\spring-boot-starter-tomcat\2.7.4\spring-boot-starter-tomcat-2.7.4.jar;C:\Users\MZFAITHDREAM\.m2\repository\org\apache\tomcat\embed\tomcat-embed-core\9.0.65\tomcat-embed-core-9.0.65.jar;C:\Users\MZFAITHDREAM\.m2\repository\org\apache\tomcat\embed\tomcat-embed-el\9.0.65\tomcat-embed-el-9.0.65.jar;C:\Users\MZFAITHDREAM\.m2\repository\org\apache\tomcat\embed\tomcat-embed-websocket\9.0.65\tomcat-embed-websocket-9.0.65.jar;C:\Users\MZFAITHDREAM\.m2\repository\org\springframework\spring-web\5.3.23\spring-web-5.3.23.jar;C:\Users\MZFAITHDREAM\.m2\repository\org\springframework\spring-beans\5.3.23\spring-beans-5.3.23.jar;C:\Users\MZFAITHDREAM\.m2\repository\org\springframework\spring-webmvc\5.3.23\spring-webmvc-5.3.23.jar;C:\Users\MZFAITHDREAM\.m2\repository\org\springframework\spring-aop\5.3.23\spring-aop-5.3.23.jar;C:\Users\MZFAITHDREAM\.m2\repository\org\springframework\spring-context\5.3.23\spring-context-5.3.23.jar;C:\Users\MZFAITHDREAM\.m2\repository\org\springframework\spring-expression\5.3.23\spring-expression-5.3.23.jar;C:\Users\MZFAITHDREAM\.m2\repository\org\springframework\boot\spring-boot-starter-jdbc\2.7.4\spring-boot-starter-jdbc-2.7.4.jar;C:\Users\MZFAITHDREAM\.m2\repository\com\zaxxer\HikariCP\4.0.3\HikariCP-4.0.3.jar;C:\Users\MZFAITHDREAM\.m2\repository\org\springframework\spring-jdbc\5.3.23\spring-jdbc-5.3.23.jar;C:\Users\MZFAITHDREAM\.m2\repository\org\springframework\spring-tx\5.3.23\spring-tx-5.3.23.jar;C:\Users\MZFAITHDREAM\.m2\repository\mysql\mysql-connector-java\8.0.30\mysql-connector-java-8.0.30.jar;C:\Users\MZFAITHDREAM\.m2\repository\org\springframework\spring-core\5.3.23\spring-core-5.3.23.jar;C:\Users\MZFAITHDREAM\.m2\repository\org\springframework\spring-jcl\5.3.23\spring-jcl-5.3.23.jar" com.springdate.SpringbootSpringdate04Application
  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::                (v2.7.4)
2022-10-03 10:21:26.173  INFO 21568 --- [           main] c.s.SpringbootSpringdate04Application    : Starting SpringbootSpringdate04Application using Java 1.8.0_171 on HELLOWWORLD with PID 21568 (D:\maven-workspace\spaceVideospringboot\springboot-springdate04\target\classes started by MZFAITHDREAM in D:\maven-workspace\spaceVideospringboot\springboot-springdate04)
2022-10-03 10:21:26.177  INFO 21568 --- [           main] c.s.SpringbootSpringdate04Application    : No active profile set, falling back to 1 default profile: "default"
2022-10-03 10:21:27.310  INFO 21568 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port(s): 8080 (http)
2022-10-03 10:21:27.310  INFO 21568 --- [           main] o.apache.catalina.core.StandardService   : Starting service [Tomcat]
2022-10-03 10:21:27.310  INFO 21568 --- [           main] org.apache.catalina.core.StandardEngine  : Starting Servlet engine: [Apache Tomcat/9.0.65]
2022-10-03 10:21:27.610  INFO 21568 --- [           main] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
2022-10-03 10:21:27.610  INFO 21568 --- [           main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 1383 ms
2022-10-03 10:21:28.031  INFO 21568 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8080 (http) with context path ''
2022-10-03 10:21:28.047  INFO 21568 --- [           main] c.s.SpringbootSpringdate04Application    : Started SpringbootSpringdate04Application in 2.418 seconds (JVM running for 3.73)
2022-10-03 10:21:44.286  INFO 21568 --- [nio-8080-exec-9] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring DispatcherServlet 'dispatcherServlet'
2022-10-03 10:21:44.286  INFO 21568 --- [nio-8080-exec-9] o.s.web.servlet.DispatcherServlet        : Initializing Servlet 'dispatcherServlet'
2022-10-03 10:21:44.289  INFO 21568 --- [nio-8080-exec-9] o.s.web.servlet.DispatcherServlet        : Completed initialization in 3 ms

输入了正确的用户名和密码

 

输入错误的用户名和密码

 

输入正确的用户名和密码

使用的是监听器

监听器的记录在上面图片的

C
\Program Files\Java\jdk1.8.0_171\jre\lib\charsets.jar
C
\Program Files\Java\jdk1.8.0_171\jre\lib\deploy.jar
C
\Program Files\Java\jdk1.8.0_171\jre\lib\ext\access-bridge-64.jar
C
\Program Files\Java\jdk1.8.0_171\jre\lib\ext\cldrdata.jar
C
\Program Files\Java\jdk1.8.0_171\jre\lib\ext\dnsns.jar
C
\Program Files\Java\jdk1.8.0_171\jre\lib\ext\jaccess.jar
C
\Program Files\Java\jdk1.8.0_171\jre\lib\ext\jfxrt.jar
C
\Program Files\Java\jdk1.8.0_171\jre\lib\ext\localedata.jar
C
\Program Files\Java\jdk1.8.0_171\jre\lib\ext\nashorn.jar
C
\Program Files\Java\jdk1.8.0_171\jre\lib\ext\sunec.jar
C
\Program Files\Java\jdk1.8.0_171\jre\lib\ext\sunjce_provider.jar
C
\Program Files\Java\jdk1.8.0_171\jre\lib\ext\sunmscapi.jar
C
\Program Files\Java\jdk1.8.0_171\jre\lib\ext\sunpkcs11.jar
C
\Program Files\Java\jdk1.8.0_171\jre\lib\ext\zipfs.jar
C
\Program Files\Java\jdk1.8.0_171\jre\lib\javaws.jar
C
\Program Files\Java\jdk1.8.0_171\jre\lib\jce.jar
C
\Program Files\Java\jdk1.8.0_171\jre\lib\jfr.jar
C
\Program Files\Java\jdk1.8.0_171\jre\lib\jfxswt.jar
C
\Program Files\Java\jdk1.8.0_171\jre\lib\jsse.jar
C
\Program Files\Java\jdk1.8.0_171\jre\lib\management-agent.jar
C
\Program Files\Java\jdk1.8.0_171\jre\lib\plugin.jar
C
\Program Files\Java\jdk1.8.0_171\jre\lib\resources.jar
C
\Program Files\Java\jdk1.8.0_171\jre\lib\rt.jar
D
\maven-workspace\spaceVideospringboot\springboot-springdate04\target\classes
C
\Users\MZFAITHDREAM\.m2\repository\com\jpattern\jporm-jdbctemplate\5.3.0\jporm-jdbctemplate-5.3.0.jar
C
\Users\MZFAITHDREAM\.m2\repository\com\jpattern\jporm\5.3.0\jporm-5.3.0.jar
C
\Users\MZFAITHDREAM\.m2\repository\log4j\log4j\1.2.14\log4j-1.2.14.jar
C
\Users\MZFAITHDREAM\.m2\repository\com\alibaba\druid-spring-boot-starter\1.2.9\druid-spring-boot-starter-1.2.9.jar
C
\Users\MZFAITHDREAM\.m2\repository\com\alibaba\druid\1.2.9\druid-1.2.9.jar
C
\Users\MZFAITHDREAM\.m2\repository\javax\annotation\javax.annotation-api\1.3.2\javax.annotation-api-1.3.2.jar
C
\Users\MZFAITHDREAM\.m2\repository\org\slf4j\slf4j-api\1.7.36\slf4j-api-1.7.36.jar
C
\Users\MZFAITHDREAM\.m2\repository\org\springframework\boot\spring-boot-autoconfigure\2.7.4\spring-boot-autoconfigure-2.7.4.jar
C
\Users\MZFAITHDREAM\.m2\repository\org\springframework\boot\spring-boot\2.7.4\spring-boot-2.7.4.jar
C
\Users\MZFAITHDREAM\.m2\repository\org\springframework\boot\spring-boot-starter-web\2.7.4\spring-boot-starter-web-2.7.4.jar
C
\Users\MZFAITHDREAM\.m2\repository\org\springframework\boot\spring-boot-starter\2.7.4\spring-boot-starter-2.7.4.jar
C
\Users\MZFAITHDREAM\.m2\repository\org\springframework\boot\spring-boot-starter-logging\2.7.4\spring-boot-starter-logging-2.7.4.jar
C
\Users\MZFAITHDREAM\.m2\repository\ch\qos\logback\logback-classic\1.2.11\logback-classic-1.2.11.jar
C
\Users\MZFAITHDREAM\.m2\repository\ch\qos\logback\logback-core\1.2.11\logback-core-1.2.11.jar
C
\Users\MZFAITHDREAM\.m2\repository\org\apache\logging\log4j\log4j-to-slf4j\2.17.2\log4j-to-slf4j-2.17.2.jar
C
\Users\MZFAITHDREAM\.m2\repository\org\apache\logging\log4j\log4j-api\2.17.2\log4j-api-2.17.2.jar
C
\Users\MZFAITHDREAM\.m2\repository\org\slf4j\jul-to-slf4j\1.7.36\jul-to-slf4j-1.7.36.jar
C
\Users\MZFAITHDREAM\.m2\repository\jakarta\annotation\jakarta.annotation-api\1.3.5\jakarta.annotation-api-1.3.5.jar
C
\Users\MZFAITHDREAM\.m2\repository\org\yaml\snakeyaml\1.30\snakeyaml-1.30.jar
C
\Users\MZFAITHDREAM\.m2\repository\org\springframework\boot\spring-boot-starter-json\2.7.4\spring-boot-starter-json-2.7.4.jar
C
\Users\MZFAITHDREAM\.m2\repository\com\fasterxml\jackson\core\jackson-databind\2.13.4\jackson-databind-2.13.4.jar
C
\Users\MZFAITHDREAM\.m2\repository\com\fasterxml\jackson\core\jackson-annotations\2.13.4\jackson-annotations-2.13.4.jar
C
\Users\MZFAITHDREAM\.m2\repository\com\fasterxml\jackson\core\jackson-core\2.13.4\jackson-core-2.13.4.jar
C
\Users\MZFAITHDREAM\.m2\repository\com\fasterxml\jackson\datatype\jackson-datatype-jdk8\2.13.4\jackson-datatype-jdk8-2.13.4.jar
C
\Users\MZFAITHDREAM\.m2\repository\com\fasterxml\jackson\datatype\jackson-datatype-jsr310\2.13.4\jackson-datatype-jsr310-2.13.4.jar
C
\Users\MZFAITHDREAM\.m2\repository\com\fasterxml\jackson\module\jackson-module-parameter-names\2.13.4\jackson-module-parameter-names-2.13.4.jar
C
\Users\MZFAITHDREAM\.m2\repository\org\springframework\boot\spring-boot-starter-tomcat\2.7.4\spring-boot-starter-tomcat-2.7.4.jar
C
\Users\MZFAITHDREAM\.m2\repository\org\apache\tomcat\embed\tomcat-embed-core\9.0.65\tomcat-embed-core-9.0.65.jar
C
\Users\MZFAITHDREAM\.m2\repository\org\apache\tomcat\embed\tomcat-embed-el\9.0.65\tomcat-embed-el-9.0.65.jar
C
\Users\MZFAITHDREAM\.m2\repository\org\apache\tomcat\embed\tomcat-embed-websocket\9.0.65\tomcat-embed-websocket-9.0.65.jar
C
\Users\MZFAITHDREAM\.m2\repository\org\springframework\spring-web\5.3.23\spring-web-5.3.23.jar
C
\Users\MZFAITHDREAM\.m2\repository\org\springframework\spring-beans\5.3.23\spring-beans-5.3.23.jar
C
\Users\MZFAITHDREAM\.m2\repository\org\springframework\spring-webmvc\5.3.23\spring-webmvc-5.3.23.jar
C
\Users\MZFAITHDREAM\.m2\repository\org\springframework\spring-aop\5.3.23\spring-aop-5.3.23.jar
C
\Users\MZFAITHDREAM\.m2\repository\org\springframework\spring-context\5.3.23\spring-context-5.3.23.jar
C
\Users\MZFAITHDREAM\.m2\repository\org\springframework\spring-expression\5.3.23\spring-expression-5.3.23.jar
C
\Users\MZFAITHDREAM\.m2\repository\org\springframework\boot\spring-boot-starter-jdbc\2.7.4\spring-boot-starter-jdbc-2.7.4.jar
C
\Users\MZFAITHDREAM\.m2\repository\com\zaxxer\HikariCP\4.0.3\HikariCP-4.0.3.jar
C
\Users\MZFAITHDREAM\.m2\repository\org\springframework\spring-jdbc\5.3.23\spring-jdbc-5.3.23.jar
C
\Users\MZFAITHDREAM\.m2\repository\org\springframework\spring-tx\5.3.23\spring-tx-5.3.23.jar
C
\Users\MZFAITHDREAM\.m2\repository\mysql\mysql-connector-java\8.0.30\mysql-connector-java-8.0.30.jar
C
\Users\MZFAITHDREAM\.m2\repository\org\springframework\spring-core\5.3.23\spring-core-5.3.23.jar
C
\Users\MZFAITHDREAM\.m2\repository\org\springframework\spring-jcl\5.3.23\spring-jcl-5.3.23.jar
D
\IDEA\com.text\IntelliJ IDEA 2020.1.2\lib\idea_rt.jar

 

 

 

 

 

 

 

 

 

 

相关文章
|
3天前
|
存储 前端开发 NoSQL
【二十一】springboot整合过滤器实战
【二十一】springboot整合过滤器实战
18 0
|
3天前
|
存储 JSON Java
【JavaEEj进阶】 Spring实现留言板
【JavaEEj进阶】 Spring实现留言板
|
10月前
|
Java 调度 Spring
写项目常用的三个功能(课时二十五)
写项目常用的三个功能(课时二十五)
35 0
|
7月前
|
druid Java 关系型数据库
Spring Boot 学习研究笔记(二十一) Springboot中druid数据库连接池使用
Spring Boot 学习研究笔记(二十一) Springboot中druid数据库连接池使用
161 0
|
10月前
|
Java Maven Spring
快速搭建一个spring入门案例及整合日志(上)
快速搭建一个spring入门案例及整合日志
|
10月前
|
Java 数据库连接 数据库
SpringData(课时二十)
SpringData(课时二十)
47 1
|
10月前
|
前端开发 Java Spring
SpringBoot——MVC自动配置原理《课时十三》
SpringBoot——MVC自动配置原理《课时十三》
68 0
|
10月前
|
Java Spring
SpringBoot启动原理——SpringApplication《课时十一》
SpringBoot启动原理——SpringApplication《课时十一》
71 0
|
10月前
|
存储 Java 数据库
SpringIoc方案二不使用配置文件开发(课时十二)
SpringIoc方案二不使用配置文件开发(课时十二)
57 0
|
Java 程序员 数据格式
【Spring原理探索】从零开始教你SpringEL表达式使用和功能分析讲解指南(上篇)
【Spring原理探索】从零开始教你SpringEL表达式使用和功能分析讲解指南(上篇)
568 0
【Spring原理探索】从零开始教你SpringEL表达式使用和功能分析讲解指南(上篇)