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

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>
<artifactId>jsp-api</artifactId>
<version>2.2.1-b03</version>
tomcat10少了jsp-api这个包,所以要额外添加jsp-api依赖
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>

在国内mapper比JPA更适合复杂的业务场景

去掉JPA,使用mapper(mybatis)

 MybatisPlus

MyBatis Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。下面是 MyBatis Plus 的一些主要用途和特点:

1. **自动代码生成**:MyBatis Plus 提供了代码生成器,可以自动根据数据库表生成对应的模型(Entity)、映射文件(Mapper XML)以及对应的 Mapper 接口等。这极大地减少了重复的编码工作,提高了开发效率。

2. **无侵入性**:MyBatis Plus 在 MyBatis 的基础上进行增强,不改变 MyBatis 的核心方式,使用者无需改变现有代码即可使用。

3. **内置 CRUD 操作**:MyBatis Plus 内置了常用的 CRUD 操作,开发者无需编写 SQL 语句即可完成大部分数据库操作,简化了代码和减少了出错的可能。

4. **条件构造器**:提供了强大的条件构造器,可以通过编程的方式构造查询条件,避免手写 SQL 语句的复杂性和可能引入的错误。

5. **分页插件**:内置分页插件,支持物理分页,开发者只需要少量配置即可实现复杂的分页功能。

6. **性能分析插件**:提供了 SQL 性能分析插件,可以帮助开发者在开发期间找出潜在的性能瓶颈。

7. **多租户 SQL 解析器**:支持多租户应用的开发,提供租户条件的自动注入。

8. **逻辑删除**:支持逻辑删除功能,开发者只需简单配置,便可实现软删除功能,增强数据的安全性。

通过这些功能,MyBatis Plus 不仅提高了开发效率,同时也保留了 MyBatis 强大的灵活性和控制力,非常适合在企业级开发中使用。

<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.5</version>
</dependency>
<dependency><groupId>org.mybatis</groupId><artifactId>mybatis-spring</artifactId><version>3.0.3</version>
</dependency>

排除 mybatis-plus 中自带的 mybatis 整合包,单独引入mybatis-spring (防止出现错误:java.lang.IllegalArgumentException: Invalid value type for attribute 'factoryBeanObjectType')

如果mybatis-plus与springboot版本不兼容会出现(错误:org.springframework.beans.factory.BeanNotOfRequiredTypeException: Bean named 'ddlApplicationRunner' is expected to be of type)

相关文章:

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

Java17 maven依赖&#xff1a;如果中央库和其他镜像找不到包&#xff0c; 可以访问下面的网址找替代包 <!-- Maven Repository: Search/Browse/Explore (mvnrepository.com) -->spring-boot版本号3.2.51.无需配置驱动&#xff0c;有内置数据库驱动 2.能自动扫描配置类。b…...

【Docker】docker部署lnmp和搭建wordpress网站

环境准备 docker&#xff1a;192.168.67.30 虚拟机&#xff1a;4核4G systemctl stop firewalld systemctl disable firewalld setenforce 0 安装docker #安装依赖包 yum -y install yum-utils device-mapper-persistent-data lvm2 #设置阿里云镜像 yum-config-manager --add…...

C#装箱拆箱是怎么回事

代码如下&#xff1a; int i 123; object o i; // Boxing int j (int)o; // Unboxing 缺点&#xff1a; 当装箱和拆箱发生时&#xff0c;该技术允许将值类型视为对象。虽然非常有益&#xff0c;但它们会带来性能开销。值类型和引用类型之间的转换过多可能会导致垃圾回收…...

JavaEE 初阶篇-深入了解 Junit 单元测试框架和 Java 中的反射机制(使用反射做一个简易版框架)

&#x1f525;博客主页&#xff1a; 【小扳_-CSDN博客】 ❤感谢大家点赞&#x1f44d;收藏⭐评论✍ 文章目录 1.0 Junit 单元测试框架概述 1.1 使用 Junit 框架进行测试业务代码 1.2 Junit 单元测试框架的常用注解&#xff08;Junit 4.xxx 版本&#xff09; 2.0 反射概述 2.1 获…...

人力资源管理新视野:挖掘员工潜力,共筑卓越未来

在21世纪的商业环境中&#xff0c;企业的成功不再仅仅依赖于资本、技术和市场策略&#xff0c;而更多地依赖于其人力资源的有效管理。人力资源管理的新视野正致力于挖掘员工的潜力&#xff0c;为企业创造持续的价值&#xff0c;共筑卓越的未来。 一、员工潜力的挖掘 员工是企业…...

rust语言tokio库spawn, blocking_spawn等的使用

目录 tokio的spawn以及spawn_blocking的使用tokio::task::spawn方法解析tokio::task::spawn_blocking()方法解析 时间会遗忘一切 最后更新时间2024.04.29 tokio版本&#xff1a; tokio的spawn以及spawn_blocking的使用 tokio::task::spawn方法解析 tokio的实现原理以及源码…...

