学透Spring Boot — 004. Spring Boot Starter机制和自动配置机制

Matlab实现PSO-TCN-LSTM-Attention粒子群算法优化时间卷积长短期记忆神经网络融合注意力机制多变量时间序列预测的详细项目实例 这些数据包含了随时间变化她动态信息,具有显著她趋势她、周期她和季节她特征。该模型她核心优势在她其能够自适应地学习数据中她多层次时序信息,捕捉时间序列中她长短期依赖关系,从而提高预测她准确她和可靠她。本项目旨在实她一个基她PTO-TCN-LTTM-TFSttfntion她多变量时间序列预测模型,通过粒子群优化算法优化时间卷积长短期记忆神经网络,并融合注意力机制,提高模型她预测精度和稳定她。本项目模型她实她分为多个阶段,首先她数据预处理,接着她PTO优化,然后她TCN和LTTM网络她构建她训练。 阅读详情

如果你项目中一直用的是 Spring Boot,那么恭喜你没有经历过用 Spring 手动集成其它框架的痛苦。

都说 Spring Boot 大大简化了 Spring 框架开发 Web 应用的难度,这里我们通过配置 Hibernate 的两种方式来深刻体会这一点:

  • 使用 Spring 框架集成 Hibernate 手动配置
  • 使用 Spring Boot 集成 Hibernate 自动配置

Hibernate 手动配置

我们先来看看,手动配置 Hibernate 有多么麻烦。
在这里插入图片描述

第一步、引入JAP依赖
<!-- JPA 的相关依赖 -->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-orm</artifactId>
    <version>6.1.4</version>
</dependency>
<dependency>
    <groupId>org.springframework.data</groupId>
    <artifactId>spring-data-jpa</artifactId>
    <version>3.2.4</version>
</dependency>
第二步、引入Hibernate依赖
<!-- Hibernate作为JPA 实现 -->
<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-core</artifactId>
    <version>5.4.30.Final</version>
</dependency>
<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-entitymanager</artifactId>
    <version>5.4.30.Final</version>
</dependency>
第三步、引入数据库相关的依赖
<!-- JDBC 驱动程序 -->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.28</version>
</dependency>

<!-- 数据库连接池 -->
<dependency>
    <groupId>com.mchange</groupId>
    <artifactId>c3p0</artifactId>
    <version>0.10.0</version>
</dependency>

这么多个包,用哪些包?用什么版本?一般人谁记得住!
更糟糕的是,如果运气不好,你还得花很多时间解决各个依赖之间的兼容问题!

这还只是持久层的相关依赖,如果还要集成其它框架,工作量非常大!

第四步、配置数据源

在applicationContext.xml 中配置各种bean。
首先要配置的是数据源!

<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
    <property name="driverClass" value="com.mysql.cj.jdbc.Driver"/>
    <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/test"/>
    <property name="user" value="root"/>
    <property name="password" value="123456"/>
</bean>
第五步、配置实体管理器

定义实体管理器的 bean,并设置 JPA 实现类(如 Hibernate)、数据源等属性。

注意在早期的JPA版本中配置的是sessionFactory

<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
    <property name="dataSource" ref="dataSource" />
    <property name="packagesToScan" value="com.example.domain" />
    <property name="jpaVendorAdapter">
        <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter" />
    </property>
</bean>
第六步、配置事务管理器

<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
    <property name="entityManagerFactory" ref="entityManagerFactory"/>
</bean>
第七步、开启注解式事务
<tx:annotation-driven transaction-manager="transactionManager"/>
第八步、编写持久层代码

到这里,你终于把 JPA (Hibernate) 用Spring集成好了,并且配置好了。
终于你可以开始动手写代码了。

@Repository
public interface UserRepository extends JpaRepository<User, Long> {
}

Hibernate 自动配置

在前面,我们经历千辛万苦终于用Spring 集成 Hibernate框架,并且配置好了。好了接下来,你还要集成 Web、集成 Spring Security等等,你会不会暗暗叫苦呢?

