最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

druid以及監(jiān)控臺(tái)使用及配置過(guò)程

 更新時(shí)間:2025年11月03日 08:39:04   作者:0和1搭建網(wǎng)絡(luò)世界  
這篇文章主要介紹了如何在Spring?Boot項(xiàng)目中集成和配置Druid數(shù)據(jù)源,包括添加依賴、配置數(shù)據(jù)源、監(jiān)控臺(tái)配置以及Druid常用啟動(dòng)器的使用

一、druid

1.添加依賴

引入依賴

<dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.2.8</version>
        </dependency>
        <!-- jdbc -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
        <!-- mybatis -->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>1.3.1</version>
        </dependency>
        <!-- mysql驅(qū)動(dòng) -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>

2.配置

  • 配置yml文件
spring:
  datasource:
    username: root
    password: root
    url: jdbc:mysql://localhost:3306/mybatis?characterEncoding=utf8&useSSL=false&serverTimezone=UTC&
    driver-class-name: com.mysql.cj.jdbc.Driver
    type: com.alibaba.druid.pool.DruidDataSource

配置數(shù)據(jù)源的三種方式

1.在配置類中創(chuàng)建一個(gè)數(shù)據(jù)源

@Value("spring.datasource.url")
    private String url;
    @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.type")
    private String type;
    
    @Bean
    public DataSource dataSource(){
        DruidDataSource dataSource = new DruidDataSource();
        dataSource.setUrl(url);
        dataSource.setUsername(userName);
        dataSource.setPassword(password);
        dataSource.setDriverClassName(driverClassName);
        dataSource.setDbType(type);
        return dataSource;
    }

2.使用注解ConfigurationProperties

@Bean
    @ConfigurationProperties(prefix = "spring.datasource")
    public DataSource dataSource(){
        return new DruidDataSource();
    }

3.使用DataSourceProperties構(gòu)造者設(shè)計(jì)模式

	@Bean
    public DataSource dataSource(DataSourceProperties properties){
       return properties.initializeDataSourceBuilder().build();
    }

二、監(jiān)控臺(tái)配置

1.創(chuàng)建配置類

/**
     * 監(jiān)控臺(tái)的servlet
     */
    @Bean
    public ServletRegistrationBean statViewServlet() {
        ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean();
        servletRegistrationBean.setServlet(new StatViewServlet());
        servletRegistrationBean.addUrlMappings("/druid/*")
        // 添加IP白名單
        servletRegistrationBean.addInitParameter("allow", "127.0.0.1");
        // 添加IP黑名單,當(dāng)白名單和黑名單重復(fù)時(shí),黑名單優(yōu)先級(jí)更高
        // servletRegistrationBean.addInitParameter("deny", "127.0.0.1");
        // 添加控制臺(tái)管理用戶
        servletRegistrationBean.addInitParameter("loginUsername", "admin");
        servletRegistrationBean.addInitParameter("loginPassword", "123456");
        // 是否能夠重置數(shù)據(jù)
        servletRegistrationBean.addInitParameter("resetEnable", "false");
        return servletRegistrationBean;
    }

    /**
     * 配置服務(wù)過(guò)濾器 :監(jiān)控哪些訪問(wèn)
     * @return 返回過(guò)濾器配置對(duì)象
     */
    @Bean
    public FilterRegistrationBean statFilter() {
        FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean();
        filterRegistrationBean.setFilter(new WebStatFilter());
        // 添加過(guò)濾規(guī)則
        filterRegistrationBean.addUrlPatterns("/*");
        // 忽略過(guò)濾格式
        filterRegistrationBean.addInitParameter("exclusions", "*.js,*.gif,*.jpg,*.jpg,*.css,*.ico,/druid/*,");
        return filterRegistrationBean;
    }

本地訪問(wèn)http://localhost:8080/druid

三、Druid常用啟動(dòng)器

1.添加依賴

添加常用啟動(dòng)器依賴

<dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>1.2.8</version>
        </dependency>

2.配置

依賴添加完成后,不需要?jiǎng)?chuàng)建數(shù)據(jù)源,可直接使用,但是訪問(wèn)Druid的控制臺(tái),卻無(wú)法訪問(wèn)。

大致查看源碼:

//創(chuàng)建一個(gè)DruidDataSourceWrapper數(shù)據(jù)源
@ConditionalOnMissingBean
    public DataSource dataSource() {
        LOGGER.info("Init DruidDataSource");
        return new DruidDataSourceWrapper();
    }
