当前位置: 首页 > news >正文

甘肃酒泉建设银行网站加强企业网站建设作用

甘肃酒泉建设银行网站,加强企业网站建设作用,做信息网站能挣钱吗,中国企业资讯网在项目中#xff0c;数据库连接池基本是必不可少的组件。在目前数据库连接池的选型中#xff0c;主要是 Druid #xff0c;为监控而生的数据库连接池。HikariCP #xff0c;号称性能最好的数据库连接池。 在Spring Boot 2.X 版本#xff0c;默认采用 HikariCP 连接池。而…在项目中数据库连接池基本是必不可少的组件。在目前数据库连接池的选型中主要是 Druid 为监控而生的数据库连接池。HikariCP 号称性能最好的数据库连接池。 在Spring Boot 2.X 版本默认采用 HikariCP 连接池。而阿里大规模采用 Druid 。下面介绍在SpringBoot中使用HikariCP、Druid连接池。 1、HikariCP数据库连接池 1.1 HikariCP单数据源配置 1.1.1 pom文件 ?xml version1.0 encodingUTF-8? project xmlnshttp://maven.apache.org/POM/4.0.0xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdparentgroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-parent/artifactIdversion2.1.3.RELEASE/versionrelativePath/ !-- lookup parent from repository --/parentmodelVersion4.0.0/modelVersionartifactIdHikariCP-Boot/artifactIddependencies!-- 实现对数据库连接池的自动化配置 --dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-jdbc/artifactId/dependencydependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdversion5.1.48/version/dependency!-- 写单元测试 --dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdscopetest/scope/dependency/dependencies/project无需主动引入 HikariCP 的依赖。因为在 Spring Boot 2.X 中spring-boot-starter-jdbc 默认引入 com.zaxxer.HikariCP 依赖。 1.1.2 yml配置 server:port: 7890spring:# datasource 数据源配置内容对应 DataSourceProperties 配置属性类datasource:url: jdbc:mysql://127.0.0.1:3306/test?useSSLfalseuseUnicodetruecharacterEncodingUTF-8driver-class-name: com.mysql.jdbc.Driverusername: root # 数据库账号password: root # 数据库密码# HikariCP 自定义配置对应 HikariConfig 配置属性类hikari:minimum-idle: 10 # 池中维护的最小空闲连接数默认为 10 个。maximum-pool-size: 10 # 池中最大连接数包括闲置和使用中的连接默认为 10 个。在 spring.datasource 配置项下我们可以添加数据源的通用配置。在 spring.datasource.hikari 配置项下我们可以添加 HikariCP 连接池的自定义配置。然后 DataSourceConfiguration.Hikari会自动化配置 HikariCP 连接池。 1.1.3 主启动类 package com.yyds;import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.CommandLineRunner; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;import javax.sql.DataSource; import java.sql.Connection; import java.sql.SQLException;SpringBootApplication public class ApplicationBak implements CommandLineRunner {private Logger logger LoggerFactory.getLogger(ApplicationBak.class);Autowiredprivate DataSource dataSource;public static void main(String[] args) {// 启动 Spring Boot 应用SpringApplication.run(ApplicationBak.class, args);}Overridepublic void run(String... args) {try (Connection conn dataSource.getConnection()) {// 这里可以做点什么logger.info([run][获得连接{}], conn);} catch (SQLException e) {throw new RuntimeException(e);}}}通过实现 CommandLineRunner接口应用启动完成后回调 #run(String... args) 方法输出 Connection 信息。 1.2 HikariCP多数据源配置 1.2.1 pom文件 如1.2.1所示。 1.2.2 yml配置 spring:# datasource 数据源配置内容datasource:# 订单数据源配置orders:url: jdbc:mysql://127.0.0.1:3306/test_orders?useSSLfalseuseUnicodetruecharacterEncodingUTF-8driver-class-name: com.mysql.jdbc.Driverusername: rootpassword: root# HikariCP 自定义配置对应 HikariConfig 配置属性类hikari:minimum-idle: 20 # 池中维护的最小空闲连接数默认为 10 个。maximum-pool-size: 20 # 池中最大连接数包括闲置和使用中的连接默认为 10 个。# 用户数据源配置users:url: jdbc:mysql://127.0.0.1:3306/test_users?useSSLfalseuseUnicodetruecharacterEncodingUTF-8driver-class-name: com.mysql.jdbc.Driverusername: rootpassword: root# HikariCP 自定义配置对应 HikariConfig 配置属性类hikari:minimum-idle: 15 # 池中维护的最小空闲连接数默认为 10 个。maximum-pool-size: 15 # 池中最大连接数包括闲置和使用中的连接默认为 10 个。1.2.3 主启动类 package com.yyds;import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.boot.CommandLineRunner; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;import javax.annotation.Resource; import javax.sql.DataSource; import java.sql.Connection; import java.sql.SQLException;SpringBootApplication public class Application implements CommandLineRunner {private Logger logger LoggerFactory.getLogger(Application.class);Resource(name ordersDataSource)private DataSource ordersDataSource;Resource(name usersDataSource)private DataSource usersDataSource;public static void main(String[] args) {// 启动 Spring Boot 应用SpringApplication.run(Application.class, args);}Overridepublic void run(String... args) {// orders 数据源try (Connection conn ordersDataSource.getConnection()) {// 这里可以做点什么logger.info([run][ordersDataSource 获得连接{}], conn);} catch (SQLException e) {throw new RuntimeException(e);}// users 数据源try (Connection conn usersDataSource.getConnection()) {// 这里可以做点什么logger.info([run][usersDataSource 获得连接{}], conn);} catch (SQLException e) {throw new RuntimeException(e);}}} 1.2.4 配置类 package com.yyds.config;import com.zaxxer.hikari.HikariDataSource; import org.springframework.boot.autoconfigure.jdbc.DataSourceProperties; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Primary; import org.springframework.util.StringUtils;import javax.sql.DataSource;Configuration public class DataSourceConfig {/*** 创建 orders 数据源的配置对象*/PrimaryBean(name ordersDataSourceProperties)ConfigurationProperties(prefix spring.datasource.orders) // 读取 spring.datasource.orders 配置到 DataSourceProperties 对象public DataSourceProperties ordersDataSourceProperties() {return new DataSourceProperties();}/*** 创建 orders 数据源*/Bean(name ordersDataSource)ConfigurationProperties(prefix spring.datasource.orders.hikari) // 读取 spring.datasource.orders 配置到 HikariDataSource 对象public DataSource ordersDataSource() {// 1.1 获得 DataSourceProperties 对象DataSourceProperties properties this.ordersDataSourceProperties();// 1.2 创建 HikariDataSource 对象return createHikariDataSource(properties);}/*** 创建 users 数据源的配置对象*/Bean(name usersDataSourceProperties)ConfigurationProperties(prefix spring.datasource.users) // 读取 spring.datasource.users 配置到 DataSourceProperties 对象public DataSourceProperties usersDataSourceProperties() {return new DataSourceProperties();}/*** 创建 users 数据源*/Bean(name usersDataSource)ConfigurationProperties(prefix spring.datasource.users.hikari)public DataSource usersDataSource() {// 获得 DataSourceProperties 对象DataSourceProperties properties this.usersDataSourceProperties();// 创建 HikariDataSource 对象return createHikariDataSource(properties);}private static HikariDataSource createHikariDataSource(DataSourceProperties properties) {// 创建 HikariDataSource 对象HikariDataSource dataSource properties.initializeDataSourceBuilder().type(HikariDataSource.class).build();// 设置线程池名if (StringUtils.hasText(properties.getName())) {dataSource.setPoolName(properties.getName());}return dataSource;}}ordersDataSourceProperties()方法创建orders数据源的DataSourceProperties配置对象。 Primary注解保证项目中有一个主的DataSourceProperties Bean。 加上 Bean(name “ordersDataSourceProperties”)注解会创建一个名字位ordersDataSourceProperties的DataSourceProperties Bean ConfigurationProperties(prefix “spring.datasource.orders”)注解会将spring.datasource.orders配置项逐个属性赋值给DataSourceProperties Bean ordersDataSource()方法创建orders数据源。 DataSourceProperties properties this.ordersDataSourceProperties();获取orders数据源的DataSourceProperties配置对象 createHikariDataSource()方法创建HikariDataSource对象这样spring.datasource.orders 配置项逐个属性赋值给 HikariDataSource Bean 。 搭配上 Bean(name ordersDataSource) 注解会创建一个名字为 ordersDataSource 的 HikariDataSource Bean 。 ConfigurationProperties(prefix spring.datasource.orders.hikari) 注解会将 HikariCP 的 spring.datasource.orders.hikari 自定义配置项逐个属性赋值给 HikariDataSource Bean 。 2、Druid数据库连接池 2.1 Druid单数据源配置 2.1.1 pom文件 ?xml version1.0 encodingUTF-8? project xmlnshttp://maven.apache.org/POM/4.0.0xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdparentgroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-parent/artifactIdversion2.1.3.RELEASE/versionrelativePath/ !-- lookup parent from repository --/parentmodelVersion4.0.0/modelVersionartifactIdDruid-Boot/artifactIddependencies!-- 保证 Spring JDBC 的依赖健全 --dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-jdbc/artifactId/dependency!-- 实现对 Druid 连接池的自动化配置 --dependencygroupIdcom.alibaba/groupIdartifactIddruid-spring-boot-starter/artifactIdversion1.1.21/version/dependencydependency groupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdversion5.1.48/version/dependency!-- 实现对 Spring MVC 的自动化配置因为我们需要看看 Druid 的监控功能 --dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependency!-- 方便等会写单元测试 --dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdscopetest/scope/dependency/dependencies/project2.1.2 yml配置 spring:# datasource 数据源配置内容对应 DataSourceProperties 配置属性类datasource:url: jdbc:mysql://127.0.0.1:3306/test?useSSLfalseuseUnicodetruecharacterEncodingUTF-8driver-class-name: com.mysql.jdbc.Driverusername: root # 数据库账号password: root # 数据库密码type: com.alibaba.druid.pool.DruidDataSource # 设置类型为 DruidDataSource# Druid 自定义配置对应 DruidDataSource 中的 setting 方法的属性druid:min-idle: 0 # 池中维护的最小空闲连接数默认为 0 个。max-active: 20 # 池中最大连接数包括闲置和使用中的连接默认为 8 个。filter:stat: # 配置 StatFilter 对应文档 https://github.com/alibaba/druid/wiki/%E9%85%8D%E7%BD%AE_StatFilterlog-slow-sql: true # 开启慢查询记录slow-sql-millis: 5000 # 慢 SQL 的标准单位毫秒stat-view-servlet: # 配置 StatViewServlet 对应文档 https://github.com/alibaba/druid/wiki/%E9%85%8D%E7%BD%AE_StatViewServlet%E9%85%8D%E7%BD%AEenabled: true # 是否开启 StatViewServletlogin-username: root # 账号login-password: root # 密码2.1.3主启动类 package com.yyds;import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.CommandLineRunner; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;import javax.sql.DataSource;SpringBootApplication public class ApplicationBak implements CommandLineRunner {private Logger logger LoggerFactory.getLogger(ApplicationBak.class);Autowiredprivate DataSource dataSource;public static void main(String[] args) {// 启动 Spring Boot 应用SpringApplication.run(ApplicationBak.class, args);}Overridepublic void run(String... args) {logger.info([run][获得数据源{}], dataSource.getClass());}} 2.1.4 监控 因为做了如下操作 通过 spring.datasource.filter.stat 配置了 StatFilter 统计监控信息。通过 spring.datasource.filter.stat-view-servlet 配置了 StatViewServlet 提供监控信息的展示的 html 页面和 JSON API 所以我们在启动项目后访问 http://127.0.0.1:8080/druid 地址账户密码为配置的root可以看到监控 html 页面。 在界面的顶部提供了数据源、SQL 监控、SQL 防火墙等功能。每个界面上可以通过 [View JSON API]获得数据的来源。因为监控信息是存储在 JVM 内存中在 JVM 进程重启时信息将会丢失。如果我们希望持久化到 MySQL、Elasticsearch、HBase 等存储器中可以通过 StatViewServlet 提供的 JSON API 接口采集监控信息。 Druid 的文档https://github.com/alibaba/druid/wiki/ 。 2.2 Druid多数据源配置 2.2.1 pom文件 如2.1.1 2.2.2 yml配置 spring:# datasource 数据源配置内容datasource:# 订单数据源配置orders:url: jdbc:mysql://127.0.0.1:3306/test_orders?useSSLfalseuseUnicodetruecharacterEncodingUTF-8driver-class-name: com.mysql.jdbc.Driverusername: rootpassword:type: com.alibaba.druid.pool.DruidDataSource # 设置类型为 DruidDataSource# Druid 自定义配置对应 DruidDataSource 中的 setting 方法的属性min-idle: 0 # 池中维护的最小空闲连接数默认为 0 个。max-active: 20 # 池中最大连接数包括闲置和使用中的连接默认为 8 个。# 用户数据源配置users:url: jdbc:mysql://127.0.0.1:3306/test_users?useSSLfalseuseUnicodetruecharacterEncodingUTF-8driver-class-name: com.mysql.jdbc.Driverusername: rootpassword: roottype: com.alibaba.druid.pool.DruidDataSource # 设置类型为 DruidDataSource# Druid 自定义配置对应 DruidDataSource 中的 setting 方法的属性min-idle: 0 # 池中维护的最小空闲连接数默认为 0 个。max-active: 20 # 池中最大连接数包括闲置和使用中的连接默认为 8 个。# Druid 自定已配置druid:# 过滤器配置filter:stat: # 配置 StatFilter 对应文档 https://github.com/alibaba/druid/wiki/%E9%85%8D%E7%BD%AE_StatFilterlog-slow-sql: true # 开启慢查询记录slow-sql-millis: 5000 # 慢 SQL 的标准单位毫秒# StatViewServlet 配置stat-view-servlet: # 配置 StatViewServlet 对应文档 https://github.com/alibaba/druid/wiki/%E9%85%8D%E7%BD%AE_StatViewServlet%E9%85%8D%E7%BD%AEenabled: true # 是否开启 StatViewServletlogin-username: root # 账号login-password: root # 密码2.2.3主启动类 package com.yyds;import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.boot.CommandLineRunner; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;import javax.annotation.Resource; import javax.sql.DataSource;SpringBootApplication public class Application implements CommandLineRunner {private Logger logger LoggerFactory.getLogger(Application.class);Resource(name ordersDataSource)private DataSource ordersDataSource;Resource(name usersDataSource)private DataSource usersDataSource;public static void main(String[] args) {// 启动 Spring Boot 应用SpringApplication.run(Application.class, args);}Overridepublic void run(String... args) {// orders 数据源logger.info([run][获得数据源{}], ordersDataSource.getClass());// users 数据源logger.info([run][获得数据源{}], usersDataSource.getClass());}} 2.2.4 配置类 package com.yyds.config;import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceBuilder; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Primary;import javax.sql.DataSource;Configuration public class DataSourceConfig {/*** 创建 orders 数据源*/PrimaryBean(name ordersDataSource)ConfigurationProperties(prefix spring.datasource.orders) public DataSource ordersDataSource() {return DruidDataSourceBuilder.create().build();}/*** 创建 users 数据源*/Bean(name usersDataSource)ConfigurationProperties(prefix spring.datasource.users)public DataSource usersDataSource() {return DruidDataSourceBuilder.create().build();}} 可以看到数据源加载成功。
http://www.tj-hxxt.cn/news/222487.html