前面的手动配置存在很明显的缺陷:

  • 集成某个框架,我们需要记住所有必要的依赖;不然很容易抛出 NoSuchClassException 的异常。
  • 我们还需要谨慎使用相关依赖的版本;不然很容易出现版本不兼容的情况。
  • 上面的依赖和xml配置是模块化的配置;100个项目有99个基本一致。

还在,Spring Boot 带来了自动配置的机制,它帮我们悄悄的完成了绝大部分的工作。

下面,我们看看通过Starter 和 自动配置,集成和配置 Hibernate有多么的简易!
在这里插入图片描述

第一步、引入starter-data-jpa
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
第二步、引入数据库驱动
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.28</version>
</dependency>
第三步、配置数据库连接信息

在application.properties中配置数据库信息

spring.datasource.url=jdbc:mysql://localhost:3306/test
spring.datasource.username=root
spring.datasource.password=123456
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL8Dialect
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

到这里,我们就完成了 Spring Boot 对 Hibernate的集成!

看看我们做了什么:

  • 依赖中引入 starter-data-jpa 和 mysql驱动两个依赖!
  • 只在主配置中配置了数据库账号密码等最基本信息!

其它的事情,全部有 starter 和 自动配置机制完成!

对比

starter

我们引入了一个 starter 依赖,基本完成所有的依赖的配置。
可以看到传递依赖,会把必要的依赖都自动包含进来!
在这里插入图片描述

自动配置

对于配置,其实就更容易理解了!其实我们在“手动配置”中做的事情,都是必须的,比如创建配置 DataSource、entityManagerFactory、transactionManager 这些bean 并注入到Spring 容器中。

只不过,自动配置机制偷偷的帮我们做完了一切。

总结

通过手动配置和自动配置两种方式集成 一个框架,我们可以强烈的感受到 Spring Boot的starter 和 自动配置机制的强大。

这对于我们专栏后面,从原理和源码级别理解 starter 和 自动配置 机制是非常非常有帮助的!欢迎大家点赞收藏!后续的文章,我们会更深层次的角度去学习这两个重点。

GEE APP:时间序列影像批处理工具:按月筛选与智能导出解决方案出工具 本文介绍了一个基于Google Earth Engine(GEE)开发的智能时序影像处理工具,可高效处理遥感影像时间序列数据。该工具采用三栏式交互布局,包含控制面板、地图显示和缩略图预览区域。核心功能包括:1)灵活的时间筛选机制,支持年度范围选择和月份批量选择;2)智能影像筛选算法,基于云量、空间覆盖等条件自动选择最佳影像;3)交互式缩略图预览,支持点击加载完整影像;4)自动化批量导出系统,实现标准化命名和统一存储。工具可广泛应用于农业监测、城市扩张研究、生态环境评估等领域,显著提高遥感数据预处理效率,确保 阅读详情

相关推荐

MOLDFLOW 2012模流分析基础到实战视频教程

├ 1第一讲MF软件安装与界面定制及模流前期准备工作及分析流程介绍 ├ 2第二讲MF建模工具条命令讲解与图层的运用 ├ 3第三讲MF网格类型与适应范围及网格划分、诊断、修复与统计 ├ 4第四讲MF中CAD doctor 模块对导入模型的修复方法与实例 ├ 5第五讲MF中常见各种流道浇口及水路的建模方法与外部导入方法上 ├ 6第六讲MF产品模型导入CAD DOCTOR与修复 ├ 7第七讲MF分析序列设定与网格的划分与诊断及修复 ├ 8第八讲MF材料选择与成型工艺参数设定 ├ 9第九讲MF创建浇注系统:主流道、

QQ_1987083845的博客 2543

Java之Spring Boot集成Hibernate

spring框架中提供Spring Data JPA作为开发者应用Hibernate框架的接口工具。Spring Boot则提供了一款全自动的“自动依赖模块”:spring-boot-starter-data-jpa。 1.项目结构图: 2.开始导入pom.xml配置 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi=...

qq_40286424的博客 649

STM32F103C8T6驱动DM542步进电机:从CubeMX配置到按键控制的全流程避坑指南

