网站更改备案信息在哪百度客户电话

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

网站更改备案信息在哪,百度客户电话,怎么建设免费的网站,wordpress在线文档前言 Spring Boot 是当今最流行的 Java 开发框架之一#xff0c;它以简洁、高效的特点帮助开发者快速构建稳健的应用程序。在实际项目中#xff0c;涉及到数据库操作的需求时#xff0c;我们需要对数据源进行整合。本文将重点介绍如何在 Spring Boot 中整合数据源#xff…前言 Spring Boot 是当今最流行的 Java 开发框架之一它以简洁、高效的特点帮助开发者快速构建稳健的应用程序。在实际项目中涉及到数据库操作的需求时我们需要对数据源进行整合。本文将重点介绍如何在 Spring Boot 中整合数据源以及如何利用 Spring Boot 的便利特性来简化这一过程。 无论是传统的关系型数据库还是当下流行的 NoSQL 数据库Spring Boot 都提供了丰富的支持。通过本文的学习读者将能够掌握在 Spring Boot 中整合各类数据源的方法并且了解如何利用 Spring Boot 的自动配置和简化的注解来简化数据源配置工作从而更专注于应用程序的业务逻辑开发。 如果你对 Spring Boot 中数据源整合的方法感到困惑或者希望了解如何通过 Spring Boot 来更高效地处理数据库操作那么本文将为你提供宝贵的指导和实用的技巧。让我们一起深入探索 Spring Boot 中数据源整合的精彩世界吧 一、前期准备 1、新建项目结构如下 2、导入依赖 dependencies!– spring boot 的核心starter –dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter/artifactId/dependency!– spring jdbc 的 starter –dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-jdbc/artifactId/dependencydependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactId/dependency!– Druid 连接池的 starter –!– https://mvnrepository.com/artifact/com.alibaba/druid-spring-boot-starter –dependencygroupIdcom.alibaba/groupIdartifactIddruid-spring-boot-starter/artifactIdversion1.2.18/version/dependencydependencygroupIdcom.mysql/groupIdartifactIdmysql-connector-j/artifactIdscoperuntime/scope/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdscopetest/scope/dependency/dependenciesbuildpluginsplugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactIdconfigurationimagebuilderpaketobuildpacks/builder-jammy-base:latest/builder/image/configuration/plugin/plugins/build这是一个关于 Spring Boot 整合数据源的 Maven 依赖配置和构建插件示例。这些依赖项将帮助你在项目中使用 Spring Boot 和相关的数据库连接池进行数据源整合。以下是示例中包含的依赖项和插件说明 spring-boot-starterSpring Boot 的核心依赖提供了基本的 Spring Boot 功能。spring-boot-starter-jdbcSpring Boot 的 JDBC Starter用于支持 JDBC 数据库操作。lombokJava 开发工具简化了代码编写过程。druid-spring-boot-starterDruid 连接池的 Spring Boot Starter用于管理数据库连接。mysql-connector-jMySQL 数据库的 JDBC 驱动。spring-boot-starter-testSpring Boot 的测试 Starter用于编写单元测试。 在构建部分示例使用了 spring-boot-maven-plugin 插件来配置 Docker 镜像构建时所使用的镜像构建器。 二、使用 yml  配置SpringBoot 内置的 hikari 连接池

数据源连接池

spring:datasource:# 连接属性driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/psmusername: rootpassword: 123456# SpringBoot 内置的 hikari 连接池hikari:# 最小空闲连接minimum-idle: 5# 最大连接数maximum-pool-size: 20# 最大空闲时长idle-timeout: 900000# 连接的超时时间connection-timeout: 3000# 检查连接的有效性connection-test-query: select 1 driver-class-name指定 JDBC 驱动类的完整类名用于连接数据库。在示例中我们使用了 MySQL 的驱动类 com.mysql.cj.jdbc.Driver。url指定数据库的连接 URL。在示例中我们连接的是本地的 MySQL 数据库监听端口为 3306数据库名称为 psm。username 和 password指定连接数据库所需的用户名和密码。 接下来我们配置了 Spring Boot 内置的 HikariCP 连接池相关的属性 minimum-idle指定连接池中最小空闲连接数。在示例中我们设置为 5表示连接池中至少保持 5 个空闲连接。maximum-pool-size指定连接池中的最大连接数。在示例中我们设置为 20表示连接池中最多可以拥有 20 个连接。idle-timeout指定连接的最大空闲时长超过该时长的空闲连接将被释放。在示例中我们设置为 900000 毫秒15 分钟。connection-timeout指定连接的超时时间即获取连接的最大等待时间。 connection-test-query这里可以指定一个用于测试连接是否有效的SQL查询语句比如select 1。连接池会定期执行这个查询来检测连接的有效性。  1、测试一下 Slf4j SpringBootTest class Ch04ApplicationTests {Autowiredprivate DataSource dataSource;Testvoid contextLoads() throws SQLException {Connection connection dataSource.getConnection();log.info(连接对象 connection);} } 这是一个简单的Junit测试类用来验证你在Spring Boot应用中配置数据源连接池是否成功。以下是这个测试类的详细说明 Slf4j注解这个注解会自动生成一个名为log的日志对象用来输出日志信息。 SpringBootTest注解这个注解告诉JUnit测试框架需要加载整个Spring应用上下文来执行测试。 Autowired注解这个注解用来自动装配数据源连接池对象也就是在Spring容器中查找一个数据源对象并将其注入到dataSource变量中。 contextLoads()方法这个方法是一个测试用例用来测试数据源连接池是否正常工作。在这个方法中你调用了dataSource.getConnection()方法获取一个数据库连接并使用log.info()方法输出这个连接对象。 当你运行这个测试类时如果能够正常输出连接对象就说明你已经成功地配置了数据源连接池并且能够使用它来管理数据库连接了。 运行结果 三、使用 yml 配置 druid 连接池

