JavaEE进阶
文章平均质量分 91
Spring框架
遇事问春风乄
长风破浪会有时,直挂云帆济沧海
展开
-
【JavaEE进阶】 Bean的作用域与生命周期
Bean的作⽤域是指Bean在Spring框架中的某种⾏为模式.比如单例作⽤域:表⽰ Bean 在整个Spring 中只有⼀份, 它是全局共享的.那么当其他⼈修改了这个值之后,那么另⼀个⼈读取到的就是被修改的值.在Spring中⽀持6种作⽤域,后4种在Spring MVC环境才⽣效singleton:单例作⽤域prototype:原型作⽤域(多例作⽤域)request:请求作⽤域session:会话作⽤域Application: 全局作⽤域websocket:HTTP WebSocket 作⽤域简单使用如下原创 2024-05-15 21:42:10 · 771 阅读 · 27 评论 -
【JavaEE进阶】 @Transactional详解
本篇博客的将讲述 @Transactional注解的使用细节主要学习 @Transactional 注解当中的三个常见属性:rollbackFor:异常回滚属性.指定能够触发事务回滚的异常类型.可以指定多个异常类型Isolation:事务的隔离级别.默认值为 Isolation.DEFAULTpropagation:事务的传播机制.默认为Propagation.REQUIRED事务传播机制就是: 多个事务⽅法存在调⽤关系时,事务是如何在这些⽅法间进⾏传播的.原创 2024-03-09 14:09:08 · 1258 阅读 · 21 评论 -
【JavaEE进阶】Spring中事务的实现
本篇博客主要内容为以下两个方面对事务进行一个简单的介绍Spring中事务如何实现事务的概念,我相信很多人在数据库的时候已经听过和了解了,所以这里只进行简单的介绍事务是⼀组操作的集合,是⼀个不可分割的操作。事务会把所有的操作作为⼀个整体,⼀起向数据库提交或者是撤销操作请求。所以这组操作要么同时成功,要么同时失败。原创 2024-03-09 11:40:10 · 1322 阅读 · 5 评论 -
【JavaEE进阶】部署Web项目到Linux服务器
本篇博文主要内容为如何将本机的Web项目部署到Linux服务器上我们在⼯作中会涉及到几个"环境"开发环境: 开发⼈员写代码用的机器.测试环境: 测试⼈员测试程序使用的机器.⽣产环境(线上环境): 最终项⽬发布时所使⽤的机器.对稳定性要求很⾼.把程序安装到⽣产环境上,这个过程称为"部署".也叫"上线"⼀旦程序部署成功,那么这个程序就能被外网中千千万万的普通用户访问到.换句话说,如果程序有BUG,这个BUG也就被千千万万的⽤⼾看到了.原创 2024-03-05 09:26:37 · 1153 阅读 · 47 评论 -
【JavaEE进阶】 Linux搭建Java部署环境
本篇博客主要内容如下:了解Linux权限基本操作、搭建Java部署环境。原创 2024-03-05 09:26:14 · 2055 阅读 · 60 评论 -
【JavaEE进阶】 Linux常用命令
本篇博客将对Linux常⽤命令进行一个简单的介绍,以方便后续Linux的操作。原创 2024-03-04 16:21:11 · 1354 阅读 · 55 评论 -
【JavaEE进阶】使用云服务器实现Linux环境搭建
本篇博客主要包含以下三点Linux的背景知识如何使用云服务器搭建Linux环境使用终端软件连接到云服务器的Linux环境终端软件是⼀类⼯具软件,可以和远程的主机建⽴⽹络连接,从而对主机进行⼀些操作.XShellPuttyMobaXTermIterm2SecureCRT这里博主使用的是XShell。原创 2024-03-04 14:44:35 · 1112 阅读 · 44 评论 -
【JavaEE进阶】 Spring AOP源码简单剖析
前面的博客中,博主对代理模式进行了一个简单的讲解,接下来博主将对Spring AOP源码进行简单剖析,使我们对Spring AOP了解的更加深刻。原创 2024-03-02 16:18:50 · 939 阅读 · 41 评论 -
【JavaEE进阶】 代理模式
前面对Spring AOP的详细使用进行了介绍,这篇博客博主将详细讲解一下Spring AOP的原理,也就是Spring是如何实现AOP的.Spring AOP是基于动态代理来实现AOP的,动态代理又是代理模式的一种接下来我们一起来看看代理模式。原创 2024-03-02 15:56:29 · 1372 阅读 · 3 评论 -
【JavaEE进阶】 Spring AOP详解
在《【JavaEE进阶】 Spring AOP快速上手》中我们快速上手了AOP,接下来博主来详细介绍一下AOP学习内容主要分为以下三部分:Spring AOP中涉及的核心概念Spring AOP通知类型多个AOP程序的执行顺序创建⼀个注解类(和创建Class⽂件⼀样的流程,选择Annotation就可以了)@Target 标识了 Annotation 所修饰的对象范围,即该注解可以用在什么地⽅.常用取值:ElementType.TYPE:⽤于描述类、接⼝(包括注解类型)或enum声明。原创 2024-02-29 17:01:56 · 1921 阅读 · 66 评论 -
【JavaEE进阶】 Spring AOP快速上手
AOP是Aspect Oriented Programming的简称(又称为面向切⾯编程)什么是面向切面编程呢?切面就是指某⼀类特定问题,所以AOP也可以理解为面向特定方法编程.什么是面向特定方法编程呢?比如博主在前面实现的的"登录校验",就是⼀类特定问题.登录校验拦截器,就是对"登录校验"这类问题的统⼀处理.所以,拦截器也是AOP的⼀种应用.AOP是⼀种思想,拦截器是AOP思想的⼀种实现.Spring框架实现了这种思想,提供了拦截器技术的相关接⼝.原创 2024-02-29 14:00:04 · 906 阅读 · 17 评论 -
【JavaEE进阶】 @ControllerAdvice源码分析
在前面的项目开发中,我们使用了统一数据返回和统一异常的功能它们都是基于 @ControllerAdvice 注解来实现的,接下来我们将通过分析@ControllerAdvice 的源码,来了解他们的执行流程.原创 2024-02-28 14:04:39 · 992 阅读 · 27 评论 -
【JavaEE进阶】图书管理系统开发日记——捌
今天我们将对图书管理系统进行收尾工作,今天的开发任务有两个实现统一数据返回格式实现统一异常的处理。原创 2024-02-28 14:04:12 · 802 阅读 · 33 评论 -
【JavaEE进阶】 拦截器(DispatcherServlet)源码简介
上一篇博客我们使用了拦截器,那么拦截器是如何实现拦截的呢?接下来我们将从源码来看一下是如何实现拦截的。适配器模式,也叫包装器模式.将⼀个类的接⼝,转换成客⼾期望的另⼀个接⼝,适配器让原本接⼝不兼容的类可以合作⽆间.简单来说就是⽬标类不能直接使⽤,通过⼀个新类进⾏包装⼀下,适配调⽤⽅使⽤.把两个不兼容的接⼝通过⼀定的⽅式使之兼容.比如下⾯两个接⼝,本⾝是不兼容的(参数类型不⼀样,参数个数不⼀样等等可以通过适配器的⽅式,使之兼容。原创 2024-02-27 19:54:36 · 1700 阅读 · 24 评论 -
【JavaEE进阶】 图书管理系统开发日记——柒
前面我们基本实现了图书股管理系统的功能,但是我们依旧存在一个问题。就是我们不论是否登录,我们直接访问图书列表。也可以进行访问及修改而我们希望达到的效果是,必须要进行登录后才能进行一系列操作这里我们使用拦截器来完成着一系列操作拦截器是Spring框架提供的核⼼功能之⼀,主要⽤来拦截⽤⼾的请求,在指定⽅法前后,根据业务需要执⾏预先设定的代码.也就是说,允许开发⼈员提前预定义⼀些逻辑,在⽤⼾的请求响应前后执⾏.也可以在⽤⼾请求前阻⽌其执⾏.原创 2024-02-27 19:53:42 · 1141 阅读 · 21 评论 -
【JavaEE进阶】 图书管理系统开发日记——陆
年后我们紧接前面的项目继续开发,开始进行删除与批量删除的接口模块的开发。关于删除图书,我们有两种做法,一种是=物理删除,一种是逻辑删除逻辑删除:物理删除:这里由于博主在建表的时候已经预留了状态位,所以这里博主使用的是逻辑删除。逻辑删除依然是更新逻辑,我们可以直接使⽤修改图书的接⼝代码实现如下:🚩接口测试选择删除点击确定删除成功批量删除其实就是批量修改数据,代码书写也就比较简单。点击[批量删除]按钮时,只需要把复选框选中的图书的ID,发送到后端即可多个id,我们使⽤List的形式来传递参数对传原创 2024-02-14 10:43:39 · 1228 阅读 · 97 评论 -
【JavaEE进阶】 图书管理系统开发日记——伍
这次我们来实现图书管理系统的增加图书模块。原创 2024-02-04 19:37:38 · 860 阅读 · 69 评论 -
【JavaEE进阶】 图书管理系统开发日记——肆
今天我们来实现修改图书模块首先我们先来看一下,需要达到的效果点击修改,页面会显示原有图书的信息点击确认按钮后,跳转回图书列表页,相关修改会进行展示。原创 2024-02-04 19:36:52 · 865 阅读 · 45 评论 -
【JavaEE进阶】 图书管理系统开发日记——叁
在前面我们实现了用户登录的接口。现在我们来实现图书列表展示页面。创建图书表,并初始化数据MyBatis和MySQL驱动依赖已经在用户登录时已经配置过了,直接用即可首先我们先来看一下页面展示的效果在分页时,第一页就展示10条数据,第二页我们也只显示10条数据要想实现这个功能,从数据库中进⾏分⻚查询,我们要使⽤ LIMIT 关键字,格式为:limit 开始索引每⻚显⽰的条数(开始索引从0开始)通过观察与思考,我们可以发现基于前端⻚⾯的分析,得出以下结论:翻⻚请求和响应部分,我们通常封装在两个对象中,并放在m原创 2024-02-02 21:54:12 · 1215 阅读 · 36 评论 -
【JavaEE进阶】 图书管理系统开发日记——贰
前面我们基本实现了前后端交互与相应简单的逻辑,后面经过一系列的学习,我们需要对我们的代码进行优化。本篇博客我们先对我们的登录界面进行优化。原创 2024-02-02 14:36:46 · 584 阅读 · 75 评论 -
【JavaEE进阶】 MyBatis之动态SQL
动态SQL是Mybatis的强⼤特性之⼀,通过一系列标签能够完成不同条件下不同的sql拼接。接下来为大家介绍一些标签来完成sql拼接首先我们准备数据库userinfo表如下:在我们实际生活中,当我们在注册时,有时候会面临以下情况注册分为两种字段:必填字段和⾮必填字段那如果在添加⽤⼾的时候有不确定的字段传⼊,程序应该如何实现呢?这个时候就需要使⽤动态标签来判断了,⽐如添加的时候性别gender(性别)为⾮必填字段,具体实现如下我们这里先采用xml方式进行操作:接口定义如下:XML代码实现:使用测试单元原创 2024-01-28 13:22:39 · 1510 阅读 · 47 评论 -
【JavaEE进阶】 #{}和${}
{}:预编译处理,${}:字符直接替换#{}可以防⽌SQL注⼊,${}存在SQL注⼊的⻛险,查询语句中,可以使⽤#{},推荐使⽤#{}但是⼀些场景,#{}不能完成,⽐如排序功能,表名,字段名作为参数时,这些情况需要使⽤${}模糊查询虽然${}可以完成,但因为存在SQL注⼊的问题,所以通常使⽤mysql内置函数concat来完成。原创 2024-01-27 17:16:46 · 1784 阅读 · 53 评论 -
【JavaEE进阶】 数据库连接池与MySQL企业开发规范
数据库连接池负责分配、管理和释放数据库连接,它允许应⽤程序重复使⽤⼀个现有的数据库连接,⽽不是再重新建⽴⼀个.没有使⽤数据库连接池的情况:每次执⾏SQL语句,要先创建⼀个新的连接对象,然后执⾏SQL语句,SQL语句执⾏完,再关闭连接对象释放资源.这种重复的创建连接,销毁连接⽐较消耗资源使⽤数据库连接池的情况:程序启动时,会在数据库连接池中创建⼀定数量的Connection对象,当客⼾请求数据库连接池,会从数据库连接池中获取Connection对象,然后执⾏SQL,SQL语句执⾏完,再把Connection原创 2024-01-27 17:16:34 · 1128 阅读 · 9 评论 -
【JavaEE进阶】 MyBatis使用XML实现增删改查
准备数据库与相应表,映射对象请参考博主在【JavaEE进阶】MyBatis⼊⻔所使用的原始表数据如下:MyBatis XML的⽅式需要以下两步:配置数据库连接字符串和MyBatis写持久层代码。原创 2024-01-24 18:00:24 · 1523 阅读 · 68 评论 -
【JavaEE进阶】 MyBatis使用注解实现增删改查
如果mapper接⼝⽅法形参只有⼀个普通类型的参数,#{…}⾥⾯的属性名可以随便写,如:#{id}、#{value}。建议和参数名保持⼀致> 如果有多个参数,属性名一定要与参数名保持一致,当然也可以进行修改,具体方法后面会详细讲解原创 2024-01-24 15:37:35 · 1303 阅读 · 33 评论 -
【JavaEE进阶】MyBatis⼊⻔
MyBatis是⼀款优秀的持久层框架,⽤于简化JDBC的开发。MyBatis本是Apache的⼀个开源项⽬iBatis,2010年这个项⽬由apache迁移到了google code,并且改名为MyBatis。2013年11⽉迁移到Github。详细信息点我了解在上⾯我提到⼀个词:持久层持久层:指的就是持久化操作的层,通常指数据访问层(dao),是⽤来操作数据库的.简单来说MyBatis是更简单完成程序和数据库交互的框架,也就是更简单的操作和读取数据库⼯具。原创 2024-01-23 15:06:29 · 1054 阅读 · 11 评论 -
【JavaEE进阶】 Spring Boot⽇志
⽇志是程序中的重要组成部分,使⽤⽇志可以快速的发现和定位问题,Spring Boot内容了⽇志框架,默认情况下使⽤的是info⽇志级别将⽇志输出到控制台的,我们可以通过lombok提供的@Slf4j 注解和 log 对象快速的打印⾃定义⽇志.⽇志包含6个级别,⽇志级别越⾼,收到的⽇志信息也就越少,我们可以通过配置⽇志的保存名称或保存⽬录来将⽇志持久化【JavaEEj进阶】 Spring实现留言板。原创 2024-01-22 17:03:13 · 1806 阅读 · 56 评论 -
【JavaEE进阶】 关于⽇志框架(SLF4J)
⻔⾯模式(Facade Pattern)⼜称为外观模式,提供了⼀个统⼀的接⼝,⽤来访问⼦系统中的⼀群接⼝.其主要特征是定义了⼀个⾼层接⼝,让⼦系统更容易使用。原⽂:Provide a unified interface to a set of interfaces in a subsystem.Facade defines a higherlevel interface that makes the subsystem easier to use.原创 2024-01-22 14:07:26 · 1148 阅读 · 31 评论 -
【JavaEE进阶】实现验证码
Kaptcha是Google的⼀个⾼度可配置的实⽤验证码⽣成⼯具.代码:代码链接项目地址下⾯简单介绍下插件的使⽤接口一:⽣成验证码请求:响应:图片内容浏览器给服务器发送⼀个 GET /admin/captcha 这样的请求,服务器返回⼀个图⽚,浏览器显⽰在⻚⾯上接口二:校验验证码是否正确请求:/admin/checkcaptcha:⽤⼾输⼊的验证码响应:true根据⽤⼾输⼊的验证码,校验验证码是否正确true:验证成功.false:验证失败。原创 2024-01-21 17:00:29 · 1171 阅读 · 10 评论 -
【JavaEE进阶】 SpringBoot配置⽂件
计算机上有数以千计的配置⽂件,我们使⽤的绝⼤多数软件,⽐如浏览器,微信,Idea,甚⾄电脑,⼿机,都离不开配置⽂件.我们可能永远不会直接与其中的⼤部分⽂件打交道,但它们确实以不同的形式散落在我们的计算机上,⽐如C:\Users,C:\Windows⽂件夹,以及各种*.config,*.xml⽂件配置⽂件主要是为了解决硬编码带来的问题,把可能会发⽣改变的信息,放在⼀个集中的地⽅,当我们启动某个程序时,应⽤程序从配置⽂件中读取数据,并加载运⾏.使⽤配置⽂件,可以使程序完成⽤⼾和应⽤程序的交互,或者应⽤程序与其他原创 2024-01-20 12:43:23 · 1362 阅读 · 13 评论 -
【JavaEE进阶】 依赖注⼊DI详解
依赖注⼊是⼀个过程,是指IoC容器在创建Bean时,去提供运⾏时所依赖的资源,⽽资源指的就是对象.简单来说,就是把对象取出来放到某个类的属性中.在⼀些⽂章中,依赖注⼊也被称之为"对象注⼊",“属性装配”,具体含义需要结合⽂章的上下⽂来理解。原创 2024-01-19 16:00:28 · 1465 阅读 · 3 评论 -
【JavaEE进阶】 关于应用分层
在我们进行项目开发时我们如果一股脑将所有代码都放在一个文件夹下面,或者全部写在一起。这样会显得杂乱无章,而且更加不利于管理。类似公司的组织架构: 公司初创阶段,⼀个⼈⾝兼数职,既做财务,⼜做⼈事,还有⾏政.随着公司的逐渐壮⼤,会把岗位进⾏细分,划分为财务部⻔,⼈事部⻔,⾏政部⻔等.各个部⻔内部还会再进⾏细分.项⽬开发也是类似,最开始功能简单时,我们前后端放在⼀起开发,随着项⽬功能的复杂,我们分为前端和后端不同的团队,甚⾄更细粒度的团队.后端开发也会根据功能再进⾏细分.MVC就是其中的⼀种拆分⽅式.但是随着后原创 2024-01-18 17:04:10 · 1386 阅读 · 57 评论 -
【JavaEE进阶】 图书管理系统开发日记——壹
该图书管理系统,博主将一步一步进行实现。一边学习新的知识,一边对该项目进行完善。所以此时所用技术或方法不对的地方后面都会进行一系列的修改和提升,有心去的小伙伴可以跟着博主一起开始这一段旅程。关于前端相关代码的书写与修改,由于博主是搞后端的,所以博主这里就不讲解了,这里直接给出。遇事问春风乄的码云代码引入:前端界面展示:我们先实现部分功能如下:根据需求可以得知,后端需要提供两个接⼝账号密码校验接⼝:根据输⼊⽤⼾名和密码校验登录是否通过图书列表:提供图书列表信息接⼝定义图书列表展⽰字段说明这里我们使原创 2024-01-18 17:03:52 · 1123 阅读 · 15 评论 -
【JavaEEj进阶】 Spring实现留言板
获取全部留⾔全部留⾔信息,我们⽤List来表⽰,可以⽤JSON来描述这个List数据.请求:响应:JSON格式"from": "⿊猫","to": "⽩猫","message": "喵"},{"from": "⿊狗","to": "⽩狗","message": "汪"},//...浏览器给服务器发送⼀个GET /message/getList 这样的请求,就能返回当前⼀共有哪些留⾔记录.结果以 json 的格式返回过来发表新留⾔请求:body也为JSON格式。原创 2024-01-17 18:54:52 · 1783 阅读 · 54 评论 -
【JavaEE进阶】 利用Spring简单实现加法计算器和用户登录
接⼝⼜叫API(Application Programming Interface),我们⼀般讲到接⼝或者API,指的都是同⼀个东西.是指应⽤程序对外提供的服务的描述,⽤于交换信息和执⾏任务(与JavaSE阶段学习的[类和接⼝]中的接⼝是两回事).简单来说,就是允许客⼾端给服务器发送哪些HTTP请求,并且每种请求预期获取什么样的HTTP响应.现在"前后端分离"模式开发,前端和后端代码通常由不同的团队负责开发.双⽅团队在开发之前,会提前约定好交互的⽅式.客⼾端发起请求,服务器提供对应的服务.服原创 2024-01-16 12:47:42 · 1778 阅读 · 59 评论 -
【JavaEE进阶】 关于Spring mvc 响应
在博主前面写的博客 【JavaEE进阶】 Spring请求如何传递参数详解 中我们已经设置了响应数据,Http响应结果可以是数据,也可以是静态⻚⾯,也可以针对响应设置状态码, Header信息等首先我们像创建一个静态界面,创建位置如下:前端代码如下:不过这里的后端的代码和以前的代码就不一样了,想要返回一个静态界面。我们这里需要将 @RestController 改为 @Controller后端代码如下:访问结果如下在博主前面的博文中写返回数据的时候用的是 @RestController 注解,而现原创 2024-01-04 21:40:14 · 2627 阅读 · 98 评论 -
【JavaEE进阶】 Spring请求如何传递参数详解
访问不同的路径,就是发送不同的请求.在发送请求时,可能会带⼀些参数,所以我们在学习Spring的请求时,主要是学习如何传递参数到后端以及后端如何接收.下面博主会对传递参数进行一个详解,咱们主要是使⽤浏览器和Postman来模拟比如博主写了以下程序当我们运行后,用浏览器进行访问访问结果如下:注意:日志中也会进行报错。与传递单个参数一样不同的是当有多个参数时,前后端进⾏参数匹配时,是以参数的名称进⾏匹配的,因此参数的位置是不影响后端获取参数的结果如果参数⽐较多时,⽅法声明就需要有很多形参.并且后续每次原创 2024-01-02 22:51:10 · 1771 阅读 · 68 评论 -
【JavaEE进阶】 获取Cookie和Session
HTTP 协议⾃⾝是属于 "⽆状态"协议.默认情况下 HTTP 协议的客⼾端和服务器之间的这次通信,和下次通信之间没有直接的联系.但是实际开发中,我们很多时候是需要知道请求之间的关联关系的.例如登陆⽹站成功后,第⼆次访问的时候服务器就能知道该请求是否是已经登陆过了.想要了解详情的可以看博主写的【JavaEE初阶】 HTTP 请求 (Request)详解上述图中的"令牌"通常就存储在Cookie字段中.原创 2024-01-02 22:35:46 · 1380 阅读 · 23 评论 -
【JavaEE进阶】 @RequestMapping注解
@RequestMapping 是Spring Web MVC 应⽤程序中最常被⽤到的注解之⼀,它是⽤来注册接⼝的路由映射的.表⽰服务收到请求时,路径为/sayHi的请求就会调⽤hi这个⽅法的代码.路由映射:当⽤⼾访问⼀个URL时,将⽤⼾的请求对应到程序中某个类的某个⽅法的过程就叫路由映射原创 2023-12-30 17:41:28 · 1741 阅读 · 68 评论 -
【JavaEE进阶】 初识Spring Web MVC
Spring Web MVC 是基于 Servlet API 构建的原始 Web 框架,从⼀开始就包含在Spring框架中。它的正式名称“Spring Web MVC”来⾃其源模块的名称(Spring-webmvc),但它通常被称为)Spring MVC).Servlet是⼀种实现动态⻚⾯的技术.准确来讲Servlet是⼀套Java Web 开发的规范,或者说是⼀套Java Web 开发的技术标准.原创 2023-12-30 13:58:41 · 1530 阅读 · 20 评论