自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【JavaEE进阶】部署Web项目到Linux服务器

我们在⼯作中会涉及到几个"环境"开发环境: 开发⼈员写代码用的机器.测试环境: 测试⼈员测试程序使用的机器.⽣产环境(线上环境): 最终项⽬发布时所使⽤的机器.对稳定性要求很⾼.把程序安装到⽣产环境上,这个过程称为"部署".也叫"上线"⼀旦程序部署成功,那么这个程序就能被外网中千千万万的普通用户访问到.换句话说,如果程序有BUG,这个BUG也就被千千万万的⽤⼾看到了.部署过程⾄关重要,属于程序开发中最重要的⼀环.⼀旦部署出现问题,极有可能导致严重的事故(服务器不可⽤之类的).

2025-03-22 22:34:15 1193

原创 【JavaEE进阶】Linux搭建Java部署环境

注意:apt实际上在可⽤软件包的数据库上⼯作.如果数据库没有更新,系统将不知道是否有更新的软件包可 ⽤.这就是为什么在安装任何Linux系统之后,第⼀件事应该是更新apt数据库。注意:此处安装的是OpenJDK,OpenJDK是⼀个开源版本的JDK,和Oracle官⽅的JDK略有差别.此处我们就使⽤OpenJDK即可.安装OracleJDK⽐较⿇烦。如果弄乱了程序的配置,希望从系统中完全清除它的痕迹再重新开始,可以使⽤apt purge,通常使⽤ apt remove 就⾜够了。

2025-03-22 22:33:43 741

原创 【JavaEE进阶】Linux常用命令

本篇博客将对Linux常⽤命令进行一个简单的介绍,以方便后续Linux的操作。

2025-03-21 20:07:21 895

原创 【JavaEE进阶】使用云服务器搭建Linux环境

本篇博客主要包含以下三点Linux的背景知识如何使用云服务器搭建Linux环境使用终端软件连接到云服务器的Linux环境终端软件是⼀类⼯具软件,可以和远程的主机建⽴⽹络连接,从而对主机进行⼀些操作.XShellPuttyMobaXTermIterm2SecureCRT这里博主使用的是XShell。

2025-03-17 22:07:10 1176

原创 【JavaEE进阶】@Transactional 详解

本篇博客的将讲述 @注解的使用细节rollbackFor:异常回滚属性.指定能够触发事务回滚的异常类型.可以指定多个异常类型Isolation:事务的隔离级别.默认值为 Isolation.DEFAULTpropagation:事务的传播机制.默认为Propagation.REQUIRED事务传播机制就是: 多个事务⽅法存在调⽤关系时,事务是如何在这些⽅法间进⾏传播的.比如有两个⽅法A,B都被 @Transactional 修饰,A⽅法调⽤B⽅法。

2025-03-16 22:12:39 1495

原创 【JavaEE进阶】Spring事务

本篇文章主要内容为以下两个方面对事务进行一个简单的介绍Spring中事务如何实现事务的概念,我相信很多人在数据库的时候已经听过和了解了,所以这里只进行简单的介绍事务是⼀组操作的集合,是⼀个不可分割的操作。事务会把所有的操作作为⼀个整体,⼀起向数据库提交或者是撤销操作请求。所以这组操作要么同时成功,要么同时失败。

2025-03-16 22:12:22 1087 1

原创 【JavaEE进阶】Spring AOP原理 - 代理模式

前面对Spring AOP的详细使用进行了介绍,这篇博客博主将详细讲解一下Spring AOP的原理,也就是Spring是如何实现AOP的.Spring AOP是基于动态代理来实现AOP的,动态代理又是代理模式的一种接下来我们一起来看看代理模式。

2025-03-11 00:01:32 992

原创 【JavaEE进阶】Spring AOP详解

AOP是Aspect Oriented Programming的简称(又称为面向切⾯编程)什么是面向切面编程呢?切面就是指某⼀类特定问题,所以AOP也可以理解为面向特定方法编程.什么是面向特定方法编程呢?比如在前面文章实现的的"登录校验",就是⼀类特定问题.登录校验拦截器,就是对"登录校验"这类问题的统⼀处理.所以,拦截器也是AOP的⼀种应用.AOP是⼀种思想,拦截器是AOP思想的⼀种实现.Spring框架实现了这种思想,提供了拦截器技术的相关接⼝.

2025-03-09 23:56:40 1049

