关于AOP和注解

  1. https://baijiahao.baidu.com/s?id=1739005250686153914&wfr=spider&for=pc
  2. https://blog.csdn.net/weixin_49190101/article/details/124612004?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-124612004-blog-5589573.pc_relevant_3mothn_strategy_recovery&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-124612004-blog-5589573.pc_relevant_3mothn_strategy_recovery&utm_relevant_index=2

注解

注解都是搭配拦截器使用
不然没法获取谁在使用注解
常用的拦截器:通过实现HandlerMethod 然后注册到总配置WebMvcConfigurer
AOP拦截器:通过使用@Aspect

疑问

@SuppressWarnings("unchecked")

JSON.toJSONString 可以把map转为 JSONString 然后用equals进行对比一致性
Map.containsKey

HttpServletRequest

https://juejin.cn/post/6844903669905752078
HttpServletRequest对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,HTTP请求头中的所有信息都封装在这个对象中,通过这个对象提供的方法,可以获得客户端请求的所有信息。
继承至ServletRequest
客户端和服务端乱码问题:客户端utf-8,服务端通过设置
1. POST请求:req.setCharacterEncoding("UTF-8");rep.setCharacterEncoding("UTF-8");
2. GET请求:new String(name.getBytes("ISO8859-1") , "UTF-8")

StringBuilder
currentTimeMillis

获取系统的当前时间的毫秒代表;是Long类型
与new date的区别在于性能更好
用法:
1. 计算任务耗时
2. 当前时间
3. 给文件命名

RedisTemplate
抽象类

如果一个class定义了方法,但没有具体执行代码,这个方法就是抽象方法,抽象方法用abstract修饰。

因为无法执行抽象方法,因此这个类也必须申明为抽象类(abstract class)。

使用abstract修饰的类就是抽象类。我们无法实例化一个抽象类:

无法实例化的抽象类有什么用?

因为抽象类本身被设计成只能用于被继承,因此,抽象类可以强迫子类实现其定义的抽象方法,否则编译会报错。因此,抽象方法实际上相当于定义了“规范”。

AOP生命周期
image.png

@After @Before @Around
@AfterRunning (log使用了这个办法,可以写入数据库)
会返回res
@AfterThrowing
会返回Exception

日志AOP

枚举值有ordinal方法,获取该值的序号
collections.singletonlist

  1. Collections.singletonList 和 Arrays.asList 都是长度不可变的集合,Collections.singletonList 长度为1,元素初始化完成就不可修改, Arrays.asList 长度不可变,元素初始化完成还可以进行修改

  2. Collections.singletonList 中的唯一一个元素可以是null,但是如果 Arrays.asList 只存入一个元素的话,那就一定不允许为null,否则的话会抛出 NullPointerException 异常

  3. Arrays.asList 中创建的 ArrayList 和我们常用的java.util.ArrayList并不是同一个,所以不要以为 java.util.ArrayList 中可以使用的方法在 Arrays.asList 中也都可以使用,否则的话分分钟教你重新做人

  4. Collections.singletonList 中保存元素的是一个对象, Arrays.asList 中保存元素的是一个数组,在这一点上,它俩的差别还是很大的,当然,如果你喜欢,也可以在 Collections.singletonList中保存一个数组对象

异步任务管理器有什么用

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容