本文详细介绍了如何使用STM32F103C8T6通过CubeMX配置驱动DM542步进电机的全流程,包括PWM频率计算、GPIO模式选择及按键控制实现。重点解决了常见硬件连接错误、PWM参数配置及加减速算法优化,帮助开发者快速搭建稳定的电机控制系统。

weixin_42741930的博客 306

springboot整合hibernate_峰哥说技术系列-17 .Spring Boot 整合 Spring Data JPA

今日份主题Spring Boot 整合 Spring Data JPAJPA(Java Persistence API)是用于对象持久化的 API,是Java EE 5.0 平台标准的 ORM 规范,它使得应用程序以统一的方式访问持久层。大家一定听过大名鼎鼎的Hibernate,在国内早期很多JavaEE项目使用该框架,现在在国外依然非常火爆。其实JPA和Hibernate之间是有一定的关系的。这...

weixin_39638304的博客 277

FMEA-MSR步骤三:功能分析

目的 FMEA-MSR功能分析的主要目标: ● 功能及各功能之间的关系的可视化 ● 功能树/网络或等效功能矩阵参数图(P图) ● 顾客(外部和内部)功能与相关要求的关联 ● 要求或特性与功能的关联 ● 工程团队(系统、安全和组件)之间的协作 ● 失效分析步骤的基础 (点击链接进入官网领取软件试用) 在监视及系统响应的补充FMEA中,对失效探测和失效响应的监视视为其具有的功能。硬件和软件功能可能包括监视控制状态的功能。 故障/失效的监视和探测功能可能包括超出范围的探测、循环冗余校验、真实性检查和序列计数器检查

Infomass的博客 2389

诊断数据库ODX标准协议ISO22901定义组成部分

综上所述,简略描述了ODX数据库中UML/XML/Text/Check rules具体功能以及详细内容。

Soly_kun的博客 907

Spring Boot整合Hibernate

本文介绍了如何在SpringBoot项目中整合Hibernate框架实现CRUD功能。

沐雨橙风ιε的博客 7867

27、VXLAN BGP EVPN网络的自动化部署与运维管理

本文深入探讨了VXLAN BGP EVPN网络从初始配置到运维管理的全生命周期自动化流程,涵盖Day-0设备自动上线、Day-0.5增量变更与连接验证、Day-1覆盖服务配置与计算集成,以及Day-2监控与故障排查。详细介绍了推送与拉取两种配置模型、主流工具如Cisco VTS、NFM、DCNM的功能特点,以及开源自动化工具的应用。通过流程图和命令示例,系统展示了MAC/IP学习、BGP通告和VXLAN封装的验证方法,为构建高效、可扩展的数据中心网络提供了全面的技术指导。

banana的博客 79

一文教会你如何在SpringBoot项目里集成Hibernate

Hibernate是一个流行的ORM(对象关系映射)框架,它可以将Java对象映射到数据库表,从而方便地进行持久化操作。在Spring Boot项目中,集成Hibernate可以帮助我们更轻松地进行数据库操作,本文将介绍如何在Spring Boot项目中集成Hibernate,并提供相应的示例。

郝老三~~~~~~~~~~~~~ 4853

linux安装配置Mysql详细步骤

下载Mysql rpm包 官网下载:https://dev.mysql.com/downloads/mysql/ 如果你到了这里,本地应该有了如下四个rpm包: mysql-community-client-5.7.26-1.el6.x86_64.rpm mysql-community-common-5.7.26-1.el6.x86_64.rpm mysql-community-libs-5...

🏆 前端领域优质创作者 7万+

云计算 | 期末梳理(上)

2024云计算回忆版 && 复盘向梳理

知识库搭建ing 2230

Spring Boot教程 | 第七篇:Spring Data JPA (Hibernate) 事务控制

一、前言 [此篇很多是我自己的理解和总结,如果有错误的地方欢迎批评指正。部门后端人员务必全部阅读完此篇,尤其是红色字体部分!] 1.1 事务的概念 事务是数据库管理系统执行过程中的一个逻辑单位,一个操作序列。就数据库事务而言它的存在包含有以下两个目的: 为数据库操作序列提供了一个从失败中恢复到正常状态的方法,同时提供了数据库即使在异常状态下仍能保持一致性的方法。 当多个应用程序在并发访问...

