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

民企厂房建设招标网站百度top排行榜

民企厂房建设招标网站,百度top排行榜,公司的网站建设价格低,做网站时最新菜品的背景图🔎这里是【秒懂云原生】,关注我学习云原生不迷路 👍如果对你有帮助,给博主一个免费的点赞以示鼓励 欢迎各位🔎点赞👍评论收藏⭐️ 👀专栏介绍 【秒懂云原生】 目前主要更新微服务,…

在这里插入图片描述

🔎这里是【秒懂·云原生】,关注我学习云原生不迷路
👍如果对你有帮助,给博主一个免费的点赞以示鼓励
欢迎各位🔎点赞👍评论收藏⭐️

👀专栏介绍

【秒懂·云原生】 目前主要更新微服务,一起学习一起进步。

👀本期介绍

主要介绍Spring Cloud —— 访问数据库整合Druid数据源

文章目录

  • 👀专栏介绍
  • 👀本期介绍
    • Spring Boot JDBC访问数据库
      • 引入JDBC启动器
      • 数据库驱动
      • 配置数据源
      • 测试
    • Spring Boot整合Druid数据源
      • 引入 Druid Spring Boot Starter 依赖
      • 配置属性
      • 配置类
    • 结束语🏆🏆🏆

Spring Boot JDBC访问数据库

对于数据访问层,无论是 SQL(关系型数据库) 还是 NOSQL(非关系型数据库),Spring Boot 都默认采用整合 Spring Data 的方式进行统一处理,通过大量自动配置,来简化我们对数据访问层的操作,我们只需要进行简单的设置即可实现对书层的访问。

引入JDBC启动器

<!--导入JDBC的启动器--> 
<dependency> 
<groupId>org.springframework.boot</groupId> 
<artifactId>spring-boot-starter-data-jdbc</artifactId> 
</dependency>

数据库驱动

<dependency> 
<groupId>mysql</groupId> 
<artifactId>mysql-connector-java</artifactId> 
<version>8.0.29</version> 
</dependency>

配置数据源

这里填自己数据库的信息

#数据源连接信息 
spring: datasource: username: root password: root url: jdbc:mysql://localhost:3306/dbdriver-class-name: com.mysql.cj.jdbc.Driver

测试

Spring Boot 提供了一个名为 JdbcTemplate 的轻量级数据访问工具,它是对 JDBC 的封装。Spring Boot 对 JdbcTemplate 提供了默认自动配置,我们可以直接使用 @Autowired 或构造函数将它注入到 bean 中使用。

Spring Boot整合Druid数据源

Druid 是阿里巴巴推出的一款开源的高性能数据源产品,Druid 支持所有JDBC 兼容的数据库,包括 Oracle、MySQL、SQL Server 和 H2 等等。Druid 不仅结合了 C3P0、DBCP 和 PROXOOL 等数据源产品的优点,同时还加入了强大的监控功能。通过 Druid 的监控功能,可以实时观察数据库连接池和 SQL 的运行情况,帮助用户及时排查出系统中存在的问题。使用 Druid Spring Boot Starter 将 Druid 与 Spring Boot 整合

引入 Druid Spring Boot Starter 依赖

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

配置属性

#数据库连接信息配置 
spring: datasource: driver-class-name: com.mysql.jdbc.Driver username: root password: root url: jdbc:mysql://localhost:3306/db pools: initial-size: 10 # 初始化时建立物理连接的个数。初始化发生 在显示调用init方法,或者第一次getConnection时 min-idle: 10 # 最小连接池数量 最小空闲数量 maxActive: 200 # 最大连接池数量 最大活跃连接数 maxWait: 60000 # 获取连接时最大等待时间,单位毫秒。配置了 maxWait之后,缺省启用公平锁,并发效率会有所下降,如果需要可以通过配置 timeBetweenEvictionRunsMillis: 60000 # 检查空闲连接的 频率.Destroy线程会检测连接的间隔时间,如果连接空闲时间大于等于 minEvictableIdleTimeMillis则关闭物理连接。 minEvictableIdleTimeMillis: 300000 # 连接的最小生存时 间.连接保持空闲而不被驱逐的最小时间 validationQuery: SELECT 1 # 验证数据库服务可用性的 sql.用来检测连接是否有效的sql 因数据库方言而差, 例如 oracle 应该写 成 SELECT 1 FROM DUAL testWhileIdle: true # 申请连接时检测空闲时间,根据空闲时 间再检测连接是否有效.建议配置为true,不影响性能,并且保证安全性。申请 连接的时候检测,如果空闲时间大于timeBetweenEvictionRun testOnBorrow: false # 申请连接时直接检测连接是否有效.申 请连接时执行validationQuery检测连接是否有效,做了这个配置会降低性 能。testOnReturn: false # 归还连接时检测连接是否有效.归还连 接时执行validationQuery检测连接是否有效,做了这个配置会降低性能。 poolPreparedStatements: true # 开启PSCache maxPoolPreparedStatementPerConnectionSize: 20 #设置 PSCache值connectionErrorRetryAttempts: 3 # 连接出错后再尝试连接 三次 breakAfterAcquireFailure: true # 数据库服务宕机自动重 连机制 timeBetweenConnectErrorMillis: 300000 # 连接出错后重 试时间间隔asyncInit: true # 异步初始化策略 remove-abandoned: true # 是否自动回收超时连接 remove-abandoned-timeout: 1800 # 超时时间(以秒数为单 位) 超过此值后,druid将强制回收该连接 transaction-query-timeout: 6000 # 事务超时时间 filters: stat,wall,log4j2 connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000 stat-view-servlet: enabled: true #是否开启内置监控页面,默认值 为 false url-pattern: "/druid/*" #StatViewServlet 的映射 路径,即内置监控页面的访问地址 allow: 127.0.0.1 #白名单 deny: #黑名单 reset-enable: false #是否启用重置按钮 login-username: admin #内置监控页面的登录页用户名 usernamelogin-password: admin #内置监控页面的登录页密码 passwordweb-stat-filter: enabled: true #是否开启内置监控中的 Web- jdbc 关联监控的数据 url-pattern: "/*" #匹配路径 exclusions: "*.js,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico,/druid/*" #排除 路径 session-stat-enable: true #是否监控session