原创 【JavaEE进阶】图书管理系统 - 捌

今天我们将对图书管理系统进行收尾工作,今天的开发任务有两个实现统一数据返回格式实现统一异常的处理。

2025-03-07 22:05:35 1184

原创 【JavaEE进阶】拦截器(DispatcherServlet)源码简介

上一篇博客我们使用了拦截器,那么拦截器是如何实现拦截的呢?接下来我们将从源码来看一下是如何实现拦截的。适配器模式,也叫包装器模式.将⼀个类的接⼝,转换成客⼾期望的另⼀个接⼝,适配器让原本接⼝不兼容的类可以合作⽆间.简单来说就是⽬标类不能直接使⽤,通过⼀个新类进⾏包装⼀下,适配调⽤⽅使⽤.把两个不兼容的接⼝通过⼀定的⽅式使之兼容.比如下⾯两个接⼝,本⾝是不兼容的(参数类型不⼀样,参数个数不⼀样等等可以通过适配器的⽅式,使之兼容。

2025-03-05 23:50:34 1090

原创 【JavaEE进阶】图书管理系统 - 柒

前面我们基本实现了图书股管理系统的功能,但是我们依旧存在一个问题。就是我们不论是否登录,我们直接访问图书列表。也可以进行访问及修改而我们希望达到的效果是,必须要进行登录后才能进行一系列操作这里我们使用拦截器来完成着一系列操作拦截器是Spring框架提供的核⼼功能之⼀,主要⽤来拦截⽤⼾的请求,在指定⽅法前后,根据业务需要执⾏预先设定的代码.也就是说,允许开发⼈员提前预定义⼀些逻辑,在⽤⼾的请求响应前后执⾏.也可以在⽤⼾请求前阻⽌其执⾏.

2025-03-03 23:57:31 1077

原创 【JavaEE进阶】图书管理系统 - 陆

接前面的项目继续开发,开始进行删除与批量删除的接口模块的开发。

2025-03-01 16:24:06 468

原创 【JavaEE进阶】图书管理系统 - 伍

这次我们来实现图书管理系统的增加图书模块。

2025-02-28 01:19:29 537

原创 【JavaEE进阶】图书管理系统 - 肆

今天我们来实现修改图书模块首先我们先来看一下,需要达到的效果1. 点击修改,页面会显示原有图书的信息2. 点击确认按钮后,跳转回图书列表页,相关修改会进行展示。

2025-02-26 22:18:39 597

原创 【JavaEE进阶】图书管理系统 - 叁

在前面我们实现了用户登录的接口。现在我们来实现图书列表展示页面。

2025-02-25 21:35:21 1115

原创 【JavaEE进阶】图书管理系统 - 贰

前面我们基本实现了前后端交互与相应简单的逻辑,后面经过一系列的学习,我们需要对我们的代码进行优化。我们先对我们的登录界面进行优化。

2025-02-22 15:50:23 655

原创 【JavaEE进阶】MyBatis之动态SQL

当然也是不行的,当没有对username进行传参的话,那么password的前面也会拼接一个逗号(,password),也是会报错的。需求:传⼊的⽤⼾对象,根据属性做where条件查询,⽤⼾对象中属性不为 null 的,都为查询条件.如username为"a",则查询条件为where username=“a”那如果在添加⽤⼾的时候有不确定的字段传⼊,我们就需要通过拼接的方式来传参,需要这个字段才进行拼接,不需要这个字段就不拼接。但是不一定是完整的SQL,可以是SQL中的某个字段;

2025-02-20 00:41:30 1196

原创 【JavaEE进阶】数据库连接池

程序启动时,会在数据库连接池中创建⼀定数量的Connection对象,当客⼾请求数据库连接池,会从数据库连接池中获取Connection对象,然后执⾏SQL,SQL语句执⾏完,再把Connection归还给连接池.:每次执⾏SQL语句,要先创建⼀个新的连接对象,然后执⾏SQL语句,SQL语句执⾏完,再关闭连接对象释放资源.这种重复的创建连接,销毁连接⽐较消耗资源。2. 表必备三字段:id,create_time,update_time。⽬前⽐较流⾏的是Hikari,Druid。运行结果:​​​​​​​。

2025-02-19 20:41:41 883

原创 【JavaEE进阶】#{}和${}

{}:预编译处理,${}:字符直接替换#{}可以防⽌SQL注⼊,${}存在SQL注⼊的⻛险,查询语句中,可以使⽤#{},推荐使⽤#{}但是⼀些场景,#{}不能完成,⽐如排序功能,表名,字段名作为参数时,这些情况需要使⽤${}模糊查询虽然${}可以完成,但因为存在SQL注⼊的问题,所以通常使⽤mysql内置函数concat来完成。

2025-02-19 20:18:29 1273

原创 【JavaEE进阶】MyBatis通过XML实现增删改查

1. 注解2. XML上⾯学习了注解的⽅式,接下来我们学习XML的⽅式使⽤Mybatis的注解⽅式,主要是来完成⼀些简单的增删改查功能.如果需要实现复杂的SQL功能,建 议使⽤XML来配置映射语句,也就是将SQL语句写在XML配置⽂件中.1. 配置数据库连接字符串和MyBatis2. 写持久层代码。

2025-02-19 00:54:09 860

原创 【JavaEE进阶】MyBatis通过注解实现增删改查

首先我们准备相应的表如下:application.yml配置文件内容如下:UserInfo类代码如下:​​​​​​​以下所有操作都是在该接口进行操作:所有测试单元代码都是在如下代码里面完成的:在学习这些操作之前,我们先来学习MyBatis⽇志打印在Mybatis当中我们可以借助⽇志,查看到sql语句的执⾏、执⾏传递的参数以及

2025-02-18 01:14:27 1531

原创 【JavaEE进阶】MyBatis入门

在应⽤分层学习时,我们了解到web应⽤程序⼀般分为三层,即:Controller、Service、Dao.之前的案例中,请求流程如下:浏览器发起请求,先请求Controller,Controller接收到请求之后,调⽤ Service进⾏业务逻辑处理,Service再调⽤Dao,但是Dao层的数据是Mock的,真实的数据应该从数据库中读取.我们学习MySQL数据库时,已经学习了JDBC来操作数据库,但是JDBC操作太复杂了1. 创建数据库连接池DataSource。

2025-02-17 20:53:52 1081

原创 【JavaEE进阶】Spring Boot日志

⽇志对我们来说并不陌⽣,从JavaSE部分,我们就在使⽤ System.out.print 来打印⽇志了.通过打 印⽇志来发现和定位问题,或者根据⽇志来分析程序的运⾏过程.在Spring的学习中,也经常根据控制台 的⽇志来分析和定位问题.随着项⽬的复杂度提升,我们对⽇志的打印也有了更⾼的需求,⽽不仅仅是定位排查问题。

2025-02-16 20:22:52 1295

原创 【JavaEE进阶】验证码案例

咱们课程中验证码的实现,使⽤Hutool提供的⼩⼯具来实现Hutool是⼀个Java⼯具包类库,对⽂件、流、加密解密、转码、正则、线程、XML等JDK⽅法进⾏封 装,组成各种Util⼯具类Hutool是⼀个⼩⽽全的Java⼯具类库,通过静态⽅法封装,降低相关API的学习成本,提⾼⼯作效 率,使Java拥有函数式语⾔般的优雅,让Java语⾔也可以"甜甜的"Hutool官⽹:Hutool参考⽂档:Hutool源码:我们不需要知道这个工具中实现这些功能的代码是如何实现的,我们只需要调用它的API即可。

2025-02-15 23:22:06 1085

原创 【JavaEE进阶】Spring Boot文件配置

计算机上有数以千计的配置⽂件,我们使⽤的绝⼤多数软件,⽐如浏览器,微信,Idea, 甚⾄电脑,⼿机,都离不开配置⽂件.我们可能永远不会直接与其中的⼤部分⽂件打交道,但它们确实以不同的形式散落在我们的计算机上,⽐如C:\Users,C:\Windows⽂件夹,以及各种*.config,*.xml⽂件。配置⽂件主要是为了解决硬编码带来的问题,把可能会发⽣改变的信息,放在⼀个集中的地⽅,当我们启动某个程序时,应⽤程序从配置⽂件中读取数据,并加载运⾏。并且上述文件名字不能有错,否则配置无效。

2025-02-13 21:23:51 1169

原创 【JavaEE进阶】依赖注入 DI详解

依赖注⼊是⼀个过程,是指IoC容器在创建Bean时,去提供运⾏时所依赖的资源,⽽资源指的就是对象.在上⾯程序案例中,我们使⽤了 @Autowired 这个注解,完成了依赖注⼊的操作简单来说,就是把对象取出来放到某个类的属性中.在 ⼀些⽂章中,依赖注⼊也被称之为"对象注⼊","属性装配",具体含义需要结合⽂章的上下⽂来理解。

2025-02-11 22:59:07 1188

原创 【JavaEE进阶】IoC详解

这和每个省/市都有⾃⼰的⻋牌号是⼀样的. ⻋牌号都是唯⼀的,标识⼀个⻋辆的.但是为什么还需要设置不同的⻋牌开头呢. ⽐如陕西的⻋牌号就是:陕X:XXXXXX,北京的⻋牌号:京X:XXXXXX,甚⾄⼀个省不同的县区也 是不同的,⽐如西安就是,陕A:XXXXX,咸阳:陕B:XXXXXX,宝鸡,陕C:XXXXXX,⼀样。此时再去获取这两个对象就会报错:​​​​​​​大概意思需要找唯一的,但是找到了两个,这里的userInfo和userInfo2就是bean的名称,那么bean的名称也就是方法名;

2025-02-11 20:21:05 1611

原创 【JavaEE进阶】Spring IoC

容器是⽤来容纳某种物品的(基本)装置。⽣活中的⽔杯,垃圾桶,冰箱等等这些都是容器.我们想想,之前课程我们接触的容器有哪些?List/Map->数据存储容器Tomcat->Web容器那么Spring也作为一个容器,装的是对象(Bean)这里的Bean跟在Java基础语法中是不一样的,在Javase中Bean指的是实体类,比如Student类在JavaEE进阶中,Bean指的是Spring管理的对象。

2025-02-10 20:10:15 1170 1

原创 【JavaEE进阶】应用分层

也基于此,咱们接下来学习应⽤分层应用分层是⼀种软件开发设计思想,它将应用程序分成N个层次,这N个层次分别负责各⾃的职责,多个层次之间协同提供完整的功能.根据项⽬的复杂度,把项⽬分成三层,四层或者更多层.常⻅的MVC设计模式,就是应⽤分层的⼀种具体体现类似公司的组织架构公司初创阶段,⼀个⼈⾝兼数职,既做财务,⼜做⼈事,还有⾏政.随着公司的逐渐壮⼤,会把岗位进⾏细分,划分为财务部⻔,⼈事部⻔,⾏政部⻔等.各个部⻔内部还会 再进⾏细分.

2025-01-26 20:37:52 1154

原创 【JavaEE进阶】图书管理系统 - 壹

根据需求可以得知,后端需要提供两个接⼝账号密码校验接⼝:根据输⼊⽤⼾名和密码校验登录是否通过图书列表:提供图书列表信息登录接口:type:post参数:json/普通参数userName,password(这里我们定义为普通参数)返回结果:验证成功返回" ",验证失败返回"用户名或者密码错误"图书列表接口:type:无要求参数:无返回结果:返回图书列表,List<BookInfo>

2025-01-26 19:16:41 1131

原创 【JavaEE进阶】Spring留言板实现

1. 提交(发布留言,保存到后端)请求:type: post参数:Json响应:操作成功/失败true/false2. 获取留言(从后端获取留言信息,显示到列表)注意:在接口设计中,尽量保持单一原则,例如不要当前接口做了提交留言又做返回留言全部留⾔信息,我们⽤List来表⽰,可以⽤JSON来描述这个List数据.请求:type:get响应:返回Json。

2025-01-24 22:06:16 1719

原创 【JavaEE进阶】实现简单的加法计算器和用户登录

该功能设计两个页面,所以这里我们定义两个接口在上述的加法计算器中,前端是通过最原生的from表单来提交的,接下来换一种方式。AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML)。AJAX 不是新的编程语言,而是一种使用现有标准的新方法。AJAX 最大的优点是在不重新加载整个页面的情况下,可以与服务器交换数据并更新部分网页内容。AJAX 不需要任何浏览器插件,但需要用户允许 JavaScript 在浏览器上执行。