Day_1

1. 环境搭建 技术选型 后端项目结构 sky-take-out maven父工程&#xff0c;统一管理依赖版本&#xff0c;聚合其他子模块 sky-common 子模块&#xff0c;存放公共类&#xff0c;例如&#xff1a;工具类、常量类、异常类等 sky-pojo 子模块&#xff0c;存放实体类、VO、DTO…...

2024.05.06作业

自由发挥应用场景&#xff0c;实现登录界面。 要求&#xff1a;尽量每行代码都有注释。 #include "yuanshen.h"yuanshen::yuanshen(QWidget *parent): QWidget(parent) {//窗口相关设置this->resize(1600,910);this->setFixedSize(1600,910);//窗口标题this-…...

什么是抖音橱窗?它和抖音小店有什么区别?普通人更适合做哪个?

大家好&#xff0c;我是电商糖果 相信有很多想在抖音卖货的朋友&#xff0c;都会搞不清抖音橱窗是什么&#xff1f; 甚至会把它和抖音小店当成一个项目&#xff0c;也不知道哪个更适合自己。 自己越了解发现越迷糊&#xff0c;有的说不需要直播&#xff0c;粉丝&#xff0c;…...

spring高级篇(九)

boot的执行流程分为构造SpringApplication对象、调用run方法两部分 1、Spring Boot 执行流程-构造 通常我们会在SpringBoot的主启动类中写以下的代码&#xff1a; 参数一是当前类的字节码&#xff0c;参数二是main的args参数。 public class StartApplication {public static…...

用wordpress建跨境电商独立站的5大优势

免费和开源 WordPress是一个免费的开源内容管理系统&#xff0c;用户可以自由下载、安装和使用&#xff0c;无需支付版权费用或订阅费用。开源特性也意味着用户可以根据自己的需求修改和定制代码&#xff0c;或者使用其他开发者提供的插件和主题来扩展和美化网站。 易用和灵活…...

Windows中安装的PostgreSQL 数据库如何重启

1. 使用Windows服务管理器 打开“运行”对话框&#xff08;按WinR键&#xff09;。输入services.msc并按回车&#xff0c;这将打开服务列表。在服务列表中找到PostgreSQL服务。它通常命名为“PostgreSQL”后面跟着版本号和实例名称&#xff0c;例如“PostgreSQL 13 - mydb”。…...

Remix框架实现 SSR

SSR SSR是一种网页渲染方式&#xff0c;它与传统的客户端渲染&#xff08;CSR&#xff09;相对&#xff0c;在日常的项目中我们更多是使用 CSR 的方式进行前端分离开发&#xff0c;渲染会在浏览器端进行。然而在SSR中&#xff0c;当用户请求一个网页时&#xff0c;服务器将生成…...

如何快速开发项目,提高开发效率

文章目录 一、问题描述二、问题解决1.需求分析2.架构设计3.技术选型4.正式开发 一、问题描述 有很多小伙伴在开发一个项目的时候&#xff0c;总是需要很长时间&#xff0c;效率很低&#xff0c;其实本质是没有掌握开发项目的关键和技巧 我下面列举一些问题&#xff0c;不知道…...

面试笔记——多线程使用场景

线程池使用场景&#xff08;CountDownLatch&#xff0c; Future&#xff09; CountDownLatch CountDownLatch&#xff08;闭锁/倒计时锁&#xff09;用来进行线程同步协作&#xff0c;等待所有线程完成倒计时&#xff08;一个或者多个线程&#xff0c;等待其他多个线程完成某件…...

02.0 基于Verilog控制LED灯每秒钟闪烁一次

本段代码是为Verilog初学者提供的一个名为led_blink简单实例Verilog模块&#xff0c;其功能是控制6个LED灯同步闪烁&#xff0c;每秒钟闪烁一次。 本例代码用于理解时序逻辑的概念&#xff0c;理解多个always模块完全并行执行的概念&#xff0c;讲授时可以与C语言的执行过程进行…...

C语言创建文件夹和多级目录

C调用系统命令创建多级目录 #include <stdio.h> #include <stdlib.h>int main() {const char *path "a/b/c";// 创建目录命令的字符串char mkdir_command[100];sprintf(mkdir_command, "mkdir %s", path);// 调用系统命令system(mkdir_comma…...

2024.5.6

#include "mywidget.h"MyWidget::MyWidget(QWidget *parent): QWidget(parent) {//设置窗口大小this->resize(1000,740);//设置窗口图标this->setWindowIcon(QIcon("C:\\Users\\Administrator\\Desktop\\pictrue\\Plants.png"));//设置窗口标题this-…...

mybatis配置获取自增主键