好博的博客 3351

XXL-Job 分布式定时任务

XXL-JOB是一款轻量级分布式定时任务调度框架,采用调度中心与执行器分离架构,解决单机任务宕机、重复执行等问题。核心模块包括调度中心(管理任务配置、触发调度)和执行器(执行任务逻辑),支持集群部署保证高可用。框架提供丰富的任务触发规则、路由策略、阻塞策略及完善的运维能力,适用于多种业务场景如数据同步、定时推送等。安装时需准备MySQL数据库并初始化表结构,通过Docker部署调度中心服务。相比其他定时框架,XXL-JOB具有轻量化、可视化等优势,是中小企业的首选方案。

郭宝的博客 695

【JavaWeb手册004】Spring Boot的核心理念

Spring Boot通过"约定大于配置"理念简化开发,提供自动配置机制减少XML配置,基于条件注解智能创建Bean。起步依赖(Starter)解决依赖管理问题,统一版本避免冲突。核心特性包括:自动配置(@Conditional系列注解)、简化依赖管理、内嵌服务器支持,使开发者专注于业务逻辑而非基础配置。

weixin_43160093的博客 822

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Spring Boot 笔记 004 自动配置和自定义starter

dmybatis-spring-boot-starter引入dmybatis-spring-boot-aotuconfigure和dmybatis-spring-boot-aotuconfigure本身引入的其他包。003讲到了导入jar包中的方法,但其实是个半成品,别人写的jar包中的方法我要在自己的代码中去调用,非常的不方便。创建两个maven工程dmybatis-spring-boot-aotuconfigure,dmybatis-spring-boot-starter。以下文件没用到,删了。

geji001的博客 1227

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Spring Boot文档(004)-第三部分

第三部分:使用Spring Boot 本节将详细介绍如何使用Spring Boot。包括如:构建系统,自动配置以及如何运行程序等。我们还介绍了一些最佳实践。虽然Spring Boot没有什么特别的特殊之处(它只是你可以使用的另一个库),但有一些建议,如果遵循这些建议,会使开发过程变得更容易...

308

004SpringBoot-web开发 整合MVC

xxxxAutoConfiguraion xxxxProperties 自动装配原理 404页面 拦截器 实现HandlerInterceptor 全面接管SpringMVC 自己写start : 导入静态资源… 首页 jsp,模板引擎Thymeleaf 装配扩展SpringMVC 增删改查 拦截器 webjars 获取静态资源路径 首页和图标定制 Thymeleaf模板引擎 Thymeleaf表达式 MVC配置原理 配置自己的视图解析器 修改SpringBoot的默认配置 国际化!

gh_xiaohe的博客 1097

解决Spring Boot启动后直接退出的异常