2025-01-17 01:22:29 2213

原创 【JavaEE进阶】SpringMVC 响应

在我们前⾯的代码例⼦中,我们返回的是数据,并不是页面Http响应结果可以是数据,也可以是静态页面,也可以针对响应设置状态码,Header信息等.

2025-01-15 21:34:17 1716 1

原创 【JavaEE进阶】获取Cookie/Session

HTTP协议自身是属于 "⽆状态"协议.例如登陆⽹站成功后,第⼆次访问的时候服务器就能知道该请求是否是已经登陆过了.​上图中输入用户名和密码,点击登录之后,将这个登录请求发送给服务器,这个请求携带着用户名密码信息发送给服务器,服务器将用户名和密码进行存储(session),生成一个sessionId(sessionId对应session信息)返回给客户端,存于cookie中,访问其他页面时就可以携带cookie进行访问。上述图中的"令牌"通常就存储在Cookie字段中. ⽐如去医院挂号。

2025-01-08 22:21:04 1638

原创 【JavaEE进阶】Spring传递请求参数

如果参数传递不一致,比如后端需要接收一个String类型,你传了19,此时Spring就会帮我自动的转过去,若转不了,例如后端需要接收一个Integer类型,你传了一个字符串,就会报400,并且后端会有错误日志。后续在设计接口时,建议都使用包装类型。有时候我们在设计完接口之后,在里面设计的参数只是当时够用,但是到后面发现此时的参数不够用了,还需要在添加一些参数,一种方式是直接在方法中直接添加,但是一般不建议,有一个开闭原则,也就是说在工作中,当前接口已经上线了,尽量不要去修改,不确定会不会造成影响。

