自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(59)
  • 收藏
  • 关注

原创 起步依赖和普通依赖

在Spring Boot项目中,起步依赖(Starters)和普通依赖(Regular Dependencies)都用于管理项目所需的库和框架,但它们在功能和使用场景上有一些重要区别。以下是对它们的详细对比:起步依赖(Starters):封装依赖:起步依赖封装了一组相关的依赖,这些依赖通常是一起使用的,例如封装了Spring MVC和Tomcat等依赖。自动配置:起步依赖通常会提供自动配置功能。Spring Boot会根据项目中添加的起步依赖自动配置相关的组件和Bean,从而减少手动配置的工作量。一致性:起

2025-06-22 13:10:36 507

原创 Spring Boot的自动装配和自动配置

自动装配是Spring框架的一个核心功能,它允许Spring自动将Bean注入到其他Bean中,从而减少显式的配置。自动装配主要通过注解(如@Autowired@Resource@Inject)来实现。自动配置是Spring Boot的一个核心功能,它允许Spring Boot根据项目的依赖和环境自动配置Spring应用。自动配置通过注解(通常包含在中)来启用。自动装配(Auto Wiring):通过注解(如@Autowired)将Bean注入到其他Bean中,减少手动配置的需要。

2025-06-21 23:30:58 344

原创 spring事务在哪些情况下会失效

throw new RuntimeException("模拟异常");throw new RuntimeException("模拟异常");throw new Exception("检查异常");throw new Exception("检查异常");// 这里会开启新事务,methodA 的事务不会影响这里。// ❌ 事务失效 - 异常被捕获,没有重新抛出。// ❌ 事务失效 - 自调用。// ❌ 事务失效 - static 方法无法被代理。// ❌ 事务失效 - final 方法无法被代理。

2025-06-20 12:43:26 457 1

原创 MultipartFile

文件的处理一般都是分为两步,第一步就是文件上传到指定文件夹,第二步是对文件进行处理。这第一步的文件上传,后端就需要用到spring提供的接口MultipartFile来进行处理,通过接口的方法transferTo (File dest)对文件进行上传。是 Spring 框架中用于处理文件上传的一个接口。它提供了多种方法来操作上传的文件,包括获取文件名、文件大小、文件内容类型、等。以下是对。

2025-06-06 17:34:13 654

原创 Bean的作用域

Singleton:默认作用域,共享实例,适用于无状态或不可变的Bean。Prototype:每次请求创建新实例,适用于有状态的Bean。Request:每次HTTP请求创建新实例,适用于与请求相关的Bean。Session:每个HTTP会话创建新实例,适用于与会话相关的Bean。:整个应用共享一个实例,适用于全局共享的Bean。:每个全局会话创建新实例,适用于Portlet应用中的全局会话管理。每种作用域都有其适用的场景,选择合适的作用域可以更好地管理Bean的生命周期和线程安全性。单例Bean。

2025-06-05 17:46:02 696

原创 @Component 和 @Bean

Component是一个通用的注解,用于标记一个类为 Spring 管理的 Bean。它是一个元注解,其他注解如@Service和都是基于@Component实现的。@Bean注解用于在配置类中定义一个 Bean。它通常用在注解的类中,用于手动定义 Bean。@Component:适用于普通的组件类,通过类路径扫描自动注册为 Bean,适用于简单的场景。@Bean:适用于配置类,通过方法返回一个对象,并将该对象注册为 Bean,适用于需要更复杂的初始化逻辑的场景。选择使用@Component还是。

2025-06-05 11:06:57 314

原创 依赖注入的注解

【代码】依赖注入的注解。

2025-06-04 17:42:45 313

原创 依赖注入-@Resource和@Autowired

Resource:是Java标准注解(JSR-250),由Java社区提出,属于Java规范的一部分,不依赖于Spring框架。它主要通过注解的方式实现依赖注入,可以标注在字段或setter方法上。@Autowired:是Spring框架特有的注解,是Spring对依赖注入功能的实现方式之一,只能在Spring项目中使用。相同点@Resource和@Autowired都可以实现依赖注入功能,都可以标注在字段或方法上。不同点@Resource是Java标准注解,按名称或类型注入;@Autowired。

2025-06-03 22:25:36 304

原创 Java的Object类

你可以定义自己的类,这些类也继承自Object。// 省略getter和setter方法// 添加一个Person对象Object类型可以表示任何类型的对象,这使得它非常灵活,但也带来了类型安全和代码可读性的问题。在实际开发中,尽量使用具体的类型来代替Object,以提高代码的类型安全性和可读性。只有在确实需要存储不同类型的数据时,才考虑使用Object类型。在Java中,非Object类型主要包括基本数据类型(primitive types)和原始类型。这些类型不是类的实例,也不继承自。

