02 2023 档案

摘要:1 快速入门 在项目中直接引入Spring Security的依赖 <!--springSecurity--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-secur 阅读全文
posted @ 2023-02-28 20:09 程长新 阅读(425) 评论(0) 推荐(0) 编辑
摘要:spring事务的原理是AOP,进行了切面增强,那么失效的根本原因是这个AOP不起作用了,常见情况如下: 抛出检查异常导致事务不能正确回滚 spring事务默认只对非检查异常进行回滚,即运行时异常。检查异常就是程序编译时必须处理的。 解决办法:可以通过配置@Transcational的属性rollb 阅读全文
posted @ 2023-02-27 19:29 程长新 阅读(417) 评论(0) 推荐(0) 编辑
摘要:报错背景 我的项目中已经集成了activiti,正在集成SpringSecurity。 现在使用注解@EnableGlobalMethodSecurity(prePostEnabled = true)开启SpringSecurity的方法级安全 启动项目时报如下错误: APPLICATION FAI 阅读全文
posted @ 2023-02-24 10:54 程长新 阅读(1127) 评论(0) 推荐(1) 编辑
摘要:底层数据结构,1.7和1.8有什么区别 1.7:数组+链表 1.8:数组+(链表 | 红黑树) 为什么要用红黑树 当链表过长时查询效率太低,树化可以提高查询效率 为什么不是一开始就用树,而是达到一定条件再树化 TreeNode占用空间比普通链表占用空间大 树化阈值为何是8 为了让树化概率更小,因为正 阅读全文
posted @ 2023-02-19 11:48 程长新 阅读(16) 评论(0) 推荐(0) 编辑
摘要:#{}是预编译处理,是占位符;${}是字符串替换、是拼接符。 mybatis在处理#{}时,会将sql中的#{}替换为?,调用PreparedStatement来赋值,可以有效防止SQL注入。 在处理${}时,就是简单将${}替换为变量的值 ,调用Statement来赋值。 阅读全文
posted @ 2023-02-19 11:28 程长新 阅读(28) 评论(0) 推荐(0) 编辑
摘要:@JsonInclude注解 是jackSon中最常用的注解之一,是为实体类在接口序列化返回值时增加规则的注解 例如,一个接口需要过滤掉返回值为null的字段,即值为null的字段不返回,可以在实体类中增加如下注解 @JsonInclude(JsonInclude.Include.NON_NULL) 阅读全文
posted @ 2023-02-15 16:35 程长新 阅读(432) 评论(0) 推荐(0) 编辑
摘要:starter可以使我们少定义一些配置 比如我们使用spring+springMvc进行开发时,如果需要引入mybatis等框架,还需要再去xml中定义mybatis需要的bean。 使用starter可以让我们开箱即用,只进行简单的属性配置就可以(使用默认配置时,直接不需要配置),就只可以直接进行 阅读全文
posted @ 2023-02-12 22:37 程长新 阅读(99) 评论(0) 推荐(0) 编辑
摘要:1 前端控制器dispatcherServlet接收到用户请求 2 dispathcherServlet调用处理器映射器handlerMapping 3 handlerMapping根据url找到对应处理器返回给dispatcherServlet(可以根据xml配置、注解进行查找) 4 dispat 阅读全文
posted @ 2023-02-12 22:25 程长新 阅读(19) 评论(0) 推荐(0) 编辑
摘要:Spring是一个IOC容器,用来存放管理Bean,使用依赖注入实现控制反转。也是一个桥梁,可以很方便地整合各种框架。还提供了AOP机制,弥补了OOP的代码重复问题,更方便将不同类不同方法中的共同处理抽取成切面,比如日志、异常等。 SpringMVC是spring对web框架的一个解决方案,提供了一 阅读全文
posted @ 2023-02-12 22:10 程长新 阅读(164) 评论(0) 推荐(0) 编辑
摘要:左移位操作符<<,低位补0 有符号右移位>>,使用符号扩展:若符号为正,则在高位插入0;若符号为负,则在高位插入1 无符号右移位>>>,使用零扩展:无论正负,都在高位插入0 阅读全文
posted @ 2023-02-10 11:34 程长新 阅读(40) 评论(0) 推荐(0) 编辑
摘要:ArrayList是fail-fast的典型代表,遍历的同时不能修改,尽快失败 原理是arrayList中有一个修改次数变量,每次修改list这个变量都会+1 获取迭代器时将arrayList中的修改次数变量赋值给迭代器中的变量,之后每次遍历前都要比较这两个变量是否相同,不同则抛出并发修改异常 Co 阅读全文
posted @ 2023-02-10 11:24 程长新 阅读(19) 评论(0) 推荐(0) 编辑
摘要:JWT简介 JWT全称为Json Web Token JWT的本质就是一个字符串,它是将用户信息保存到一个Json字符串中,然后进行编码后得到一个JWT token,并且这个JWT token带有签名信息,接收后可以校验是否被篡改,所以可以用于在各方之间安全地将信息作为Json对象传输。 JWT的认 阅读全文
posted @ 2023-02-09 10:53 程长新 阅读(1728) 评论(0) 推荐(0) 编辑
摘要:Spring中的Bean默认是单例模式的,框架并没有对bean进行多线程的封装。所以单例bean是线程不安全的。 如果Bean是有状态的(有状态即有数据存储功能),则需要我们自己来保证线程安全。 最简单的方法即改变Bean作用域,将单例变为原型,即'singleton'改为'protopyte',这 阅读全文
posted @ 2023-02-07 23:11 程长新 阅读(547) 评论(0) 推荐(1) 编辑
摘要:nprogress 插件是在页面刷新和跳转时出现在浏览器顶部的进度条,它会随着页面的加载而显示进度状态。可在官网 查看相关效果。 在vue项目中使用 nprogress 插件 1.安装:npm install --save nprogress 2.在要使用的文件中引入 3.写在路由守卫router. 阅读全文
posted @ 2023-02-07 19:47 程长新 阅读(82) 评论(0) 推荐(0) 编辑
摘要:在Idea中安装bpnm可视化插件 引入activiti依赖 <!-- 引入Activiti7 --> <dependency> <groupId>org.activiti</groupId> <artifactId>activiti-spring-boot-starter</artifactId> 阅读全文
posted @ 2023-02-06 10:11 程长新 阅读(1397) 评论(0) 推荐(0) 编辑
摘要:事务这个概念是数据库层面的,Spring只是基于数据库中的事务进行了扩展,以及提供了一些能让程序员更加方便操作事务的方式。 Spring中有两种使用事务的方式,一种是编程式的,一种是申明式的,@Transactional注解就是申明式的。 比如我们可以在某个方法上增强@Transactional注解 阅读全文
posted @ 2023-02-01 23:02 程长新 阅读(89) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示