JAVA:jsp+springboot 配置maven兼容版本

Java17

maven依赖:如果中央库和其他镜像找不到包,

可以访问下面的网址找替代包

<!-- Maven Repository: Search/Browse/Explore (mvnrepository.com) -->
spring-boot版本号3.2.5

1.无需配置驱动,有内置数据库驱动

2.能自动扫描配置类。boot2.7.5版本的自动扫描不好用。

<artifactId>spring-boot-starter-parent</artifactId>
<version>3.2.5</version>
jsp前端包的类型<packaging>war</packaging>
Tomcat Starter: 嵌入式 Tomcat 服务器,用于 Web 请求处理。
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
Servlet API:6.1.0-M1
Servlet API: 标准 Java Servlet API,用于 Web 请求。
<artifactId>jakarta.servlet-api</artifactId>
<version>6.1.0-M1</version>
JSP API: 标准 JSP API,用于处理 JSP 文件。
JSP API: 3.1.0
<artifactId>jakarta.servlet.jsp-api</artifactId>
<version>3.1.0</version>
Jasper10.1.2
Jasper: 嵌入式 JSP 引擎,用于解析 JSP 文件。
<artifactId>tomcat-embed-jasper</artifactId>
<version>10.1.20</version>
JSTL: 3.0.0  3.0.1
为 JSP 提供标准标签库,
用于增强 JSP 文件的功能
<artifactId>jakarta.servlet.jsp.jstl-api</artifactId>
<version>3.0.0</version>
<artifactId>jakarta.servlet.jsp.jstl</artifactId>
<version>3.0.1</version>

lombok:简化Java编程的开源库

比如:

Lombok是一个用于简化Java编程的开源库,它通过注解的方式减少了代码的样板代码量,增强了代码的可读性和可维护性。以下是Lombok的一些亮点功能:

1. **数据类注解**:`@Data`注解可以自动生成类的所有属性的getter和setter方法、`toString()`方法、`equals()`方法和`hashCode()`方法。

2. **构造器注解**:`@AllArgsConstructor`和`@NoArgsConstructor`注解可以分别生成带所有参数和无参数的构造器。此外,`@RequiredArgsConstructor`注解则会生成仅包含`final`属性或被`@NonNull`注解修饰属性的构造器。

3. **日志注解**:Lombok提供了多种日志注解,例如`@Slf4j`、`@Log4j`等,可以自动为类添加对应日志框架的日志记录器。

4. **`@Builder`注解**:这个注解可以为类生成Builder模式的构造器,使得构建对象时可以更灵活地设置属性,并且代码结构更加清晰。

5. **注解处理**:Lombok的注解会在编译期间进行处理,自动生成对应的样板代码。这意味着开发者不需要手动编写重复性代码,且不会增加运行时开销。

6. **其他注解**:例如`@Getter`和`@Setter`注解可以分别只为特定属性生成getter或setter方法,`@ToString`可以定制类的`toString()`方法内容,`@EqualsAndHashCode`可以定制类的`equals()`和`hashCode()`方法。

Lombok通过这些注解功能,大大简化了Java开发的样板代码,使得代码更加简洁,提升了开发效率。

用脚手架增加就行了

  • 日志注解@Slf4j: 这是一个首选,因为它能与 Spring Boot 默认的日志设置无缝集成,并且能够与多种后端通过 SLF4J 兼容。

JPA 3.2.5

Spring Boot提供的一个用于简化JPA(Java Persistence API)开发

`spring-boot-starter-data-jpa` 是Spring Boot提供的一个用于简化JPA(Java Persistence API)开发的入门包。它提供了一系列开箱即用的功能,以简化数据库操作和数据持久化开发。以下是其主要功能和亮点:

1. **简化配置**:`spring-boot-starter-data-jpa`自动引入了JPA和Hibernate等必要的依赖,并提供了自动配置,使得开发者可以更快速地搭建起一个数据访问层。

2. **Repository接口**:它提供了`CrudRepository`、`JpaRepository`等基础接口,可以自动生成CRUD操作(增删改查)的方法,无需手动实现。

3. **查询方法生成**:Spring Data JPA允许通过在Repository接口中定义符合特定命名规范的方法,自动生成对应的查询逻辑,如`findByUsername`、`findAllByAgeBetween`等,极大地简化了查询操作。

4. **自定义查询**:除了自动生成的方法,开发者还可以通过`@Query`注解在接口方法上定义自定义查询,支持JPQL(Java Persistence Query Language)或原生SQL查询。

5. **实体映射**:通过JPA注解(如`@Entity`、`@Table`、`@Id`等),可以将Java对象与数据库表映射起来,实现对象-关系映射(ORM),从而以对象的方式操作数据。