数据源连接池

spring:datasource:# 连接属性driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/psmusername: rootpassword: 123456# 使用 druid 连接池druid:# 最大连接数max-active: 100# 初始化连接数initial-size: 10# 最小连接池数min-idle: 10# 最大等待时间max-wait: 1000# 如果连接空闲时间大于等于 min-evictable-idle-time-millis# 的时长则关闭连接time-between-eviction-runs-millis: 60000# 连接保持空闲而不被驱逐出连接池min-evictable-idle-time-millis: 300000# 检查连接有效性validation-query: select 1# 是否缓存 preparedStatement (MySQL 建议关闭)pool-prepared-statements: false以下是一些重要的设置说明 driver-class-name、url、username和password这些属性指定了数据库连接的基本信息包括驱动类名、数据库URL、用户名和密码。 druid.max-active这个属性指定了连接池中允许的最大活动连接数即最大连接池大小。 druid.initial-size这个属性指定了连接池的初始大小即在连接池刚刚创建时连接池中包含的连接数。 druid.min-idle这个属性指定了连接池中保持的最小空闲连接数。 druid.max-wait当连接池中没有可用连接时客户端在等待连接时最长的时间单位为毫秒。 druid.time-between-eviction-runs-millis用于检测连接池中空闲连接的时间间隔单位为毫秒。如果连接空闲时间大于等于min-evictable-idle-time-millis的时长则关闭连接。 druid.min-evictable-idle-time-millis连接保持空闲而不被驱逐出连接池的时长单位为毫秒。 druid.validation-query用来检测连接是否有效的SQL查询语句例如select 1。 druid.pool-prepared-statements是否缓存prepared statements对于MySQL数据库建议将此属性设置为false。 1、测试一下 Slf4j SpringBootTest class Ch04ApplicationTests {Autowiredprivate DataSource dataSource;/*** 注入 JDBC 的 Template用于操作数据*/Autowiredprivate JdbcTemplate template;Testvoid contextLoads() throws SQLException {Connection connection dataSource.getConnection();log.info(连接对象 connection);}Testpublic void testJdbcTemplate(){ListMapString, Object list template.queryForList(select * from psm.city_info limit 0,10);list.forEach(map - map.forEach((k,v) - {log.info(键 k 值 v);}) );}} 这段代码是一个Spring Boot的测试类用于测试数据源和JdbcTemplate是否能够正常工作。 首先在Autowired注解下DataSource对象被注入到测试类中。这个数据源对象可以用来获取数据库连接在contextLoads方法中通过调用dataSource.getConnection()方法获得了一个数据库连接对象然后在日志中记录了这个连接对象。 另外在testJdbcTemplate方法中可以看到JdbcTemplate对象也被注入到测试类中。JdbcTemplate是Spring框架提供的一个用于简化JDBC操作的工具类可以用它来执行SQL查询、更新等操作。在这个方法中使用了template.queryForList方法查询了psm.city_info表的前10行数据并打印出了每一行数据中的键值对。 通过这些测试可以验证数据源和JdbcTemplate是否已经正确配置和注入到Spring容器中以及它们是否能够正常地连接和操作数据库。如果测试通过则说明你已经成功地配置了数据源和JdbcTemplate并能够使用它们来操作数据库。 运行结果 四、hikari 和Druid的区别 Hikari和Druid都是Java语言中常用的数据库连接池。它们之间的不同主要体现在以下几个方面 性能和效率 HikariCP通常被认为是性能最好的连接池之一因为它专注于快速、轻量级和高效的连接管理。相比之下Druid虽然功能强大但在某些情况下可能会牺牲一些性能以换取更多的特性和功能。 配置和简洁性 HikariCP的配置相对简单通常只需要很少的参数设置就可以工作良好。而Druid提供了更多的配置选项和功能这使得它在一些复杂的场景下更具灵活性但也增加了学习和配置的复杂性。 监控和扩展性 Druid内置了丰富的监控和统计功能可以方便地查看连接池的状态和性能指标。此外Druid还提供了诸如防火墙、SQL转义等额外的功能这些功能在HikariCP中可能需要额外的集成或扩展。
综上所述HikariCP适合那些追求高性能、简洁配置的场景而Druid则适合那些对监控和扩展性有较高要求的场景。选择哪个连接池取决于具体的项目需求和性能考量。