2025-05-29 16:10:53 505

原创 int和Integer的区别

int:适用于需要高性能和内存效率的场景。Integer:适用于需要将整数作为对象处理的场景,如集合操作、泛型、空值处理等。在实际开发中,根据具体需求选择合适的类型。如果不需要将整数作为对象处理,建议使用int以提高性能和内存效率。如果需要将整数作为对象处理,或者需要使用集合、泛型等特性,则使用Integer。这里本身Java的集合是没法存储非Object类的,但这里int自动装箱成了Integer对象,就可以了。

2025-05-29 16:04:43 483

原创 事务Transaction

可以通过。

2025-05-29 14:34:50 1018

原创 forward(转发)和redirect(重定向)

服务器内部将请求转发到另一个资源(如Servlet、JSP页面或其他资源)。客户端浏览器的地址栏不会发生变化。

2025-05-29 11:13:48 281

原创 CS和BS架构

CS架构:适用于需要高性能、丰富用户体验和离线支持的应用场景,如桌面应用程序和企业级应用。BS架构:适用于需要简单部署、方便更新和跨平台支持的应用场景,如Web应用程序和企业级应用。选择哪种架构取决于具体的应用需求、用户需求和开发资源。在实际开发中,也可以结合使用CS和BS架构,以充分利用各自的优势。

2025-05-22 15:31:31 908

原创 Java中实现多线程的方式

