- 博客(118)
- 收藏
- 关注
原创 Spring事务(1)
事务是一组操作的集合,是一个不可分割的操作。事务会把所有的操作作为一个整体,一起向数据库提交或者是撤销操作请求。所以这组操作要么同时成功,要么同时失败。
2024-07-23 16:29:07
1127
40
原创 Spring AOP(2)原理(代理模式和源码解析)
/目标对象,即被代理的对象@Override//代理增强内容System.out.println("我是中介,开始代理");//通过反射调用被代理类的方法//代理增强内容System.out.println("我是中介,结束代理");/*** JDK动态代理*///创建⼀个代理类:通过被代理类、被代理实现的接⼝、⽅法调⽤处理器来创建//目标对象/*** loader:加载我们的被代理类的ClassLoad* interfaces:要实现的接口。
2024-07-22 11:07:04
1636
24
原创 Spring AOP(1)
AOP 是 Spring 框架 的第二大核心(第一大核心是 IoC)。AOP 的全称Aspect Oriented Programming(面向切面编程)。什么是面向切面编程呢?切面就是指某一类特定问题,所以 AOP 也可以理解为 面向特定方法编程。什么是面向特定方法编程呢?比如之前图书馆管理系统的 “登录校验”,就是一类特定问题。登录校验拦截器,就是对 “登录校验” 这类问题的统一处理。所以,拦截器也是 AOP 的一种应用。AOP 是一种思想,拦截器是 AOP 思想的一种实现。
2024-07-19 15:37:29
1627
31
原创 SpringBoot统一功能处理
统一处理包含了拦截器、统一数据返回格式、统一异常处理。1、拦截器的实现主要分两部分(1)、定义拦截器(实现HandlerInterceptor 接口@Component注解。(2)、配置拦截器(实现WebMvcConfigurer 接口@Configuration注解。其中@Configuration注解包含 @Component注解2、统一数据返回格式通过@ControllerAdvice + ResponseBodyAdvice接口来实现。3、统一异常处理使用。
2024-07-12 17:22:53
2296
38
原创 SpringBoot拦截器
拦截器是 Spring 框架提供的核心功能之一,主要用来拦截用户的请求,在指定的方法前后,根据业务需要执行预先设定的代码。也就是说,允许开发人员提前预定义一些逻辑,在用户的请求、响应前后执行。也可以在用户请求前阻止其执行。在拦截器当中,开发人员可以在应用程序中做一些通用性的操作,比如通过拦截器来拦截前端发来的请求,判断Session中是否有登录用户的信息,如果有 -> 就放行,如果没有 -> 就进行拦截。如图:这种情况就类似我们去银行办理业务,
2024-07-08 19:47:45
2326
29
原创 图书管理系统(持久化存储数据以及增添新功能)
数据库表是应用程序开发中的一个重要环节,数据库表的设计往往会决定我们的应用需求是否能顺利实现,甚至决定我们的实现方式。分析我们的需求,图书管理系统相对来说比较简单,只有两个实体:用户和图书,并且用户和图书之间没有关联关系。图书表有哪些字段,也是参考需求页面(通常不是一个页面决定的,而是要对整个系统进行全面分析观察后定的)。所以不用这里每一个接口都要增添一个强制登录的功能,但已经写好了代码的接口,逐一添加会耗时好力。强制登录是指不让用户在没登录的情况下访问某一列表,会使用到session,
2024-07-04 16:10:56
996
22
原创 留言板——增添功能(持久化存储数据,使用MyBatis)
当数据发生更新操作时,自动把该列的值设置为now(),now() 可以替换成其他获取时间的标识符,比如:CURRENT_TIMESTAMP(),LOCALTIME()不允许同时存在两个列,其中一列设置了DEFAULT CURRENT_TIMESTAMP,另一个设置了ON UPADTE CURRENT_TIMESTAMP。重启服务器后,再次访问改页面,数据也不会丢失,因为我们把数据放进数据库里了,TIMESTAMP 和 DATETIME都支持自动更新,且可以有多列。一个表只能有一列设置自动更新。
2024-05-31 10:21:02
1772
48
原创 Mybatis进阶——动态SQL(1)
目录一、 <if> 标签二、<trim> 标签三、<where> 标签四、<set> 标签五、<foreach> 标签六、<include> 标签 动态SQL 是Mybatis的强大特性之一,能够完成不同条件下的不同SQL拼接,可以参考官方文档:动态 SQL_MyBatis中文网准备工作: SQL语句: yml配置内容: xml文件内容如下: model代码如下:一、<if> 标签 在注册用户的时
2024-05-29 18:05:44
1778
32
原创 Mybatis入门——其他查询操作和数据库连接池(4)
数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个。没有使用数据库连接池的情况每次执行SQL语句,要先创建一个新的连接对象,然后执行SQL语句,SQL语句执行完,再关闭连接对象释放资源,这种重复创建连接、消耗连接的操作,比较消耗资源。使用数据库连接池的情况。
2024-05-28 18:39:22
895
23
原创 MyBatis入门——MyBatis XML配置文件(3)
MyBatis的开发有两种方式:1、注解 2、XML。使用MyBatis的注解方式,主要是来完成一些简单的增删改查功能。,也就是将SQL语句写在XML配置文件中。MyBatis XML开发的方式需要以下两步:1、配置数据库连接字符串和MyBatis。2、写持久层代码。
2024-05-23 21:00:11
1118
31
原创 MyBatis入门——MyBatis的基础操作(2)
目录一、打印日志二、参数传递常见错误:使用对象接受小结:三、增(Insert)返回主键四、删(Delete)五、改(Update)六、查(Select)1、起别名2、结果映射3、开启驼峰命名(推荐)准备工作: 存在的表如下:(表名:userInfo) 代码如下: 实体类UserInfo类: UserController类: UserServer类: UserInfoMapper接口:
2024-05-22 19:07:03
1122
24
原创 MyBatis入门(1)
1MyBatis是一块优秀的持久层框架,用于简化JDBC的开发。2MyBatis本是Apache的一个开源项目iBatis,2010年这个项目由Apache迁移到了google code,并且改名为MyBaits。2013年11月迁移到Github。3官网MyBatis中文网。4持久层:指的就是持久化操作的层,通常指数据访问层(dao),是用来操作数据库的。简单来说,MyBatis是更简单完成程序和数据库交互的框架,也就是更简单的操作和读取数据库工具。
2024-05-21 16:17:23
1132
25
原创 Spring Boot日志
之前在学习JavaSe部分,使用System.out.println打印日志,观察、发现问题所在,追踪问题源头,在学习Spring的阶段,也经常需要根据控制台的日志来分析和定位问题。随着项目的复杂度提升,我们对日志的打印也有了更高的需求,不仅仅是定位排查问题。比如:需要记录一些用户操作记录(一些审计公司会要求),也可能需要使用日志来记录用户的一些喜好,把日志持久化,后续进行数据分析等。
2024-05-13 22:08:17
1380
34
原创 综合性练习(验证码案例)
(1)生成验证码请求URL:/captcha/getCaptchaparam:无return:图片(响应)(2)校验验证码请求URL:/captcha/checkreturn:true / false(响应)这里验证码的实现,是使用Hutool提供的小工具来实现的。Hutool是一个Java工具包类库,对文件、流、加密解密、转码、正则、线程、XML等JDK方法进行封装,组成各种Util(静态)工具类。
2024-05-11 09:53:47
1219
4
原创 Spring Boot 配置文件
因为Tocmat默认端口号是8080,所以我们程序访问时的端口号也是8080,但是如果8080端口号已经被其他进程占有了,这时候我们就可以通过配置文件来修改服务器的端口号,Spring Boot在创建项目时,就已经帮我们创建了配置文件。可以看到,冒号后面有加空格的,前面的key值是橙色的,而冒号后面没有加空格的,依旧是白色的,还报红线了(专业版会报红线,社区版不会)。例如上面的例子,就是把 /n 保持它原本的含义,没有对它进行转义,保持字符串原本的内容。让用户通过简单的几行代码,就可以完成数据库的访问。
2024-05-09 10:03:41
1859
37
原创 图书管理系统调整——修改注解(引入IoC、DI思想)
这里修改的还是比较简单,我们知道,而这里的BookController和UserController的注解不变 ,也不能改变,如果修改了,就可能导致URL没办法访问到了。因为BookService类是处理业务逻辑的,所以加注解好一点,这个也表示是业务逻辑层的代码,程序员可以直接看出来;而BookDao类是数据层,也叫持久化层,因为还没学MyBatis,所以使用的是mock的方式创建数据,因为是和数据相关的,所以注解好一点,这个注解也代表是数据相关的代码。
2024-05-08 10:09:34
570
3
原创 Spring IoC&DI(3)—DI详解
简单来说,Spring是一个开发应用框架;那是什么样的框架呢?有这么几个标签:轻量级、一站式、模块化,其目的是用于简化企业级应用程序开发。Spring的主要功能管理对象,以及对象之间的依赖关系,面向切面编程、数据库事务管理、数据访问、web框架支撑等等。但是Spring具备高度可开发性,并不强制依赖Spring,开发者可以自由选择Spring的部分或者全部,Spring可以无缝继承第三方框架,比如数据访问框架(Hibernate、JPA等等),web框架(如:Struts、JSF等等)。
2024-05-07 14:49:23
1220
38
原创 Spring IoC&DI(2)—IoC详解
对于同一个类,定义多个对象(多个方法使用@Bean注解);比如多数据源的场景,类是同一个,但配置是不同的,指向不同的数据源。@Component@Bean@Bean定义了多个对象的话,我们根据类型获取对象,获取的是哪个对象呢?//获取Spring上下文对象//从Spring中获取对象//使用对象执行结果,可以看到,报错了:可以看到,报错信息显示期望只有一个匹配,结果发现两个:userInfo1,userInfo2。从报错信息中,可以看出来,
2024-05-06 20:17:38
4341
28
原创 Spring IoC&DI(1)—入门
容器是用来容纳某种物品的(基本)装置。——来自:百度百科。生活中的水杯、垃圾桶、冰箱等等这些都是容器,之前接触过的容器:List/Map->数据存储容器、Tomcat->Web容器。IoC是Spring的核心思想,也是常见的面试题,那么什么是IoC呢?其实IoC在前面的代码练习已经使用过了,比如在类上面添加 @RestController 和 @Controller 注解,就是把这个对象交给Spring管理,Spring框架启动时,就会加载该类。——把对象交给Spring管理,这就是IoC思想。
2024-05-05 19:03:27
1688
30
原创 应用分层和企业规范
阿里开发手册中,关于工程结构部分,定义了常见工程的应用分层结果,如图:应用分层 是一种软件开发设计思想,它将应用程序分成N个层次,这N个层次分别负责各自的职责,多个层次之间协同提供完整的功能。根据项目的复杂度,把项目分成三层,四层或者更多层。其中常见的MVC设计模式,就是应用分层的一种具体体现。1、学校Spring MVC,其实就是学习各种Web开发需要用到的注解:a、@RequestMapping:路由映射b、@RequestParam:后端参数重命名。
2024-05-04 18:11:05
2207
26
原创 综合性练习(后端代码练习4)——图书管理系统
请求参数:userName,password返回结果(响应):成功 / 失败 (String类型,成功返回:" " (空字符串);失败返回失败原因)
2024-05-01 23:10:46
4344
34
原创 综合性练习(后端代码练习3)——留言板
param(参数):from,to,sayreturn:true / false(成功或失败)我们发现,这些get和set方法是有规律的,有很多重复性的操作,那么我们能不能把它们进行封装呢?让代码更简洁呢?
2024-05-01 14:21:00
1116
3
原创 综合性练习(后端代码练习2)——用户登录
校验接口:请求路径:/user/login请求方式:POST接口描述:校验账号密码是否正确参数名类型是否必须备注userNameString是校验的账号passwordString是校验的密码响应数据:响应内容:true //账号密码验证成功false //账户密码验证失败。
2024-04-30 18:11:11
1435
7
原创 综合性练习(后端代码练习1)——加法计算器
约定 “前后端交互接口” 是进行Web开发中的关键环节。接口又叫 API(Application Programming Interface),我们一般讲到接口或者API,指的都是同一个东西。这里的接口是指应用程序对外提供的服务的描述,用于交换信息和执行任务(与JavaSE阶段学习的 [类和接口] 中的接口不一样,两个不同的概念)。简单来说,就是允许客户端给服务器发送哪些 HTTP 请求,并且每种请求预期获取什么样的HTTP响应。
2024-04-30 10:18:37
987
34
原创 Spring Web MVC入门(3)——响应
404错误码,因为该类是注解@Controller修饰的,访问该类的方法默认返回的是视图,程序就会认为需要返回视图(returnData方法没加@ResponseBody注解),然后根据内容进行查找文件,但查询不到,也就是路径不存在,所以报错404。如果一个类里面,既要返回数据,又要返回视图,那么就使用注解@Controller添加在该类上,然后需要返回数据的方法添加注解@ResponseBody,返回视图的方法就不同管它。
2024-04-28 21:22:05
2620
16
原创 Spring Web MVC入门(2)——请求
访问不同的路径,就是发送不同的请求。在发送请求时,可能会带一些参数,所以学习Spring的请求,主要是学习如何传递参数到后端,以及后端如何接收。传递参数,这里主要使用Postman来模拟,浏览器也可以,但是Postman会更方便。后端开发人员无需过度关注如何传递参数,了解即可,实际开发中以Postman测试为主。比如餐厅里的厨师,不需要关注用户是在店里下单还是外卖平台下单,只需要知道如何接收订单,根据订单做出对应的菜肴即可。
2024-04-27 15:33:10
2916
34
原创 Spring Web MVC入门(1)
官方对于 SPring Web MVC 的描述是这样的:翻译为中文:Spring Web MVC是基于 Servlet API构建的原始 Web 框架,从一开始就包含在Spring框架中。它的正式名称“Spring Web MVC”来自其源模块的名称(Spring-webmvc),但它通常被称为“Spring MVC”。什么是Servlet呢?
2024-04-25 07:51:19
2774
24
原创 第一个Spring Boot程序
官方()的介绍:可以看到,Spring 让 Java程序更加快速、简单和安全。Spring对应速度、简单些和生产力的关注,使其成为世界上最流行的Java框架。Spring官方提供了很多开源的项目,覆盖范围从Web开发到大数据,Spring发展到了今天,已经形成了自己的生态圈。我们在开发时,也倾向于使用Spring官方提供的技术,来解决对应的问题。上面这些项目,都是基于Spring Framework来进行开发的。Spring Framework存在配置多,入门难的问题。
2024-04-23 18:29:35
2578
41
原创 Maven
官网对Maven的描述:翻译过来就是:Maven是一个项目管理工具。基于 POM (Project Object Model,项目对象模型)的概念,Maven 可以通过一小段描述信息来管理项目的构建,报告和文档的项目管理工具软件。大白话:Maven是一个项目管理工具,通过 pom.xml文件的配置获取jar包,而不用手动去添加 jar包。我们通过短短几行代码,就可以把依赖 jar包 放在项目里,具体是如何做的呢?这个代码,我们称之为 “坐标”,也就是唯一的。
2024-04-22 15:33:50
1821
29
原创 综合案例(前端代码练习):猜数字和表白墙
我们想在文本框输入我们想猜的数字,点击猜后下面就会提示我们猜的数字是否正确,以及大了还是小了。点击提交,留言就会显示到下方。
2024-04-21 14:39:26
1751
28
原创 JQuery快速入门
W3C 标准给我们提供了一系列的函数,让我们可以操作:网页内容、网页结构、网页样式。但是原生的JavaScript提供的API操作DOM元素时,代码比较繁琐,所有我们。,于2006年发布。它封装JavaScript常用的功能代码,提供了简洁而强大的选择器和DOM操作。使用JQuery可以轻松地选择和操作HTML元素,从而减少了开发人员编写的代码量,提高了开发效率,它提供的API易于使用且兼容众多浏览器,这让诸如 HTML 文档遍历和操作、事件处理、动画和Ajax操作更加简单。
2024-04-21 10:14:08
1134
26
原创 JavaScript快速入门
目录一、初始JavaScript1、JavaScript是什么2、JavaScript快速上手3、引入方式二、基础语法1、变量2、数据类型3、运算符三、JavaScript对象1、数组(1)数组的定义a、使用 new 关键字创建b、使用字面量方式创建(常用)(2)数组操作2、函数(1)语法格式(2)关于参数个数(3)函数表达式3、对象(1)使用 字面量 创建对象[常用](2)使用 new Object 创建对象(3)使用 构造函数 创建对象 JavaScript(简称JS),是一个脚本语言,解
2024-04-16 13:21:51
5811
44
原创 CSS快速入门
CSS(Cascading Style Sheet),层叠样式表,用于控制页面的样式。CSS 能够对网页中元素位置的排版进行像素级精确控制,实现美化页面的效果,能够做到页面的样式和结构分离。CSS可以理解为 “东方四大邪术” 之化妆术,可以对页面的展示进行 “化妆”。
2024-04-14 13:23:10
2740
38
原创 HTML快速入门
html 的子标签是 head 和 body,相反的,head 和 body 的父标签是 html,而title 的父标签是 head,head 的子标签是 title,head 和 body 则是兄弟关系。target 属性是可选的,如果不加这个属性,默认_self(在当前页面打开href里写入的地址),如果是_blank则用新的标签页打开。在HTML中,段落、换行符、空格都会失效,如果需要分成段落,需要专门的标签,p标签表示是一个段落。结果如下,可以点击,但不会出现任何效果,需要搭配JS使用。
2024-04-13 20:05:34
2125
30
原创 JVM的简单介绍
在刚学习Java时,老师就会向我们介绍三个东西:JDK(Java开发工具包)、JRE(Java运行时环境)、JVM(Java虚拟机)。这里介绍一下,不同的CPU,上面支持的指令是不同的,市场CPU也有很多不同的架构(ARM、x86.....),而且不同的系统,生成的可执行程序也不同(Windows的是 PE格式,Linux 是ELF格式);像C++这样的语言是直接编译成二进制的机器指令,如果要换个平台执行,就要重新编译,适配另一个机器CPU架构的二进制的机器指令。
2024-04-08 21:58:43
3082
41
原创 网络原理 - HTTP / HTTPS(5)——https协议
证书是公证机构提供的,证书其实是一个结构化数据里面会包含很多属性,但也是字符串形式的,证书会包含一系列的信息,例如:服务器的主域名、服务器生成的公钥、证书有效期、公证机构信息、证书签名等等。引入证书就是为了让客户端这边,能够识别出,收到的公钥是不是服务器传过来的。这个证书是第三方提供的所以服务器这边要去第三方申请一个证书(提交材料会包含服务器的地址、域名等等),第三方这边同意后就会给给服务器颁发一个证书。
2024-04-06 16:46:59
2476
45
原创 网络原理 - HTTP / HTTPS(4)——构造http请求
,大家就自行在网上找资源吧,下载完后,我们按照指引,往下next。postman官网下载安装登录测试详细教程-CSDN博客第一次安装,需要进行登录,我们注册一个账户。如图:点击Workspaces,这里指的是工作空间,我们点击创建新的工作空间,如图:选择一些选项,如图:创建完后,点击这里的+号,如图:就可以构造http请求了,如图:这里每个标签页,都是一个构造http请求的配置页面,上面的send按钮,是发送请求到目标服务器的按钮。
2024-04-05 09:37:15
1693
32
原创 网络原理 - HTTP / HTTPS(3)——http响应
因为商业产品往往是很严肃的,即使对产品本身逻辑没有什么影响,但指不定哪天,就会背刺你一下,就这么一下,很可能会导致我们丢饭碗;因为以前的漫游费很贵,要是在不同省份就会换成当前省份的手机号码,但是换了手机号后,朋友亲人怎么知道我换了手机号,要一个一个电话打给他们吗?浏览器会把重定向的结果记录下来,后续再次访问,就会直接访问重定向的目标地址,不必再多跳转一次了(如果是临时重定向,就不太方便缓存)指的是我明明访问的是A网站,但A网站会告诉你,你去访问B网站,浏览器就会自动跳转到B网站。
2024-04-04 09:35:04
1727
26
原创 网络原理 - HTTP / HTTPS(2)——http请求
当我们登录gitte时(第一次登录,或者把浏览器这边已经存在的Cookie删除),第一次登录时,请求里面是没有Cookie的,当服务器返回响应时,响应报头里面就会包含Set-Cookie(有三个),重点关注第三个,里面会包含一个信息:gitee-session-n 这样的属性值,属性值里面是一串很长的加密之后的信息,这个信息相当于用户当前的身份标识(令牌),如果要访问gitte的其他页面,就会带着这个令牌,进行访问,返回带着你这个用户信息的网页响应。但是有些网页确实要访问呢?
2024-04-03 13:00:27
1937
28
原创 网络原理 - HTTP / HTTPS(1)——http请求
fiddler 是抓包工具,抓包工具本质上就是 “代理程序,能够获取网络上传输的数据,并且显示出来,给程序员提供一些参考。其中有一种叫高大全wireshark,可以抓各种协议的数据包(TCP、UDP、IP、以太网等等),因为涵盖的范围比较广,所以使用起来会更复杂,但fiddler是一种专注于HTTP的抓包,相对于wireshark的使用更简单,而我们目前也是在学习HTTP。
2024-03-29 21:54:28
2599
46
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人