2024-12-25 23:16:00 1209

原创 【JavaEE进阶】@RequestMapping注解

我们说springmvc现在更加合适的是叫springweb,既然是Web框架,那么当⽤⼾在浏览器中输⼊了url之后,我们的SpringMVC项⽬就可以感知到⽤⼾ 的请求,并给予响应.咱们学习SpringMVC,重点也就是学习如何通过浏览器和⽤⼾程序进⾏交互.1. 建⽴连接:将⽤⼾(浏览器)和Java程序连接起来,也就是访问⼀个地址能够调⽤到我们的 Spring 程序。2. 请求:⽤⼾请求的时候会带⼀些参数,在程序中要想办法获取到参数,所以请求这块主要是获取参数 的功能.

2024-12-24 22:47:08 1406

原创 【JavaEE进阶】初始Spring Web MVC

官⽅对于SpringMVC的描述是这样的:Spring WebMVC是基于ServletAPI构建的原始Web框架,从⼀开始就包含在Spring框架中。它的 正式名称“SpringWebMVC”来⾃其源模块的名称(Spring-webmvc),但它通常被称为Spring MVC我们可以看到spring-webmvc是由spring-boot-starter-web引的,所以在上篇文章中所创建的项目可以认为是一个springboot项目,也是一个springwebmvc项目,springwebmvc就是其中的