相关文章:

  • 开发网站需要租服务器租房合同模板免费下载
  • 在线教育网站设计义乌网站建设公司价位
  • 网站中怎么做视频直播在线简易网页制作网站
  • 免费发布信息网网站淘宝客导购网站怎么做
  • 湖北荆门建设银行网站公司网站建设项目的成本计划
  • 乐清哪里有做网站邢台123今天最新招聘
  • 广州网站推广自助空中乘务专业简历制作
  • wap网站生成学做视频的网站
  • 太原网站如何制作wordpress另一更新
  • 网站服务器错误怎么解决网站设计步骤及图解
  • 口腔建立网站如何增加网站的访问量
  • 中国建设银行网站维护做网站啦代理的方法
  • 在韶关做网站内容营销的方法
  • 交互设计师网站电子商务网站建设及维护管理
  • 怎么提高网站转化率医疗网站的运营
  • 问答网站建设怎么提问网站服务器有哪些
  • 网站备案能不能出现世界重庆造价信息网
  • 东莞建设通网站清远市住房和城乡建设局网站
  • 湖南网站建设公司 尖端磐石网络学ui wordpress模板
  • 昆明贤邦网站建设网站联系方式修改织梦
  • 怎样把域名和做的网站连接不上杭州 网站定制
  • 大连有做途家网站吗免费的html网站
  • 网站开发的常用软件个人简历在线编辑文档
  • 做房产信息网站建行网上银行登录入口官网
  • 网站诊断书个人简历(电子版)
  • 网站织梦温州建设小学瓯江校区网站
  • 网站窗口建设淘宝联盟网站备案
  • 如何把网站放到百度wordpress大前端logo
  • 现在网站开发哪个语言好wordpress模版如何套用
  • 进入百度app青岛关键词优化排名