继承Thread类:简单直接,但受限于单继承。实现Runnable接口:灵活,避免单继承限制。实现Callable接口:可以返回值和抛出异常,通常与线程池一起使用。使用线程池(:提高线程复用性,减少开销。使用:支持异步编程和链式调用。使用Stream并行流:简单方便,适合集合操作。

2025-05-22 09:28:11 376

原创 接口和抽象类的区别

抽象类提供了一种方式来定义一个通用的模板,其中可以包含一些具体实现,而接口则定义了一组方法规范,但不提供实现。抽象类适用于你想要共享代码或创建一个基类,其中一些方法应该有一个共同的实现的情况。接口适用于你想要定义一个契约或规范,允许不同的类以不同的方式实现这些方法的情况。从Java 8开始,接口和抽象类之间的界限变得模糊,因为接口也可以包含方法的实现。然而,它们的核心概念和使用场景仍然有所不同。

2025-05-12 23:22:06 615

原创 switch能否作用在byte上,long上,string上

然而,这种做法并不常见,也不推荐,因为它违反了类型安全的原则,并且在。语句可以用于多种数据类型,但这些类型需要满足特定的条件。类型来实现,但这通常不推荐,因为可能会导致精度丢失。类型的值不能直接用作编译时常量表达式。来实现,但请注意这样做可能会导致精度丢失,因为。在实际编程中,如果需要对。的范围内,可以考虑使用这种转换。类型的值进行分支判断,通常会使用。标签必须是编译时常量表达式,而。语句可以对字符串进行匹配,每个。类型,如果你确实需要使用。语句,可以通过显式转换为。类型的值,可以通过将。

2025-05-12 20:49:00 178

原创 HashMap、Hashtable 和 ConcurrentHashMap

如果你的应用程序是单线程的,推荐使用HashMap,因为它性能最高。如果你的应用程序是多线程的,且对性能要求较高,推荐使用。Hashtable已经被标记为过时,不推荐在新项目中使用。希望这个表格和解释能帮助你更好地理解这三种集合的区别和适用场景!

2025-05-12 17:05:12 463

原创 object的常用方法

Object类提供的这些方法是 Java 中所有对象的基础功能,通过重写这些方法,可以实现更符合业务逻辑的行为。equals和hashCode:用于比较对象的逻辑相等性和哈希表操作。toString:用于提供对象的字符串表示,便于调试和日志记录。waitnotify和notifyAll:用于线程间的同步。clone:用于创建对象的副本。这些方法在日常开发中非常重要,建议熟悉它们的用法和注意事项。

2025-05-12 15:57:08 909

原创 关系型数据库和非关系型数据库

2025-05-12 14:25:13 225

原创 Spring Boot、Spring MVC 和 Spring 有什么区别

是Spring对Web框架的一个解决方案(Web框架实际上是用来帮我们接收Http请求,解析参数比如tomcat),提供了一个总的前端控制器Servlet,用来接收请求,然后定义了一套路由策略(url到handle的映射)及适配执行handle,将handle结果使用视图解析技术生成视图展现给前端。是一个IOC(控制反转)容器,用来管理Bean,使用依赖注入实现控制反转,降低耦合,可以很方便的整合各种框架(redis,mybatis,es....)。

2025-05-12 10:34:28 339

原创 JavaWeb, Spring, Spring Boot

JavaWeb是一个涵盖了多种技术和工具的综合性概念,提供了基础的 Web 开发能力。Spring是一个轻量级的 Java 开发框架,提供了依赖注入、面向切面编程、事务管理等功能,简化了 Java 企业级开发。是基于 Spring 框架的现代化实现,通过自动配置和简化机制,极大地提高了开发效率和应用的可维护性。在实际开发中,是目前最推荐的选择,因为它继承了 Spring 的所有功能,并通过自动配置和简化机制,极大地提高了开发效率。如果你有更具体的问题或需要进一步的示例代码,欢迎随时提问!

2025-05-11 22:05:29 1227 1

原创 cursor学生申请

2.认证:需要邮箱和学信网学籍认证pdf,邮箱用教育邮箱和普通邮箱(如qq邮箱)都可以,但教育邮箱一般会通过快一点。1.进入cursor学生认证界面:点进cursor官网,修改域名结尾为students进入。需要通过学校申请教育邮箱,然后注册cursor账号,再登录申请。更新了,现在只能用.edu教育邮箱。3.国家没有china了,修改教程。4.学籍验证报告获取。

2025-05-08 09:05:58 3446 3

原创 前后端开发---分离 和 不分离开发

前端:HTML/CSS/JS框架(如React、Vue)后端:服务器端语言(如Java、Python、Node.js)通信:通过HTTP/HTTPS API接口。:前端和后端代码混合,后端直接生成HTML页面,耦合度高,适合小型项目,开发流程简单,但扩展性和用户体验较差。:前端和后端独立开发,通过API接口通信,耦合度低,适合大型项目,用户体验好,扩展性强。:前端可独立优化,支持单页面应用(SPA),页面加载快,交互流畅。:后端直接生成页面,数据处理在服务器端完成,减少前端代码暴露风险。

2025-05-07 14:53:41 698

原创 若依定时任务

立即执行:就是比如任务失败了,拉了5次任务执行,任务重启后,就立即执行五次。执行策略是当每次任务重启,选择如何恢复我们之前没执行的任务。把任务的package路径,加入到白名单里面,不然报错。执行一次:任务重启后,就执行一次。放弃执行:任务重启后,不执行。1.新增任务-调用方法。调用方法引用如图所示,2.定时任务白名单配置。

2025-04-30 11:32:46 216

原创 Cookies,Session,Token

Cookies适合简单的状态管理,但安全性较低。Session适合需要存储大量用户状态信息的场景,但服务器压力较大。Token适合现代的Web应用和API接口,尤其是分布式系统,具有高安全性和可扩展性。在实际开发中,可以根据具体需求选择合适的机制,也可以将它们组合使用以达到最佳效果。

2025-04-27 16:41:34 624

原创 array和list在sql中的foreach写法

在MyBatis中,`<foreach>`标签用于处理集合或数组类型的参数,以便在SQL语句中动态生成`IN`子句或其他需要遍历集合的场景。以下是`array`和`list`在SQL中的`<foreach>`写法总结。需要注意就两点。

2025-04-11 16:00:18 395

原创 数据库同时插入多条数据,提升性能

同时向数据库插入数据,List<Waypoints> waypoints插入的是waypoints列表,里面有300多条内容,这样一次次重复插入,太慢了,要等半分钟多,

2025-04-07 10:21:44 153

原创 获取新插入数据的id––@Options(useGeneratedKeys = true, keyProperty = “fpId“)

但一直报错,原因是flightPlansMapper.insertUploadFlightPlans(newflightPlans);返回的都是int类型的数字,是插入了几条数据。我这里用FlightPlans 实体类接收,就不行。还有一个问题就是在service实现类我本来是这样写的,我想先插入航线信息,然后根据新增的航线信息,获取到新的id,然后根据航线id插入航线对应的点的数据。注解,你可以在插入记录后获取数据库生成的主键值,并将其用于插入相关的。后来发现,插入后,可以直接获取id,

2025-04-02 11:24:13 198

原创 上传文件,并解压提取到数据库

这个是这次需要解压的文件里的内容,需要插入数据库。

2025-04-02 11:19:37 24

原创 HailerInfo和HailerInfoDto

通过将deptName放在 DTO 中,你可以保持HailerInfo实体类的简洁,并且可以灵活地处理前端需要的额外信息。这种做法符合前后端分离的架构,也使得代码更加清晰和可维护。

2025-03-31 09:42:30 559

原创 Java集合类型总结

**用途**:提供通用的集合操作方法,如`add`、`remove`、`contains`等。- **`Concurrent Collections`**:线程安全的集合,适合多线程环境。- **用途**:通过`Map.entrySet()`可以获取`Map`中所有键值对的集合。- `LinkedList`:实现了`Queue`接口,可以作为队列使用。- `CopyOnWriteArrayList`:线程安全的`List`。- **特点**:`Map`中键值对的表示形式,用于遍历`Map`中的键值对。

2025-03-30 23:40:13 848

原创 在SQL中进行多表查询 和 在Java代码中循环查询

适用于查询逻辑相对固定且对性能要求较高的场景。

2025-03-26 10:35:37 904

原创 ref和reactive,const和function,ref({})和ref([])

如果你需要创建一个响应式的原始值或对象,并且希望在访问时使用.value属性,那么使用ref。如果你需要创建一个响应式的嵌套对象,并且希望直接访问属性,那么使用reactive。在实际应用中,根据数据结构和需求选择合适的响应式 API 是非常重要的。例如,对于简单的数据(如计数器),可以使用ref;而对于复杂的嵌套对象(如用户信息),可以使用reactive。const用于声明只读的常量,通常与响应式API一起使用来定义响应式状态。function用于声明函数,用于定义组件的方法、计算属性、侦听器等。

2025-03-25 21:31:27 696

原创 Mybatis和JDBC

来来来。

2025-03-24 20:43:32 773

原创 前端、后端和数据库的数据类型问题

这是因为某些情况下,可以类型转换,或者正常使用,但最好还是保持前端、后端和数据库的数据类型一致,以避免类型转换问题和数据一致性问题。:如果 JSON 中的值的类型与类字段的类型不匹配,后端框架会尝试进行类型转换。一开始json里的值没有数据类型,类里的对应字段是什么类型,传进去后就是什么类型,:后端框架会根据类中定义的字段类型来解析 JSON 数据,并将值存储到类对象中。而在我的数据库里面,我的status为int类型,却依然可以成功运行,根据json的键找到对应的字段,通过键,把值传递到类对象里,

2025-03-19 09:55:42 381

原创 int类型默认值问题

而int属性默认值为0,就导致,前端虽然没有数据,但到后端,新建Reimbursement的reimbursement对象,userId就直接为0.结果发现是这里,Reimbursement类里的userId字段的属性,我写的是int。打断点也发现,确实,reimbursement对象里的userId显示为0。一开始建表给user_id设置了默认值,取消后,还是 userId=0。这个项目报销页面,可以看到只传递了,分页数据,没用其他任何数据。但在后端居然显示,user_id有数据。

2025-03-18 17:18:21 213

原创 若依字典dict

el-select v-model="queryParams.status" placeholder="请选择报销状态" clearable><el-select v-model="form.status" placeholder="请选择报销状态"><el-table-column label="报销状态" align="center" prop="status">所以在代码生成里面,显示类型修改为下拉框,字典类型修改为 “预算类型”因为是字典,不只一个数据,要有下拉框。

2025-03-17 16:05:00 426

原创 若依权限管理

比如:用户没新增权限,v-hasPermi="['college:project:add']"就为flase,用户的这个界面就没有新增按钮。在角色管理修改菜单权限,是最常见的,通过勾选对应菜单,可以改变不同角色左侧菜单栏的显示情况。比如我想让,不同用户登录,有的可以点击项目名称链接查看项目信息,其他就是正常显示。修改菜单权限里对增删改查按钮的勾选,在对应角色对应页面就会相应的显示和隐藏。修改角色的权限,当然不只按钮权限,角色获取的权限数组就会发生改变,修改权限范围,就可以修改部门权限。可以给用户添加部门。

2025-03-14 09:51:45 421

原创 大模型(LLM)与智能体(Agent)

LLM 是一种基于深度学习的模型,专门用于理解和生成自然语言文本。它通过在海量文本数据上进行训练,学习语言的模式和规律。

2025-03-11 16:56:01 418

原创 java集合框架

1. **Collection接口**:是所有集合类的根接口,主要有两个子接口:List和Set。- **LinkedList**:基于链表实现,适合频繁的插入和删除操作。- **ArrayList**:基于动态数组实现,支持快速随机访问。- **TreeMap**:基于红黑树实现,按键的自然顺序或指定的比较器排序。- **HashMap**:基于哈希表实现,允许null键和null值。- **HashSet**:基于哈希表实现,插入和查找速度快。- **TreeSet**:基于红黑树实现,支持有序存储。

2025-03-10 14:50:47 203

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除