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编程的开源库 比如:
| 用脚手架增加就行了
|
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依赖:如果中央库和其他镜像找不到包, 可以访问下面的网址找替代包 <!-- Maven Repository: Search/Browse/Explore (mvnrepository.com) -->spring-boot版本号3.2.51.无需配置驱动,有内置数据库驱动 2.能自动扫描配置类。b…...

【Docker】docker部署lnmp和搭建wordpress网站
环境准备 docker:192.168.67.30 虚拟机: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#装箱拆箱是怎么回事
代码如下: int i 123; object o i; // Boxing int j (int)o; // Unboxing 缺点: 当装箱和拆箱发生时,该技术允许将值类型视为对象。虽然非常有益,但它们会带来性能开销。值类型和引用类型之间的转换过多可能会导致垃圾回收…...

JavaEE 初阶篇-深入了解 Junit 单元测试框架和 Java 中的反射机制(使用反射做一个简易版框架)
🔥博客主页: 【小扳_-CSDN博客】 ❤感谢大家点赞👍收藏⭐评论✍ 文章目录 1.0 Junit 单元测试框架概述 1.1 使用 Junit 框架进行测试业务代码 1.2 Junit 单元测试框架的常用注解(Junit 4.xxx 版本) 2.0 反射概述 2.1 获…...
人力资源管理新视野:挖掘员工潜力,共筑卓越未来
在21世纪的商业环境中,企业的成功不再仅仅依赖于资本、技术和市场策略,而更多地依赖于其人力资源的有效管理。人力资源管理的新视野正致力于挖掘员工的潜力,为企业创造持续的价值,共筑卓越的未来。 一、员工潜力的挖掘 员工是企业…...
rust语言tokio库spawn, blocking_spawn等的使用
目录 tokio的spawn以及spawn_blocking的使用tokio::task::spawn方法解析tokio::task::spawn_blocking()方法解析 时间会遗忘一切 最后更新时间2024.04.29 tokio版本: tokio的spawn以及spawn_blocking的使用 tokio::task::spawn方法解析 tokio的实现原理以及源码…...

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

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

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

