<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                [TOC] # spring的配置 ~~~ # 數據庫訪問配置 # 主數據源,默認的 spring.datasource.type=com.alibaba.druid.pool.DruidDataSource spring.datasource.driver-class-name=com.mysql.jdbc.Driver spring.datasource.url=jdbc:mysql://localhost:3306/test spring.datasource.username=root spring.datasource.password=123456 # 下面為連接池的補充設置,應用到上面所有數據源中 # 初始化大小,最小,最大 spring.datasource.initialSize=5 spring.datasource.minIdle=5 spring.datasource.maxActive=20 # 配置獲取連接等待超時的時間 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=false spring.datasource.testOnReturn=false # 打開PSCache,并且指定每個連接上PSCache的大小 spring.datasource.poolPreparedStatements=true spring.datasource.maxPoolPreparedStatementPerConnectionSize=20 # 配置監控統計攔截的filters,去掉后監控界面sql無法統計,'wall'用于防火墻 spring.datasource.filters=stat,wall,log4j # 通過connectProperties屬性來打開mergeSql功能;慢SQL記錄 spring.datasource.connectionProperties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000 # 合并多個DruidDataSource的監控數據 #spring.datasource.useGlobalDataSourceStat=true ~~~ # driuid配置 ~~~ ## https://github.com/alibaba/druid/wiki/DruidDataSource%E9%85%8D%E7%BD%AE%E5%B1%9E%E6%80%A7%E5%88%97%E8%A1%A8 # 數據庫配置 spring.datasource.type=com.alibaba.druid.pool.DruidDataSource spring.datasource.druid.url=jdbc:mysql://localhost:3306/app?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=GMT spring.datasource.druid.username=root spring.datasource.druid.password=root #########################連接池配置 # 初始化大小,最小,最大 spring.datasource.druid.initial-size=10 spring.datasource.druid.min-idle=10 spring.datasource.druid.max-active=100 # 配置獲取連接等待超時的時間,單位毫秒。配置了maxWait之后,缺省啟用公平鎖,并發效率會有所下降,如果需要可以通過配置useUnfairLock屬性為true使用非公平鎖。 spring.datasource.druid.max-wait=6000 # 配置間隔多久才進行一次檢測,檢測需要關閉的空閑連接,單位是毫秒 spring.datasource.druid.time-between-eviction-runs-millis=30000 spring.datasource.druid.validation-query=SELECT 1 FROM DUAL #申請連接時執行validationQuery檢測連接是否有效,做了這個配置會降低性能,默認值為true spring.datasource.druid.test-on-borrow=false #歸還連接時執行validationQuery檢測連接是否有效,做了這個配置會降低性能默認值為false spring.datasource.druid.test-on-return=false #建議配置為true,不影響性能,并且保證安全性。申請連接的時候檢測,如果空閑時間大于timeBetweenEvictionRunsMillis,執行validationQuery檢測連接是否有效。默認值為false spring.datasource.druid.test-while-idle=true # 打開PSCache,并且指定每個連接上PSCache的大小 spring.datasource.druid.pool-prepared-statements=true #是否緩存preparedStatement,也就是PSCache。PSCache對支持游標的數據庫性能提升巨大,比如說oracle。在mysql下建議關閉。默認值為false spring.datasource.druid.max-pool-prepared-statement-per-connection-size=20 # 配置監控統計攔截的filters,去掉后監控界面sql無法統計,'wall'用于防火墻 spring.datasource.druid.filters=stat,wall,slf4j,default # 通過connectProperties屬性來打開mergeSql功能;慢SQL記錄 spring.datasource.druid.connection-properties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=3000 #spring.datasource.druid.filter.stat.enable=true #spring.datasource.druid.filter.stat.log-slow-sql=true #spring.datasource.druid.filter.stat.merge-sql=true #spring.datasource.druid.filter.stat.slow-sql-millis=3000 spring.datasource.druid.filter.slf4j.enabled=true spring.datasource.druid.filter.slf4j.statement-create-after-log-enabled=false spring.datasource.druid.filter.slf4j.statement-log-enabled=false spring.datasource.druid.filter.slf4j.statement-executable-sql-log-enable=true spring.datasource.druid.filter.slf4j.statement-log-error-enabled=true spring.datasource.druid.filter.slf4j.result-set-log-enabled=true #物理連接初始化的時候執行的sql #spring.datasource.druid.connection-init-sqls= # 合并多個DruidDataSource的監控數據 #spring.datasource.druid.use-global-data-source-stat=true ~~~ # DataSource配置 ~~~ import com.alibaba.druid.pool.DruidDataSource; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import javax.sql.DataSource; @Configuration public class DruidConfig { @Bean @ConfigurationProperties(prefix = "spring.datasource.druid") public DataSource getDataSource() { return new DruidDataSource(); } } ~~~ # druid過濾器 ~~~ import com.alibaba.druid.support.http.WebStatFilter; import javax.servlet.annotation.WebFilter; import javax.servlet.annotation.WebInitParam; /** * druid過濾器. */ @WebFilter(filterName="druidWebStatFilter", urlPatterns="/*", initParams={ @WebInitParam(name="exclusions",value="*.js,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico,/druid/*")//忽略資源 } ) public class DruidStatFilter extends WebStatFilter { } ~~~ # druid數據源狀態監控 ~~~ import com.alibaba.druid.support.http.StatViewServlet; import javax.servlet.annotation.WebInitParam; import javax.servlet.annotation.WebServlet; /** * druid數據源狀態監控. */ @WebServlet(urlPatterns="/druid/*", initParams={ @WebInitParam(name="allow",value=""),// IP白名單(沒有配置或者為空,則允許所有訪問) @WebInitParam(name="deny",value=""),// IP黑名單 (存在共同時,deny優先于allow) @WebInitParam(name="loginUsername",value="root"),// 用戶名 @WebInitParam(name="loginPassword",value="root"),// 密碼 @WebInitParam(name="resetEnable",value="true")// 禁用HTML頁面上的“Reset All”功能 } ) public class DruidStatViewServlet extends StatViewServlet { private static final long serialVersionUID = 1L; } ~~~ # 啟動時配置 這邊要有`@ServletComponentScan` ~~~ @SpringBootApplication @ServletComponentScan public class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } } ~~~ # 密碼加密 配置實現 Druid對密碼的加密解密是自動實現的。 1. 對用戶名密碼加密 ~~~ java -cp D:/druid-1.0.27.jar com.alibaba.druid.filter.config.ConfigTools root java -cp D:/druid-1.0.27.jar com.alibaba.druid.filter.config.ConfigTools 123456 ~~~ 執行完成以后會分別生成加密的用戶密碼以及對應的公鑰和私鑰。 ![](https://img.kancloud.cn/b9/5e/b95e0b5dc23dd157312741a56ec787fb_1286x406.png) **重寫DruidDataSource** ~~~ import com.alibaba.druid.filter.config.ConfigTools; import com.alibaba.druid.pool.DruidDataSource; /** * 數據庫用戶名加密 */ public class DruidConnectionProvider extends DruidDataSource { private static final long serialVersionUID = 1377390212442554779L; private static String publicKey = "MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAKfkK2hgtAKuV3uuU1wjo0kyuCFcf4QXxF4+zFUYWf4a5s6CJneKGzwE+onpUL3tsa3SB1Q1HtIlykXO+g7hlkECAwEAAQ=="; @Override public void setUsername(String username) { try { username = ConfigTools.decrypt(publicKey,username); } catch (Exception e) { e.printStackTrace(); } super.setUsername(username); } } ~~~ **配置dataSource** ~~~ <property name="connectionProperties" value="config.decrypt=true;config.decrypt.key=${publickey}" /> ~~~ **配置persistence-mysql.properties文件** ~~~ mysql.driverclass=com.mysql.jdbc.Driver mysql.jdbcurl=jdbc:mysql://192.168.1.191:3306/itstyle?characterEncoding=UTF-8 mysql.user=iMNLTD842UfibiwKGgU4wWo8Gmf0wjb8HFkXmt1+S0XZ/3MdKhZx+TiApcXCCsIJGdrSr1a3vy6ugfLuHISZoQ== mysql.password=ZuLa1c/7gIzx8ZBzJy9PqfOlXFBdpebcNxMTblktk907JO9HDU/cMxq3tM7kKDsh+UBBYeALM/J+/38kSFU/9w== publickey = MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAIOP8F1IDaIAqfzWMEccNxodnSXT0Z0ya3KCXKYxgvLz0WrEq1z7ilTfrOjfC6/HvPUIWjP6RZVIy5G2Rzn9W+cCAwEAAQ== ~~~ # 連接泄露 對性能影響比較大 [https://github.com/alibaba/druid/wiki/%E8%BF%9E%E6%8E%A5%E6%B3%84%E6%BC%8F%E7%9B%91%E6%B5%8B](https://github.com/alibaba/druid/wiki/%E8%BF%9E%E6%8E%A5%E6%B3%84%E6%BC%8F%E7%9B%91%E6%B5%8B) # 頁面 點擊SQL監控菜單:可以查看后臺程序執行的sql語句所耗的時間,時間單位是毫秒。 ![](https://img.kancloud.cn/b2/9c/b29c8d6c7ef8285851d475e530add4cd_959x80.png) 時間分布顯示\[0,1,0,0,0,0,0,0\]是什么意思? 第一個0代表這個SQL有0次執行耗時0-1毫秒 第二個1代表這個SQL有1次執行耗時1-10毫秒,也就是我們這里唯一的一次 第三個0代表這個SQL有0次執行耗時10-100毫秒 以此類推,越右邊的數字代表執行SQL時間越長的次數,如果靠右邊的數字很大,就必須關注這條SQL了 ~~~ #spring監控,hello.controller是我的控制層包名,也可以是服務層,用逗號分隔多個監控內容 spring.datasource.druid.aop-patterns=hello.controller.* ~~~ spring監控:和SQL監控類似,我配置的是監控控制層,所以顯示的是控制層執行的時間分布 數據源:顯示當前連接池的參數配置,頁面右上角有中英文切換,可以對照著查看說明 SQL防火墻:防御SQl攻擊,攔截SQL請求
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看