6. **事务管理**:`spring-boot-starter-data-jpa`提供了事务管理支持,通过`@Transactional`注解可以指定方法级别的事务控制,确保数据一致性。

7. **分页和排序**:`Pageable`和`Sort`接口提供了简单的分页和排序功能,可以方便地进行复杂的查询操作。

8. **Hibernate集成**:作为Spring Data JPA的一部分,它默认集成了Hibernate框架,可以利用Hibernate的特性,如懒加载、缓存等,提高数据库访问性能。

总之,`spring-boot-starter-data-jpa`通过自动配置、自动生成CRUD操作、实体映射、事务管理等功能,极大地简化了Java应用的数据持久化开发,使开发者可以专注于业务逻辑开发,提高开发效率。

<artifactId>spring-boot-starter-data-jpa</artifactId>
<version>3.2.5</version>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/830971.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微信私域生态下的企业级私域建设:开源AI智能名片商城小程序源码六大模块功能价值深度解读

在数字化营销蓬勃发展的今天&#xff0c;企业如何在微信私域生态中构建并运营一个稳固的私域流量池&#xff0c;成为了摆在众多企业家和市场人面前的重要课题。本文将基于开源AI智能名片B2B2C商城小程序源码的AARRR模型&#xff0c;深度解读微信私域中企业级私域建设的六大模块…

文心一言 VS 讯飞星火 VS chatgpt (249)-- 算法导论18.2 2题

二、请解释在什么情况下&#xff08;如果有的话&#xff09;&#xff0c;在调用 B-TREE-INSERT 的过程中&#xff0c;会执行冗余的 DISK-READ 或 DISK-WRITE 操作。&#xff08;所谓冗余的 DISK-READ &#xff0c;是指对已经在主存中的某页做 DISK-READ 。冗余的 DISK-WRITE 是…

【C语言/数据结构】经典链表OJ习题~第二期——链中寻环

&#x1f388;&#x1f388;&#x1f388;欢迎采访小残风的博客主页&#xff1a;残风也想永存-CSDN博客&#x1f388;&#x1f388;&#x1f388; &#x1f388;&#x1f388;&#x1f388;本人码云 链接&#xff1a;残风也想永存 (FSRMWK) - Gitee.com&#x1f388;&#x1f…

Python Json数据解析

本篇主要介绍Python 中json数据如何解析、转化、保存和加载。 目录 Json数据解析 概念 作用 Json文件组成 Json转化为Python数据类型 Python数据类型转化为json 写入本地json文件 读取本地的json文件 总结 Json数据解析 概念 一种保存数据的格式 作用 可以保存本地…

Day28-Java基础之Arrays类和lambda表达式

Arrays类 //Arrays类 int[] arr{1,2,3,4,5,6}; System.out.println(Arrays.toString(arr)); System.out.println(Arrays.binarySearch(arr,3));//不存在返回&#xff0d;插入点再-1 int[] newArrArrays.copyOf(arr,10); System.out.println(Arrays.toString(newArr)); int[] n…

第3篇:创建Nios II工程之Hello_World<二>

Q&#xff1a;上一期介绍完基本设计流程和实验原理&#xff0c;接着我们完成系统硬件设计部分&#xff0c;包括Platform Designer系统及Quartus工程。 A&#xff1a;依次搜索并添加Nios II Processor、JTAG UART、On-Chip Memory和System ID IP组件&#xff0c;连接各组件并As…

随笔Ubuntu上的的一些使用

Ubuntu简易使用 常用指令 cdlsmkdirrf -rm 路径 换源 备份镜像 sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak编辑文件设置 sudo gedit /etc/apt/sources.list清华源 # 阿里源 deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe mul…

STM32 F103C8T6学习笔记17:类IIC通信—MLX90614红外非接触温度计

今日学习配置MLX90614红外非接触温度计 与 STM32 F103C8T6 单片机的通信 文章提供测试代码讲解、完整工程下载、测试效果图 本文需要用到的大概基础知识&#xff1a;1.3寸OLED配置通信显示、IIC通信、 定时器配置使用 这里就只贴出我的 OLED驱动方面的网址链接了&#xff1a…

Qt开发 , new一个QDialog窗口,点击关闭按钮,内部定义QTimer指针未释放 同时 析构函数也未调用问题

在Qt中&#xff0c;当创建一个QDialog的实例并显示它时&#xff0c;按下关闭按钮&#xff08;或点击窗口右上角的“X”按钮&#xff09;会触发窗口的关闭事件&#xff0c;但并不会立即调用其析构函数。这是因为Qt的窗口部件管理内存的方式是基于引用计数的&#xff0c;并且QDia…