配置类

DruidDataSourceConfig.java

package com.example.demo;import com.alibaba.druid.pool.DruidDataSource;
import com.alibaba.druid.spring.boot.autoconfigure.properties.DruidStatProperties;
import com.alibaba.druid.support.http.StatViewServlet;
import com.alibaba.druid.support.http.WebStatFilter;
import lombok.Data;
import org.springframework.beans.factory.annotation.Autowired;
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.sql.SQLException;/*** @author yeqv* @program demo* @Classname DruidDataConfig* @Date 2022/4/29 16:35* @Email w16638771062@163.com*/
@Configuration
@ConfigurationProperties(prefix = "spring.datasource")
@Data
public class DruidDataSourceConfig {@AutowiredDruidStatProperties druidStatProperties;@AutowiredStatFilter statFilter;private String url;private String username;private String password;private String driverClasName;@Beanpublic DataSource dataSource(DruidPools druidPools) throws SQLException {DruidDataSource dataSource = new DruidDataSource();dataSource.setUrl(getUrl());dataSource.setUsername(getUsername());dataSource.setPassword(getPassword());dataSource.setDriverClassName(getDriverClasName());dataSource.setInitialSize(druidPools.getInitialSize());dataSource.setMinIdle(druidPools.getMinIdle());dataSource.setMaxActive(druidPools.getMaxActive());dataSource.setMaxWait(druidPools.getMaxWait());dataSource.setTimeBetweenEvictionRunsMillis(druidPools.getTimeBetweenEvictionRunsMillis());dataSource.setMinEvictableIdleTimeMillis(druidPools.getMinEvictableIdleTimeMillis());dataSource.setValidationQuery(druidPools.getValidationQuery());dataSource.setTestWhileIdle(druidPools.testWhileIdle);dataSource.setTestOnBorrow(druidPools.testOnBorrow);dataSource.setTestOnReturn(druidPools.testOnReturn);dataSource.setPoolPreparedStatements(druidPools.poolPreparedStatements);dataSource.setMaxPoolPreparedStatementPerConnectionSize(druidPools.maxPoolPreparedStatementPerConnectionSize);dataSource.setConnectionErrorRetryAttempts(druidPools.connectionErrorRetryAttempts);dataSource.setBreakAfterAcquireFailure(druidPools.breakAfterAcquireFailure);dataSource.setTimeBetweenConnectErrorMillis(druidPools.timeBetweenConnectErrorMillis);dataSource.setAsyncInit(druidPools.asyncInit);dataSource.setRemoveAbandoned(druidPools.removeAbandoned);dataSource.setRemoveAbandoned(druidPools.removeAbandoned);dataSource.setTransactionQueryTimeout(druidPools.transactionQueryTimeout);dataSource.setFilters(druidPools.filters);dataSource.setConnectProperties(druidPools.connectionProperties);return dataSource;}@Beanpublic ServletRegistrationBean druidServlet(StatConfig statConfig) {ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(); // 现在要进行druid监控的配置处理操作servletRegistrationBean.setServlet(new StatViewServlet());servletRegistrationBean.addUrlMappings(druidStatProperties.getStatViewServlet().getUrlPattern());servletRegistrationBean.addInitParameter("allow", statConfig.getAllow()); // 白名单servletRegistrationBean.addInitParameter("deny", statConfig.getDeny()); // 黑名单servletRegistrationBean.addInitParameter("loginUsername", statConfig.getLoginUsername()); // 用户名servletRegistrationBean.addInitParameter("loginPassword", statConfig.getLoginPassword()); // 密码servletRegistrationBean.addInitParameter("resetEnable", statConfig.getResetEnable()); // 是否可以重置数据源return servletRegistrationBean;}@Beanpublic FilterRegistrationBean filterRegistrationBean(StatFilter statFilter) {FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean();filterRegistrationBean.setFilter(new WebStatFilter());filterRegistrationBean.addUrlPatterns(statFilter.urlPattern); // 所有请求进行监控处理filterRegistrationBean.addInitParameter("exclusions", statFilter.exclusions);filterRegistrationBean.setEnabled(statFilter.enabled);return filterRegistrationBean;}
}

StatFilter.java

package com.example.demo;import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;/*** @author yeqv* @program demo* @Classname StatFilter* @Date 2022/4/29 16:51* @Email w16638771062@163.com*/
@Configuration
@ConfigurationProperties(prefix = "spring.datasource.web-stat-filter")
@Data
public class StatFilter {boolean enabled;String urlPattern;String exclusions;
}

StatConfig.java

package com.example.demo;import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;/*** @author yeqv* @program demo* @Classname StatConfig* @Date 2022/4/29 16:48* @Email w16638771062@163.com*/
@Configuration
@ConfigurationProperties(prefix = "spring.datasource.stat-view-servlet")
@Data
public class StatConfig {String urlPattern;String allow;String deny;String resetEnable;String loginUsername;String loginPassword;}

DruidPools.java

package com.example.demo;import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;import java.util.Properties;/*** @author yeqv* @program demo* @Classname DruidPools* @Date 2022/4/29 16:45* @Email w16638771062@163.com*/
@Configuration
@ConfigurationProperties(prefix = "spring.datasource.pools")
@Data
public class DruidPools {int initialSize;int minIdle;int maxActive;int maxWait;long timeBetweenEvictionRunsMillis;long minEvictableIdleTimeMillis;String validationQuery;boolean testWhileIdle;boolean testOnBorrow;boolean testOnReturn;boolean poolPreparedStatements;int maxPoolPreparedStatementPerConnectionSize;int connectionErrorRetryAttempts;boolean breakAfterAcquireFailure;long timeBetweenConnectErrorMillis;boolean asyncInit;boolean removeAbandoned;long removeAbandonedTimeout;int transactionQueryTimeout;String filters;Properties connectionProperties;}

在这里插入图片描述

结束语🏆🏆🏆

🔥推荐一款模拟面试、刷题神器网站
点击注册即可
牛客刷题网
1、算法篇(398题):面试必刷100题、算法入门、面试高频榜单
2、SQL篇(82题):快速入门、SQL必知必会、SQL进阶挑战、面试真题
3、大厂笔试真题:字节跳动、美团、百度、腾讯…
在这里插入图片描述

http://www.wooajung.com/news/30260.html

相关文章:

