随笔分类 - Spring
摘要:【传送门】:通过循环依赖问题彻底理解 Spring IOC 的精华 1. 简介 循环依赖其实就是循环引用,也就是两个或则两个以上的bean互相持有对方,最终形成闭环。比如A依赖于B,B依赖于C,C又依赖于A。 Spring 中的循环依赖有构造器循环依赖和setter循环依赖。 2. 原因分析 2.1
阅读全文
摘要:1. 问题现象 开发框架使用Spring Boot,启动程序时通过Class对象获取对象上的注解信息,运行时未获取到注解信息。 2. 问题原因 程序启动时获取的Class对象时Spring通过CGLIB生成的代理对象,不是原始对象,因此无法通过代理对象的Class信息获取注解信息。 获取到的clas
阅读全文
摘要:1. 参数校验常用注解 字符串不能为 null,而且字符串长度必须大于0,至少包含一个非空字符串 CharSequence Collection Map Array 字符串:字符串长度必须大于0,空字符串(“ ”)可以通过校验; Collection:集合大小必须大于0; Map:map的大小必须大
阅读全文
摘要:1 概述 1.1 依赖反转模式 在Java中,一个复杂的功能一般都需要由两个或者两个以上的类通过彼此合作来实现业务逻辑的,这使得每个对象都需要与其合作的对象的引用。如果这个获取依赖对象的过程需要自己去实现,那么这将导致代码的高度偶尔并且难以测试。 依赖反转就是对象依赖关系的管理被反转了(获取依赖对象
阅读全文
摘要:【参考文章】:@PostConstruct 1. 基本概念 从Java EE5规范开始,Servlet 中增加了两个影响Servlet生命周期的注解,@PostConstruct和@PreDestroy,这两个注解被用来修饰一个非静态的void()方法。 2. 实现方式 方式一: 方式二: 3. 在
阅读全文
摘要:1. Bean依赖关系 一个配置类的Bean,一个实例Bean; 实例Bean初始化时需要依赖配置类的Bean; 1.1 配置类Bean 1.2 实例Bean 2. 问题现象 实例Bean初始化时配置类Bean空指针异常; 3. 原因分析 spring在实例化Bean时,先通过反射调用构造方法生成一
阅读全文
摘要:如果方法中的参数都是JSON类型,则在方法参数前面添加 @RequestBody 注解; 如果方法中的参数包含 MultipartFile 类型的参数,MultipartFile 类型的参数前加 @RequestParam (value="MultipartFile参数的Key"), 其他类型的参数
阅读全文
摘要:【参考文章】:Spring拦截器和过滤器 【参考文章】:过滤器与拦截器的区别
阅读全文
摘要:一. 常用注解 1. @responseBody 将controller的方法返回的对象通过适当的转换器转换为指定的格式之后,写入到response对象的body区,通常用来返回JSON数据或者是XML数据, 需要注意的是,在使用此注解之后不会再走视图解析器,而是直接将数据写入到输入流中,它的效果等
阅读全文
摘要:【参考文章】:Spring全局异常处理的三种方式 【参考文章】:Spring Boot 系列(八)@ControllerAdvice 拦截异常并统一处理 【参考文章】:@ControllerAdvice + @ExceptionHandler 全局处理 Controller 层异常 1. 使用注解定
阅读全文
摘要:参考文章:Spring事务:事务属性和API简介 Spring事务机制主要包括声明式事务和编程式事务,此处侧重讲解声明式事务,编程式事务在实际开发中得不到广泛使用,仅供学习参考。 1. PlatformTransactionManager 事务真正的开始、提交、回滚都是通过 PlatformTran
阅读全文
摘要:1. Bean的生命周期 1. 实例化:Spring对bean 进行实例化; 2. 填充属性:Spring将值和bean 的引用注入到 bean 对应的属性中; 3. 如果bean 实现了 BeanNameAware接口,Spring将bean的ID传递给setBean-Name()方法; 4. 如
阅读全文