2024-12-20 23:01:36 1136

原创 【JavaEE初阶】JavaScript相应的WebAPI

前面学习的 JS 分成三个大的部分ECMAScript: 基础语法部分DOM API: 操作页面结构BOM API: 操作浏览器WebAPI 就包含了 DOM + BOM前面学的 JS 基础语法主要学的是ECMAScript, 这让我们建立基本的编程思维. 相当于练武需要先扎马步.但是真正来写一个更加复杂的有交互式的页面, 还需要 WebAPI 的支持. 相当于各种招式APIAPI 是一个更广义的概念. 而 WebAPI 是一个更具体的概念, 特指 DOM+BOM。

2024-12-18 22:46:19 1284

原创 【JavaEE初阶】JavaScript基础语法 — 贰

JavaScript的函数也是对象,可以有属性,可以赋值给一个变量,可以放在数组里作为元素,可以作为其他对象的属性,什么都可以做,别的对象能做的它能做,别的对象不能做的它也能做。这不就是一等公民的地位嘛。当eat方法被调用的时候,先在自己的方法列表中寻找, 如果找不到,就去找原型中的方法, 如果原型中找不到, 就去原型的原型中去寻找…C++ / Java 等静态类型的语言对于类型的约束和校验比较严格. 因此通过 子类继承父类, 并重写父类的方法的方式 来实现多态的效果.这样的方式来新增属性.

2024-12-18 22:24:18 871

原创 【JavaEE初阶】JavaScript基础语法 — 壹

如果一个变量没有被初始化过, 结果就是 undefined, 是 undefined 类型undefined 和字符串进行相加, 结果进行字符串拼接undefined 和数字进行相加, 结果为 NaN。

2024-12-17 23:18:36 930

空空如也

空空如也

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

TA关注的人

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