  • 世界做火的游戏视频网站企业网站的域名是该企业的
  • mvc5网站开发之六百度网络推广营销
  • 合肥企业网站设计制作网络营销概念是什么
  • 做电商在什么网站网站优化教程
  • 三合一网站开发短信营销
  • 做网站网络公司谷歌浏览器2021最新版
  • 成都营销型网站建设公司体验式营销经典案例
  • 企业网站建设备案都需要什么东莞关键词排名提升
  • 郑州大搜索网站制作一个简单的网站
  • 淘宝网站开发实训报告中囯军事网
  • 大城 网站微博营销案例
  • wordpress qux主题广东的seo产品推广服务公司
  • 深圳四站合一网站建设电话seo研究协会
  • 怎么用ftpxp做网站网页模板建站系统
  • wordpress怎么没有导航栏刷网站seo排名软件
  • 用html做家谱网站代码seo站长综合查询
  • wordpress 党建 主题重庆网站优化
  • 安装网站百度搜索风云榜游戏
  • 商城网站建设公司排名百度推广总部电话
  • 网络营销的主要特点搜索引擎优化的简称是
  • 找兼职工作在家做正规网站蚂蚁bt
  • 制作网站建设合肥疫情最新消息
  • 哪个网站有天天做股市直播的百度网址名称是什么
  • 怎么到百度做网站推广商
  • 深圳专业网站开发公司热搜词排行榜关键词
  • 苏州保洁公司招聘信息怎么优化电脑系统
  • 学网页制作的网站站长工具查询网站信息
  • 保定网站建设公司有靠谱的吗ui设计
  • 大连网站建设工作室保定seo推广
  • 网站系统运行环境新媒体运营主要做什么