spring高级篇(九)
boot的执行流程分为构造SpringApplication对象、调用run方法两部分 1、Spring Boot 执行流程-构造 通常我们会在SpringBoot的主启动类中写以下的代码: 参数一是当前类的字节码,参数二是main的args参数。 public class StartApplication {public static…...
用wordpress建跨境电商独立站的5大优势
免费和开源 WordPress是一个免费的开源内容管理系统,用户可以自由下载、安装和使用,无需支付版权费用或订阅费用。开源特性也意味着用户可以根据自己的需求修改和定制代码,或者使用其他开发者提供的插件和主题来扩展和美化网站。 易用和灵活…...

Windows中安装的PostgreSQL 数据库如何重启
1. 使用Windows服务管理器 打开“运行”对话框(按WinR键)。输入services.msc并按回车,这将打开服务列表。在服务列表中找到PostgreSQL服务。它通常命名为“PostgreSQL”后面跟着版本号和实例名称,例如“PostgreSQL 13 - mydb”。…...

Remix框架实现 SSR
SSR SSR是一种网页渲染方式,它与传统的客户端渲染(CSR)相对,在日常的项目中我们更多是使用 CSR 的方式进行前端分离开发,渲染会在浏览器端进行。然而在SSR中,当用户请求一个网页时,服务器将生成…...
如何快速开发项目,提高开发效率
文章目录 一、问题描述二、问题解决1.需求分析2.架构设计3.技术选型4.正式开发 一、问题描述 有很多小伙伴在开发一个项目的时候,总是需要很长时间,效率很低,其实本质是没有掌握开发项目的关键和技巧 我下面列举一些问题,不知道…...

面试笔记——多线程使用场景
线程池使用场景(CountDownLatch, Future) CountDownLatch CountDownLatch(闭锁/倒计时锁)用来进行线程同步协作,等待所有线程完成倒计时(一个或者多个线程,等待其他多个线程完成某件…...
02.0 基于Verilog控制LED灯每秒钟闪烁一次
本段代码是为Verilog初学者提供的一个名为led_blink简单实例Verilog模块,其功能是控制6个LED灯同步闪烁,每秒钟闪烁一次。 本例代码用于理解时序逻辑的概念,理解多个always模块完全并行执行的概念,讲授时可以与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 使用场景 当需要刚刚插入数据库的数据对应的新增主键时,通过配置xml文件,使数据库返回新增主键id,并把主键id与类参数对应 02 涉及配置 注解TableId(type IdType.AUTO):在类主键id通过配…...

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

UE5 学习系列(三)创建和移动物体
这篇博客是该系列的第三篇,是在之前两篇博客的基础上展开,主要介绍如何在操作界面中创建和拖动物体,这篇博客跟随的视频链接如下: B 站视频:s03-创建和移动物体 如果你不打算开之前的博客并且对UE5 比较熟的话按照以…...

BCS 2025|百度副总裁陈洋:智能体在安全领域的应用实践
6月5日,2025全球数字经济大会数字安全主论坛暨北京网络安全大会在国家会议中心隆重开幕。百度副总裁陈洋受邀出席,并作《智能体在安全领域的应用实践》主题演讲,分享了在智能体在安全领域的突破性实践。他指出,百度通过将安全能力…...

12.找到字符串中所有字母异位词
🧠 题目解析 题目描述: 给定两个字符串 s 和 p,找出 s 中所有 p 的字母异位词的起始索引。 返回的答案以数组形式表示。 字母异位词定义: 若两个字符串包含的字符种类和出现次数完全相同,顺序无所谓,则互为…...
【python异步多线程】异步多线程爬虫代码示例
claude生成的python多线程、异步代码示例,模拟20个网页的爬取,每个网页假设要0.5-2秒完成。 代码 Python多线程爬虫教程 核心概念 多线程:允许程序同时执行多个任务,提高IO密集型任务(如网络请求)的效率…...

select、poll、epoll 与 Reactor 模式
在高并发网络编程领域,高效处理大量连接和 I/O 事件是系统性能的关键。select、poll、epoll 作为 I/O 多路复用技术的代表,以及基于它们实现的 Reactor 模式,为开发者提供了强大的工具。本文将深入探讨这些技术的底层原理、优缺点。 一、I…...
python报错No module named ‘tensorflow.keras‘
是由于不同版本的tensorflow下的keras所在的路径不同,结合所安装的tensorflow的目录结构修改from语句即可。 原语句: from tensorflow.keras.layers import Conv1D, MaxPooling1D, LSTM, Dense 修改后: from tensorflow.python.keras.lay…...

Python Ovito统计金刚石结构数量
大家好,我是小马老师。 本文介绍python ovito方法统计金刚石结构的方法。 Ovito Identify diamond structure命令可以识别和统计金刚石结构,但是无法直接输出结构的变化情况。 本文使用python调用ovito包的方法,可以持续统计各步的金刚石结构,具体代码如下: from ovito…...
Python Einops库:深度学习中的张量操作革命
Einops(爱因斯坦操作库)就像给张量操作戴上了一副"语义眼镜"——让你用人类能理解的方式告诉计算机如何操作多维数组。这个基于爱因斯坦求和约定的库,用类似自然语言的表达式替代了晦涩的API调用,彻底改变了深度学习工程…...

自然语言处理——文本分类
文本分类 传统机器学习方法文本表示向量空间模型 特征选择文档频率互信息信息增益(IG) 分类器设计贝叶斯理论:线性判别函数 文本分类性能评估P-R曲线ROC曲线 将文本文档或句子分类为预定义的类或类别, 有单标签多类别文本分类和多…...

Linux 下 DMA 内存映射浅析
序 系统 I/O 设备驱动程序通常调用其特定子系统的接口为 DMA 分配内存,但最终会调到 DMA 子系统的dma_alloc_coherent()/dma_alloc_attrs() 等接口。 关于 dma_alloc_coherent 接口详细的代码讲解、调用流程,可以参考这篇文章,我觉得写的非常…...