2024深圳杯数学建模竞赛D题(东三省数学建模竞赛D题):建立非均质音板振动模型与参数识别模型

更新完整代码和成品完整论文 《2024深圳杯&东三省数学建模思路代码成品论文》↓↓↓&#xff08;浏览器打开&#xff09; https://www.yuque.com/u42168770/qv6z0d/zx70edxvbv7rheu7?singleDoc# 2024深圳杯数学建模竞赛D题&#xff08;东三省数学建模竞赛D题&#xff0…

口袋实验室--使用AD2学习频谱参数测试

目录 1. 简介 2. 频谱相关参数 2.1 频谱相关基本概念 2.1.1 采样时间间隔 2.1.2 采样频率 2.1.3 采样点数 2.1.4 采样时间长度 2.1.5 谱线数 2.1.6 奈奎斯特频率 2.1.7 频谱分辨率 2.1.8 最高分析频率 2.1.9 频谱泄露 2.2 窗函数 2.2.1 AD2的窗函数 2.2.2 测试矩…

Json 反序列化错误

Json 反序列化错误 JsonReaderException: Unexpected character encountered while parsing value: &#xfeff;. Path ‘’, l 可能是因为字符串是BOM UTF-8格式&#xff0c;需要把BOM去掉 public byte[] RemoveBOMData(byte[] bytesWithBom) {// UTF-8 BOM的字节表示&#…

Github 2024-05-01 开源项目月报Top20

根据Github Trendings的统计,本月(2024-05-01统计)共有20个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Python项目13TypeScript项目5C项目2非开发语言项目1C++项目1JavaScript项目1Rust项目1Go项目1Shell项目1Svelte项目1编程面试大学:成为软件工程…

报错Unable to install JS,且提示Unable to run npm install【鸿蒙报错已解决】

文章目录 项目场景:问题描述原因分析:解决方案:此Bug解决方案总结Bug解决方案寄语项目场景: 最近遇到了这个问题,看到网上也有人在询问这个问题,实操了很多网上的解决方案发现并不能解决这个Bug,所以我在解决这个问题后,总结了自己和其他人的解决经验,进行了整理,写…

详解AI绘画的技术原理

AI绘画的技术原理主要基于机器学习和神经网络模型。这些模型可以学习和识别图像中的特征&#xff0c;并自动生成新的图像。以下是AI绘画技术原理的详细解释&#xff1a; 首先&#xff0c;AI绘画需要大量的数据来学习和理解人类绘画的技巧和风格。这些数据可以来自于各种渠道&a…

Qt的qtmqtt库连接onenet出现QMQTT::SocketRemoteHostClosedError解决方法

问题描述 在Qt发开过程中使用qtmqtt库来连接onenet的mqtt服务器&#xff0c;在ClientId、Username和Password均填写正确的情况下还是连接不上&#xff0c;查看错误显示QMQTT::SocketRemoteHostClosedError。 解决方法 client中的CleanSession标志位必须设置为true。 client …

Qt | QLabel 类(标签)

01、上节回顾 Qt | QFrame容器02、QLabel 1、QLabel 类是 QFrame类的直接子类,因此 QLabel 可以使用从 QFrame 类继承而来的边框效果 2、Qt 的标签可用于显示纯文本、富文本、电影、图像等,但没有提供与用户交互的功能。富文本就是指的符合 HTML 语言规范的文本, 3、QLab…

Nginx负载均衡主备模式

1. 背景 使用Nginx代理后端服务&#xff0c;有时候某些服务是不能使用多台负载均衡&#xff0c;但又想保障高可用&#xff0c;所以采用主备模式&#xff0c;记录如下&#xff1a; 2. 参考 nginx 负载均衡Nginx-负载均衡-后端状态max_conns、down、backup、max_fails、fail_t…

【刷爆力扣之637. 二叉树的层平均值】

637. 二叉树的层平均值 方法一&#xff1a;深度优先搜索dfs 使用深度优先搜索计算二叉树的层平均值&#xff0c;需要维护两个数组&#xff0c;counts 用于存储二叉树的每一层的节点数&#xff0c;sums 用于存储二叉树的每一层的节点值之和。搜索过程中需要记录当前节点所在层…

Thinkphp--in-sqlinjection

一、漏洞原理 在 Builder 类的 parseData 方法中&#xff0c;由于程序没有对数据进行很好的过滤&#xff0c;将数据拼接进 SQL 语句&#xff0c;导致 SQL注入漏洞 的产生。 影响版本 5.0.13<ThinkPHP<5.0.15 5.1.0<ThinkPHP<5.1.5 在相应的文件夹位置打开终端…