随笔分类 - Spring
摘要:作为 Spring 的关键功能支撑,Spring 事件是一个相对独立的点。或许你从没有在自己的项目中使用过 Spring 事件,但是你一定见过它的相关日志。而且在未来的编程实践中,你会发现,一旦你用上了 Spring 事件,往往完成的都是一些有趣的、强大的功能,例如动态配置。 案例 1:试图处理并不
阅读全文
摘要:创建型模式主要解决对象的创建问题,封装复杂的创建过程,解耦对象的创建代码和使用代码。 其中,单例模式用来创建全局唯一的对象。工厂模式用来创建不同但是相关类型的对象(继承同一父类或者接口的一组子类),由给定的参数来决定创建哪种类型的对象。建造者模式是用来创建复杂对象,可以通过设置不同的可选参数,“定制
阅读全文
摘要:当一个系统采用的切面越来越多时,因为执行顺序而导致的问题便会逐步暴露出来 1:错乱混合不同类型的增强 还是沿用上节课的宿舍管理系统开发场景。 这里我们先回顾下,你就不用去翻代码了。这个宿舍管理系统保护了一个电费充值模块,它包含了一个负责电费充值的类 ElectricService,还有一个充电方法
阅读全文
摘要:案例 1:构造器内抛空指针异常 import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @Component public clas
阅读全文
摘要:当创建对象是一个“大工程”的时候,我们一般会选择使用工厂模式,来封装对象复杂的创建过程,将对象的创建和使用分离,让代码更加清晰. 那何为“大工程”呢?一种是创建过程涉及复杂的 if-else 分支判断,另一种是对象创建需要组装多个其他类对象或者需要复杂的初始化过程。 工厂模式和 DI 容器有何区别?
阅读全文
摘要:1:@Value 没有注入预期的值 在装配对象成员属性时,我们常常会使用 @Autowired 来装配。但是,有时候我们也使用 @Value 进行装配。不过这两种注解使用风格不同,使用 @Autowired 一般都不会设置属性值,而 @Value 必须指定一个字符串值,因为其定义做了要求,定义代码如
阅读全文
摘要:Spring @Autowired 提及 Spring 的优势或特性,我们都会立马想起“控制反转、依赖注入”这八字真言。而 @Autowired 正是用来支持依赖注入的核心利器之一。表面上看,它仅仅是一个注解,在使用上不应该出错。但是,在实际使用中,我们仍然会出现各式各样的错误,而且都堪称经典。所以
阅读全文
摘要:案例 1:隐式扫描不到 Bean 的定义 Spring Boot 的默认扫描规则 @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Documented @Inherited @SpringBootConfiguration
阅读全文