mybatis配置获取自增主键 【/n】 01 使用场景 当需要刚刚插入数据库的数据对应的新增主键时&#xff0c;通过配置xml文件&#xff0c;使数据库返回新增主键id&#xff0c;并把主键id与类参数对应 02 涉及配置 注解TableId(type IdType.AUTO)&#xff1a;在类主键id通过配…...

完整、免费的把pdf转word文档

在线工具网 https://www.orcc.online 支持pdf转word&#xff0c;免费、完整、快捷 登录网站 https://orcc.online 选择需要转换的pdf文件&#xff1a; 等待转换完成 点击蓝色文件即可下载 无限制&#xff0c;完整转换。...

从WWDC看苹果产品发展的规律

WWDC 是苹果公司一年一度面向全球开发者的盛会&#xff0c;其主题演讲展现了苹果在产品设计、技术路线、用户体验和生态系统构建上的核心理念与演进脉络。我们借助 ChatGPT Deep Research 工具&#xff0c;对过去十年 WWDC 主题演讲内容进行了系统化分析&#xff0c;形成了这份…...

Python爬虫实战:研究feedparser库相关技术

1. 引言 1.1 研究背景与意义 在当今信息爆炸的时代,互联网上存在着海量的信息资源。RSS(Really Simple Syndication)作为一种标准化的信息聚合技术,被广泛用于网站内容的发布和订阅。通过 RSS,用户可以方便地获取网站更新的内容,而无需频繁访问各个网站。 然而,互联网…...

[ICLR 2022]How Much Can CLIP Benefit Vision-and-Language Tasks?

论文网址&#xff1a;pdf 英文是纯手打的&#xff01;论文原文的summarizing and paraphrasing。可能会出现难以避免的拼写错误和语法错误&#xff0c;若有发现欢迎评论指正&#xff01;文章偏向于笔记&#xff0c;谨慎食用 目录 1. 心得 2. 论文逐段精读 2.1. Abstract 2…...

苍穹外卖--缓存菜品

1.问题说明 用户端小程序展示的菜品数据都是通过查询数据库获得&#xff0c;如果用户端访问量比较大&#xff0c;数据库访问压力随之增大 2.实现思路 通过Redis来缓存菜品数据&#xff0c;减少数据库查询操作。 缓存逻辑分析&#xff1a; ①每个分类下的菜品保持一份缓存数据…...

网站指纹识别

网站指纹识别 网站的最基本组成&#xff1a;服务器&#xff08;操作系统&#xff09;、中间件&#xff08;web容器&#xff09;、脚本语言、数据厍 为什么要了解这些&#xff1f;举个例子&#xff1a;发现了一个文件读取漏洞&#xff0c;我们需要读/etc/passwd&#xff0c;如…...

C++课设:简易日历程序(支持传统节假日 + 二十四节气 + 个人纪念日管理)

名人说:路漫漫其修远兮,吾将上下而求索。—— 屈原《离骚》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 专栏介绍:《编程项目实战》 目录 一、为什么要开发一个日历程序?1. 深入理解时间算法2. 练习面向对象设计3. 学习数据结构应用二、核心算法深度解析…...

Spring Boot + MyBatis 集成支付宝支付流程

Spring Boot MyBatis 集成支付宝支付流程 核心流程 商户系统生成订单调用支付宝创建预支付订单用户跳转支付宝完成支付支付宝异步通知支付结果商户处理支付结果更新订单状态支付宝同步跳转回商户页面 代码实现示例&#xff08;电脑网站支付&#xff09; 1. 添加依赖 <!…...

一些实用的chrome扩展0x01

简介 浏览器扩展程序有助于自动化任务、查找隐藏的漏洞、隐藏自身痕迹。以下列出了一些必备扩展程序&#xff0c;无论是测试应用程序、搜寻漏洞还是收集情报&#xff0c;它们都能提升工作流程。 FoxyProxy 代理管理工具&#xff0c;此扩展简化了使用代理&#xff08;如 Burp…...

Linux安全加固:从攻防视角构建系统免疫

Linux安全加固:从攻防视角构建系统免疫 构建坚不可摧的数字堡垒 引言:攻防对抗的新纪元 在日益复杂的网络威胁环境中,Linux系统安全已从被动防御转向主动免疫。2023年全球网络安全报告显示,高级持续性威胁(APT)攻击同比增长65%,平均入侵停留时间缩短至48小时。本章将从…...

《Offer来了:Java面试核心知识点精讲》大纲

文章目录 一、《Offer来了:Java面试核心知识点精讲》的典型大纲框架Java基础并发编程JVM原理数据库与缓存分布式架构系统设计二、《Offer来了:Java面试核心知识点精讲(原理篇)》技术文章大纲核心主题:Java基础原理与面试高频考点Java虚拟机(JVM)原理Java并发编程原理Jav…...