问题描述 启动Spring Boot之后直接退出,console的输出日志如下: . ____ _ __ _ _ /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ \\/ ___)| |_)| | | | | || (_| |...

Blossom 5417

图灵300题-61~80-笔记004

图灵面试题视频:https://www.bilibili.com/video/BV17z421B7rB?spm_id_from=333.788.videopod.episodes&vd_source=be7914db0accdc2315623a7ad0709b85&p=20。 本文是学习笔记,如果需要面试没有时间阅读原博文,可以快速浏览笔记。 推荐深度阅读对应书籍或者知识点原文,避免碎片化学习。

weixin_45148392的博客 735

Spring Boot定时任务实现:从零构建消息推送系统

定时任务调度是现代应用开发中的核心技术概念,通过预定义的时间规则自动执行特定操作。其实现原理主要基于时间触发机制,结合任务队列和状态管理来确保可靠执行。在技术价值层面,定时任务能够显著提升系统自动化水平,减少人工干预,提高工作效率。常见的应用场景包括数据同步、报表生成、缓存更新、消息推送等日常运维和业务处理。Spring Boot的@Scheduled注解提供了简洁的定时任务支持,结合数据库持久化可以构建稳定可靠的消息推送系统。通过合理的任务分片和错误重试机制,能够有效处理分布式环境下的定时消息推送需求,满

weixin_34138056的博客 330

004-Spring AI 实现 Java Function Callback 功能完整案例

本案例演示如何使用 Spring Boot 应用程序实现基于 OpenAI API 的函数回调功能。该应用通过模拟天气服务,展示了如何处理不同城市的天气信息查询。

rengang66的博客 1116

SpringBoot入门教程,七天学完直接去面试了

如果你跟我一样,刚巧也是springboot小白,正要学springboot,建议看完下一段话: Spring Boot 是由 Pivotal 团队提供用来简化 Spring 的搭建和开发过程的全新框架。随着近些年来微服务技术的流行,Spring Boot 也成了时下炙手可热的热点技术。 课程是基于SpringBoot2.4版本讲解。教程从细节入手,每个事例先讲解pom.xml中的重要依赖,其次application配置文件,最后是代码实现。让你知其所以,逐步让掌握SpringBoot框架的自动配置,s

weixin_54585403的博客 336

第二十八章:SpringBoot使用AutoConfiguration自定义Starter

在我们学习SpringBoot时都已经了解到starter是SpringBoot的核心组成部分,SpringBoot为我们提供了尽可能完善的封装,提供了一系列的自动化配置的starter插件,我们在使用spring-boot-starter-web时只需要在pom.xml配置文件内添加依赖就可以了,我们之前传统方式则是需要添加很多相关SpringMVC配置文件。而spring-boot-start...

恒宇少年De成长之路 670

druid 手动指定数据源_Spring Boot 2.X基于Starter实现多数据源

一般一个项目就只会用到一个数据库,但是有时候遇到比较复杂的一点的项目就会涉及到多个数据库,比如在业务量较大的时候会涉及到分库分表,如果不增加数据库代理层的话,就只有在项目中来处理。还有像我们现在在一个项目中会涉及到GBase、MySQL、DB2这三种数据库,这种情况就涉及到多种数据库连接。那么我们Spring Boot中如何实现多数据库连接呢?至于单数据库连接,可以参考我之前记录的日记Spring...

weixin_39710462的博客 251

spring boot集成mongodb最简单版

通过spring tools suite新建一个spring project。带maven的即可 pom.xml文件配置 001 <?xmlversion="1.0"encoding="UTF-8"?> 002 <projectxmlns="http://maven.apache.org/POM/4.0.0...

weixin_33854644的博客 86

Spring Boot入门看这个就够了,一周学完去面试

如果你跟我一样,刚巧也是springboot小白,正要学springboot,建议看完下一段话: Spring Boot 是由 Pivotal 团队提供用来简化 Spring 的搭建和开发过程的全新框架。随着近些年来微服务技术的流行,Spring Boot 也成了时下炙手可热的热点技术。 课程是基于SpringBoot2.4版本讲解。教程从细节入手,每个事例先讲解pom.xml中的重要依赖,其次application配置文件,最后是代码实现。让你知其所以,逐步让掌握SpringBoot框架的自动配置,s

Java_Coding1的博客 373

SpringBoot框架学习教程,初学者用7天学完springboot直接去面试了

如果你跟我一样,刚巧也是springboot小白,正要学springboot,建议看完下一段话: Spring Boot 是由 Pivotal 团队提供用来简化 Spring 的搭建和开发过程的全新框架。随着近些年来微服务技术的流行,Spring Boot 也成了时下炙手可热的热点技术。 课程是基于SpringBoot2.4版本讲解。教程从细节入手,每个事例先讲解pom.xml中的重要依赖,其次application配置文件,最后是代码实现。让你知其所以,逐步让掌握SpringBoot框架的自动配置,s

qc 736
上一篇: 学透Spring Boot 003 —— Spring 和 Spring Boot 常用注解(附面试题和思维导图)
下一篇: 学透Spring Boot — 005. 深入理解 Spring Boot Starter 依赖管理
postnull咖啡
博客等级 码龄10年 1026粉丝 59原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值