@ConfigurationProperties("spring.datasource.druid")
public class DruidDataSourceWrapper extends DruidDataSource implements InitializingBean {
    @Autowired
    private DataSourceProperties basicProperties;

    public DruidDataSourceWrapper() {
    }
	//重寫(xiě)InitializingBean方法,springboot啟動(dòng)時(shí),會(huì)自動(dòng)加載 
    public void afterPropertiesSet() throws Exception {
        if(super.getUsername() == null) {
        	//從對(duì)象basicProperties中拿設(shè)置的用戶名
            super.setUsername(this.basicProperties.determineUsername());
        }

        if(super.getPassword() == null) {
        	//從對(duì)象basicProperties中拿設(shè)置的用戶名
            super.setPassword(this.basicProperties.determinePassword());
        }

        if(super.getUrl() == null) {
            super.setUrl(this.basicProperties.determineUrl());
        }

        if(super.getDriverClassName() == null) {
            super.setDriverClassName(this.basicProperties.getDriverClassName());
        }

    }
}
//查看basicProperties
@ConfigurationProperties(prefix = "spring.datasource")
public class DataSourceProperties implements BeanClassLoaderAware, InitializingBean {

	private ClassLoader classLoader;

	private String name;

	private boolean generateUniqueName;

	private Class<? extends DataSource> type;

	private String driverClassName;
	....
}

由此看出,在yml文件數(shù)據(jù)源的配置:spring.datasource.url等等

我們?cè)诨仡^看上面的截圖中:DruidDataSourceAutoConfigure類上@Import注解中引入DruidStatViewServletConfiguration.class,我們可以點(diǎn)開(kāi)看看:

@ConditionalOnWebApplication
@ConditionalOnProperty(
    name = {"spring.datasource.druid.stat-view-servlet.enabled"},
    havingValue = "true"
)
public class DruidStatViewServletConfiguration {
    private static final String DEFAULT_ALLOW_IP = "127.0.0.1";

    public DruidStatViewServletConfiguration() {
    }

    @Bean
    public ServletRegistrationBean statViewServletRegistrationBean(DruidStatProperties properties) {
    	//獲取Druid監(jiān)控臺(tái)配置信息
        StatViewServlet config = properties.getStatViewServlet();
        ServletRegistrationBean registrationBean = new ServletRegistrationBean();
        registrationBean.setServlet(new com.alibaba.druid.support.http.StatViewServlet());
        registrationBean.addUrlMappings(new String[]{config.getUrlPattern() != null?config.getUrlPattern():"/druid/*"});
        if(config.getAllow() != null) {
            registrationBean.addInitParameter("allow", config.getAllow());
        } else {
            registrationBean.addInitParameter("allow", "127.0.0.1");
        }

        if(config.getDeny() != null) {
            registrationBean.addInitParameter("deny", config.getDeny());
        }

        if(config.getLoginUsername() != null) {
            registrationBean.addInitParameter("loginUsername", config.getLoginUsername());
        }

        if(config.getLoginPassword() != null) {
            registrationBean.addInitParameter("loginPassword", config.getLoginPassword());
        }

        if(config.getResetEnable() != null) {
            registrationBean.addInitParameter("resetEnable", config.getResetEnable());
        }

        return registrationBean;
    }
}

ConditionalOnProperty注解做了限制,由此可看出yml需要配置spring.datasource.druid.stat-view-servlet.enabled屬性,且為true。其他的用戶名、密碼如何配置呢

配置信息都是從StatViewServlet類中獲取,查看一下代碼

@ConfigurationProperties("spring.datasource.druid")
public class DruidStatProperties {
    private String[] aopPatterns;
    private DruidStatProperties.StatViewServlet statViewServlet = new DruidStatProperties.StatViewServlet();
    public static class StatViewServlet {
        private boolean enabled;
        private String urlPattern;
        private String allow;
        private String deny;
        private String loginUsername;
        private String loginPassword;
        private String resetEnable;

 	}
 }      

由此看出:

設(shè)置賬號(hào)的spring.datasource.druid.StatViewServlet.loginUsername

yml的格式spring.datasource.druid.stat-view-servlet.login-username

