- 博客(64)
- 收藏
- 关注
原创 Spring统一功能处理
新建interceptor文件夹@Component@Override//判断是否登录=null){//通过}else {//没登录新建config文件夹@Autowired@Override.addPathPatterns("/**") //"/**"表示拦截所有.excludePathPatterns("/user/login") //除了登录//除了注册。
2023-08-21 14:01:18
647
原创 Spring事务和事务传播机制
当UserLogService和UserService和Controller都有@Transactional, 会默认把UserLogService和UserService事务合并到Controller的事务。Propagation.NESTED: 如果当前存在事务,则创建一个事务作为当前事务的嵌套事务来运行;. 即创建一个新的事务,如果当前存在事务,则把当前事务挂起, 不用他的事务, 用自己新的事务.对于上面的例子, B,C被加入到A事务, 如果C事务执行失败, 代表整个事务失败, 则会回滚。
2023-08-21 14:00:05
211
原创 认识Redis
Redis 缓存穿透是指在使用缓存系统(如 Redis)时,恶意或者恶意构造的请求导致缓存无法命中,从而导致请求直接访问后端存储系统,对后端系统造成压力,甚至可能引发性能问题。Redis 缓存雪崩是指在某个时间段内,缓存中的大量数据同时失效或过期,导致大量请求直接访问后端存储系统,从而造成后端系统负载剧增,可能导致系统性能问题甚至崩溃。Redis 缓存击穿是指一个非常热门的缓存项在某个时间点突然失效,而此时又有大量的请求同时访问这个缓存项,导致请求直接访问后端存储系统,造成后端系统负载剧增。
2023-08-21 13:59:00
624
原创 认识Junit
表示当前方法是一个测试方法(不需要main来执行)@TestSystem.out.println("测试用例1");@TestSystem.out.println("测试用例2");
2023-08-21 13:57:50
627
原创 个人论坛项目测试报告
这是一个在线论坛系统,它基于 Spring 框架,采用了前后端分离的设计理念。网站为用户提供了一系列丰富多样的功能。首先,您可以轻松地注册和登录系统,创建属于您自己的个人账户,以便更好地参与讨论和交流。此外,网站还为您提供了站内私信功能,让您能够与其他用户一对一地进行私密交流,分享想法和意见。论坛系统的帖子列表功能将帮助您更轻松地浏览所有的帖子,找到您感兴趣的话题。您可以随时发布新的帖子,与他人分享您的想法,也可以对其他人的帖子进行回复,促进交流与互动。
2023-08-20 18:31:16
187
原创 七大排序内容
新建interceptor文件夹//判断是否登录 HttpSession session = request . getSession(false);if(session!= null) {//通过 return true;} else {//没登录 response . setStatus(401);} } }//判断是否登录 HttpSession session = request . getSession(false);if(session!= null) {
2023-08-09 23:37:40
631
原创 SpringAOP介绍/用法/原理
proxyTargetClass默认为false, 表示使用JDK动态代理织入增强. true就用CGLIB, false如果未实现接口用CGLIB,实现了接口用JDK.
2023-07-31 16:28:46
940
原创 MyBatis使用方法
MyBatis是⼀款优秀的持久层框架, 它⽀持⾃定义 SQL、存储过程以及⾼级映射. MyBatis去除了⼏乎所有的JDBC代码以及设置参数和获取结果集的⼯作.MyBatis可以通过简单的XML或注解来配置和映射原始类型、接⼝和Java POJO为数据库中的记录。
2023-07-27 22:00:06
567
原创 SpringBoot
需要以value=key的形式配置, value用小写字母,单词之间用** .** 连接使用方法先在配置文件里添加配置使用@Value("{ }`, 那么会把引号里的值直接赋给value代表null, 双引号会解析内容, 单引号不会是一个工具,
2023-07-22 17:03:17
153
原创 Spring-core
框架相当于从小作坊到工厂的升级, 小作坊什么都要自己做, 工厂是组件式装配, 特点是高效.就好比开个餐厅,自己弄的话很麻烦, 需要考虑很多, 框架是加盟, 全部都由别人弄好, 自己经营框架更加易用,简单且高效。
2023-07-22 17:01:45
228
原创 JVM简单介绍
JVM是Java虚拟机, java的程序都运行在JVM中, 也是一种规范. 使用可以查看安装的Java的信息, 其中可以看到下面的信息.就是其中的一个实现。
2023-07-13 16:06:04
1741
1
原创 HTTP协议
是一种超文本传输协议, 应用层协议HTTP 往往是基于传输层的 TCP 协议实现的. (HTTP1.0, HTTP1.1, HTTP2.0 均为TCP, HTTP3 基于 UDP 实现) 目前我们主要使用的还是 HTTP1.1 和 HTTP2.0 . 当前课堂上讨论的 HTTP 以 1.1 版本为主. 我们平时打开一个网站, 就是通过 HTTP 协议来传输数据的.
2023-07-11 12:36:09
227
原创 HTML介绍
抽象方法int read()读取一个字节的数据,返回-1代表已经完全读完了抽象方法int read(byte[] b)最多读取b.length字节的数据到b中,返回实际读到的数量;-1代表以及读完了抽象方法int read(byte[] b,int off,int len)最多读取len - off字节的数据到b中,放在从off开始,返回实际读到的数量;-1代表以及读完了抽象方法void close()关闭字节流构造方法FileInputStream(File file)
2023-07-09 14:13:31
198
原创 Java中的反射以及使用方法
在程序运行阶段, 动态获取一个类中的属性或者方法, 把这种机制成为反射机制. 可以说, 没有反射就没有Java的任何框架。
2023-05-24 23:27:25
722
2
原创 Java文件操作与IO
抽象方法int read()读取一个字节的数据,返回-1代表已经完全读完了抽象方法int read(byte[] b)最多读取b.length字节的数据到b中,返回实际读到的数量;-1代表以及读完了抽象方法int read(byte[] b,int off,int len)最多读取len - off字节的数据到b中,放在从off开始,返回实际读到的数量;-1代表以及读完了抽象方法void close()关闭字节流构造方法FileInputStream(File file)
2023-05-21 15:26:21
549
1
原创 【LeetCode572】另一棵树的子树
检查该树和subRoot树是否相等,相等就是true。不然的话再看看左右子树有没有包含subRoot树(而。对于两树是否相等,可查看LeetCode100。若其中一个为空, 不符合条件。若两树都是空,则符合条件。左右子树是否和subRoot相等)
2023-05-14 22:48:14
57
原创 【LeetCode226】翻转二叉树
若根为空 或者 只有一个结点,则不用进行操作。对于左右子树的翻转,则交给递归处理。借助node交换左右子树。
2023-05-14 22:42:12
177
原创 【LeetCode110】平衡二叉树
根为空, 肯定平衡绝对值超出范围,不平衡左右子树交给递归处理新建height()获取书高度根为空,树高0否则树高为1+左右子树高度最大值。
2023-05-14 22:39:08
48
原创 【LeetCode101】是否为对称二叉树
新建isMirror方法判断传入的两个树是不是镜像相同。若传入两个根值不同, 不是镜像相同。若传入两个树都为空,那么镜像相同。若树为空,或者只有一个根节点,那肯定是镜像相同。若其中一个是空, 则不镜像相同。剩下的左右子树交给递归处理。剩下的交给isMirror()
2023-05-14 22:36:52
39
原创 【LeetCode1】两数之和
函数使用了哈希表来保存已经扫描过的数字及其对应的索引。在遍历数组时,对于当前数字nums[i],用表示目标值和当前数字之差,如果哈希表中已经存在该差值,说明之前已经遍历过一个数字,其值与该差值相等,因此可以直接返回这两个数字的索引组成的数组。如果目前尚未找到符合条件的两个数字,则将当前数字及其索引加入到哈希表中,即,方便之后继续查找。
2023-04-29 21:23:13
76
原创 【LeetCode 剑指offer31】栈的压入弹出序列
输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如,序列 {1,2,3,4,5} 是某栈的压栈序列,序列 {4,5,3,2,1} 是该压栈序列对应的一个弹出序列,但 {4,3,5,1,2} 就不可能是该压栈序列的弹出序列。
2023-04-29 21:13:26
73
原创 【LeetCode150】逆波兰表达式求值
遍历字符串,遇到数字入栈,遇到符号取出前面两个元素进行运算,结果入栈(注意减法和除法被除数和除数,被减数和减数的区别)可以自定义个函数判断当前字符是不是数字。
2023-04-29 20:57:36
62
原创 【LeetCode225】用队列实现栈
入栈,要保证新入队列的元素在队首.那么就要入队之后,把该元素之前所有的元素挪到队尾去.于是可以循环操作,把前面的元素出队,同时再重新入队.这样就保证了新元素在队首,旧元素在队尾.新元素都首先入辅助队列q2.然后让之前所有的旧元素补充在它后面(循环的内容).然后q2存了真正的元素,交换q1和q2的引用(借助q3)设定q1这个引用时真正存元素的队列,q2这个引用是辅助操作(因为q1,q2引用的对象会一直变化)因为栈是先入后出,所以用队列实现的时候,要保证每次新入栈的元素,在队列的头位置。
2023-04-29 20:29:14
58
原创 【LeetCode232】用栈实现队列
请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(push、pop、peek、empty):实现 MyQueue 类:void push(int x) 将元素 x 推到队列的末尾int pop() 从队列的开头移除并返回元素int peek() 返回队列开头的元素boolean empty() 如果队列为空,返回 true;
2023-04-29 20:07:31
943
原创 【LeetCode20】有效的括号
或者整个过程结束,栈不为空,则说明左右括号数量不匹配。要是出栈元素和前一个元素不匹配则是括号匹配不合法.遇到左括号入栈,遇到右括号出栈.本体可使用栈的结构完成.
2023-04-29 19:51:50
50
原创 [04]MySQL索引与事务
为了提高查询效率而使用一种数据结构把数据组织起来,例如字典的索引对于非主键表中的主键默认自动创建索引如果一张表里没有主键,MySQL会为每一行生成一个唯一的字段,并用这个字段当做索引①一个索引包含多个字段就叫②索引本身占用磁盘空间更新和删除操作同时也会更新索引,建的太多也会有负担当使用组合索引(例如sn,name),在查询时where里面必须,不然就没用上索引查询.尽管MySQL会自己优化反过来当select还包括除了索引列的其他列,那么会使用id到主键索引中查询完整结果.这个现象叫做回表查询。
2023-04-24 16:00:58
715
3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人