一个少妇满足三个老头在线观看,锕锕锕锕锕锕锕好痛视频,亚洲人成网站在线播放2019

<center id="pt2l2"></center>
<tr id="pt2l2"></tr>
  • <big id="pt2l2"></big>

        SpringBoot整合阿里?Druid?數據源的實例詳解

        前言:今年是我的第二個 1024 了 ,和我一起大聲說出來,技術宅改變世界?。?!

        本節主要介紹的是:SpringBoot 整合阿里 Druid 數據源手動配置方法

        1. 在容器中注冊 DruidDataSource 數據源。

        編寫數據源配置類 MyDataSourseConfig.class,并在容器中注冊 DruidDataSource 數據源。

        代碼示例如下:

        @Configuration
        public class MyDataSourseConfig {
            @Bean
            @ConfigurationProperties("spring.datasource") // 屬性與配置文件綁定
            public DataSource dataSource(){
                return new DruidDataSource();
            }
        }

        2. Druid 數據源各種屬性配置方法

        方法一(不推薦): 直接在配置類中通過為自定義的 DruidDataSource 組件 通過 set 設置各種屬性,來實現數據源的配置。

        代碼示例如下:

        @Configuration
        public class MyDataSourseConfig {
            @Bean
            public DataSource dataSource(){
                
                DruidDataSource druidDataSource = new DruidDataSource();
                druidDataSource.setUrl("jdbc:mysql://localhost:3306/practice"); // 設置數據源連接 url
                // ..... 設置其他屬性 .....
                return druidDataSource;
            }
        }

        這種方法當修養屬性值時,需要大量修改源代碼,因此不推薦。

        方法二(推薦):通過 @ConfigurationProperties(“spring.datasource”) 注釋將組件與配置文件中的 spring.datasource 項綁定,這樣在修改自定義數據源屬性時,直接在 application.yaml 文件的 spring.datasource 配置項下修改即可。代碼示例如下:

        spring:
          datasource:
            url: jdbc:mysql://localhost:3306/practice
            username: root
            password: 5201314love
            driver-class-name: com.mysql.jdbc.Driver

        可通過自定義數據源組件注冊到容器中修改默認數據源原理:

        DataSourceAutoConfiguration.class 數據源自動配置類中,有如下設置。其表示容器中沒有數據源,才自動配置 Hikari 數據源。若有數據源則使用容器中的數據源。

        3. 開啟Druid的內置監控頁面

        在容器中放一 Servlet ,具體操作方法為在 Druid數據源 配置類中注冊一ServletRegistrationBean 組件到容器,ServletRegistrationBean 的Servlet 類型為 StatViewServlet 。代碼示例如下:

        注意點:訪問的 url 為 "/druid/*" ,是一個 * 而不是雙 **

        @Configuration
        public class MyDataSourseConfig {
            @Bean
            @ConfigurationProperties("spring.datasource")
            public DataSource dataSource(){
                return new DruidDataSource();
            }
        
            // 配置 druid 監控頁功能 —— 在容器中放一 Servlet
            @Bean
            public ServletRegistrationBean statViewServlet(){
                StatViewServlet statViewServlet = new StatViewServlet();
                ServletRegistrationBean<StatViewServlet> registrationBean = new ServletRegistrationBean<StatViewServlet>(statViewServlet, "/druid/*");
                return registrationBean;
            }
        }

        4. 打開 Druid 監控統計功能

        只是開啟了監控頁功能并不能讓我們使用 Druid 為我們提供的 SQL 監控等功能。還需要為數據源配置 StatFilter,具體方法是通過 setFilters(“stat”) 方法配置。代碼如下:

            @Bean
            @ConfigurationProperties("spring.datasource")
            public DataSource dataSource() throws SQLException {
                DruidDataSource druidDataSource = new DruidDataSource();
                // 加入監控功能 —— setFilters("stat");
                druidDataSource.setFilters("stat");
                return druidDataSource;
            }

        這時我們再去訪問數據庫,可以發現SQL監控功能可用了

        5. 配置Web和Spring關聯監控

        在容器中注冊一 WebStatFilter ,通過 setUrlPatterns(Arrays.asList(“/*”) 設置監控的請求為 /** 請求。具體代碼實現如下:

            // 采集 web-jdbc 關聯監控的數據
            @Bean
            public FilterRegistrationBean webstatFilter(){
                WebStatFilter webStatFilter = new WebStatFilter();
        
                FilterRegistrationBean<WebStatFilter> registrationBean = new FilterRegistrationBean<>(webStatFilter);
                registrationBean.setUrlPatterns(Arrays.asList("/*"));
                registrationBean.addInitParameter("exclusions", "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*");
                return registrationBean;
            }

        6. 配置防火墻:

        在數據源中通過 setFilter(“wall”) 加入 防火墻配置 (setFilter 多個值用逗號隔開)

                // 加入監控功能
                druidDataSource.setFilters("stat, wall");

        小優化:
        所有通過 setXXXX() 設置數據源的,都可以在配置文件中寫,因為 druidDataSource 已經綁定了 spring.datasource 配置項

        例如:

        druidDataSource.setFilters("stat, wall");

        可優化為:

        spring:
          datasource:
            # ... 此處省略一堆其他配置....
            filters: stat,wall

        7. 給監控頁加入賬號密碼

        在 ServletRegistrationBean 中通過 addInitParameter 加入賬號密碼的設置

            // 配置 druid 監控頁功能 —— 在容器中放一 Servlet
            @Bean
            public ServletRegistrationBean statViewServlet(){
                StatViewServlet statViewServlet = new StatViewServlet();
                ServletRegistrationBean<StatViewServlet> registrationBean = new ServletRegistrationBean<StatViewServlet>(statViewServlet, "/druid/*");
                registrationBean.addInitParameter("loginUsername", "wanqing");
                registrationBean.addInitParameter("loginPassword", "520131");
                return registrationBean;
            }

        到此這篇關于SpringBoot整合阿里 Druid 數據源的文章就介紹到這了,更多相關SpringBoot整合Druid 數據源內容請搜索以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持!

        若文章對您有幫助,幫忙點個贊!

        0
        0
        發布時間 2022-11-14 06:07:54
        0 條回復(回復會通過微信通知作者)
        點擊加載更多評論
        登錄 后再進行評論
        (微信掃碼即可登錄,無需注冊)
        一个少妇满足三个老头在线观看,锕锕锕锕锕锕锕好痛视频,亚洲人成网站在线播放2019