其他配置同理

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • JAVA時(shí)間日期處理類實(shí)例

    JAVA時(shí)間日期處理類實(shí)例

    這篇文章主要介紹了JAVA時(shí)間日期處理類,可實(shí)現(xiàn)遍歷兩個(gè)日期之間的每一天的功能,涉及針對(duì)日期的常見(jiàn)操作技巧,需要的朋友可以參考下
    2015-04-04
  • 關(guān)于java命令的本質(zhì)邏輯揭秘過(guò)程

    關(guān)于java命令的本質(zhì)邏輯揭秘過(guò)程

    Java是通過(guò)java虛擬機(jī)來(lái)裝載和執(zhí)行編譯文件(class文件)的,java虛擬機(jī)通過(guò)命令java  option 來(lái)啟動(dòng),這篇文章主要給大家介紹了關(guān)于java命令的本質(zhì)邏輯揭秘的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2021-05-05
  • jpanel設(shè)置背景圖片的二個(gè)小例子

    jpanel設(shè)置背景圖片的二個(gè)小例子

    這篇文章主要介紹了jpanel設(shè)置背景圖片的二個(gè)小例子,實(shí)現(xiàn)了動(dòng)態(tài)加載圖片做背景的方法,需要的朋友可以參考下
    2014-03-03
  • Java實(shí)現(xiàn)把文件壓縮成zip文件的示例代碼

    Java實(shí)現(xiàn)把文件壓縮成zip文件的示例代碼

    這篇文章主要為大家介紹了如何通過(guò)Java語(yǔ)言實(shí)現(xiàn)將文件壓縮成zip文件,本文中示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-02-02
  • SpringBoot集成redis的示例代碼

    SpringBoot集成redis的示例代碼

    redis想必小伙伴們即使沒(méi)有用過(guò),也是經(jīng)常聽(tīng)到的,在工作中,redis用到的頻率非常高,本文主要介紹了SpringBoot集成redis,感興趣的可以參考一下
    2021-10-10
  • 深入理解Java三大特性中的多態(tài)

    深入理解Java三大特性中的多態(tài)

    多態(tài)性是對(duì)象多種表現(xiàn)形式的體現(xiàn)。在面向?qū)ο笾?,最常?jiàn)的多態(tài)發(fā)生在使用父類的引用來(lái)引用子類的對(duì)象。下面這篇文章主要給大家深入的介紹了Java三大特性中多態(tài)的相關(guān)資料,有需要的朋友可以參考借鑒,下面來(lái)一起看看吧。
    2017-01-01
  • Springboot整合Shiro實(shí)現(xiàn)登錄與權(quán)限校驗(yàn)詳細(xì)解讀

    Springboot整合Shiro實(shí)現(xiàn)登錄與權(quán)限校驗(yàn)詳細(xì)解讀

    本文給大家介紹Springboot整合Shiro的基本使用,Apache?Shiro是Java的一個(gè)安全框架,Shiro本身無(wú)法知道所持有令牌的用戶是否合法,我們將整合Shiro實(shí)現(xiàn)登錄與權(quán)限的驗(yàn)證
    2022-04-04
  • 分析HashMap 的 JDK 源碼

    分析HashMap 的 JDK 源碼

    這篇文章主要分析了HashMap 的 JDK 源碼,幫助大家更好的理解和學(xué)習(xí)Java,感興趣的朋友可以了解下
    2020-10-10
  • 掌握SpringMVC中@InitBinder的實(shí)際應(yīng)用

    掌握SpringMVC中@InitBinder的實(shí)際應(yīng)用

    這篇文章主要介紹了掌握SpringMVC中@InitBinder的實(shí)際應(yīng)用,@InitBinder是Spring MVC框架中的一個(gè)注解,用于自定義數(shù)據(jù)綁定的方法,通過(guò)在控制器中使用@InitBinder注解,可以將特定的數(shù)據(jù)綁定邏輯應(yīng)用于請(qǐng)求參數(shù)的處理過(guò)程中,需要的朋友可以參考下
    2023-10-10
  • Java實(shí)現(xiàn)FIFO、LRU、LFU、OPT頁(yè)面置換算法

    Java實(shí)現(xiàn)FIFO、LRU、LFU、OPT頁(yè)面置換算法

    本文主要介紹了Java實(shí)現(xiàn)FIFO、LRU、LFU、OPT頁(yè)面置換算法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02

最新評(píng)論

宜城市| 道真| 孙吴县| 东乡县| 武宣县| 澄城县| 万源市| 高密市| 无为县| 綦江县| 阜城县| 平利县| 区。| 突泉县| 横山县| 南投市| 呼和浩特市| 措美县| 平山县| 兴隆县| 衡南县| 荣昌县| 山东| 崇义县| 三门峡市| 霸州市| 嘉义市| 漳浦县| 达州市| 合江县| 济阳县| 娄底市| 辽中县| 海淀区| 湘潭市| 通海县| 沙河市| 二连浩特市| 湛江市| 五河县| 赤峰市|