最近在看spring实战这本书(1-5章),写的很好,很全面,系统的介绍了spring,在此记录些对我有帮助的句子。
- DI带来的最大收益就是松耦合。
- spring通过面向 POJO编程、DI、切面和模板技术来简化Java开发。
- 优先使用自动配置,显式配置越少越好。
- 自动化装配包含两个角度:组件扫描和自动装配。
- @Component 注解告知 Spring为这个类创建 bean。
- @ComponentScan 注解默认扫描与配置类相同的包。
- SpringJunit4ClassRunner 在测试开始的时候自动创建 Spring应用上下文。
- Spring 支持将 @Named 作为 @Component注解的替代方案。
- @Configuration 注解表名这个类是一个 JavaConfig配置类。
- 对强依赖使用构造器注入,对可选性的依赖使用属性注入。
- 数据库配置、加密算法以及与外部系统的集成是跨环境部署时会发生变化的几个典型例子。
- @Profile 注解指定某个bean属于哪一个 profile,如@Profile("dev")。
- 没有指定 profile的 bean始终都会被创建,与激活哪个 profile没有关系。
- spring 依赖 spring.profiles.active与 spring.profiles.default 确定哪个 profile处于激活状态。
- @Primary 能够与 @Component 组合用在组件扫描的bean上,当自动自动装配遇到歧义性的时候,使用首选的bean。
- @Qualifier与 @Autowired协同使用,设置的参数就是想要注入的 bean 的id,如 @Qualifier("iceCream")。
- spring定义了多种作用域,可以基于这些作用域创建 bean,包括:单例、原型、会话和请求。
- SpEL 表达式要放到 #{...}之中,属性占位符要放在 ${...}之中。
- “?.”运算符能够在访问它右边的内容之前,确保它所对应元素不是null。
- T()运算符能够访问目标类型的静态方法和常量。
- 在我们进入某个领域之前,必须学会在这个领域该如何说话。
- Spring AOP构建在动态代理基础之上。
- execution 指示器是我们在编写切点定义时最主要使用的指示器。
- @AspectJ 注解表名 POJO是一个切面。
- EnableAspectJAutoProxy 注解启用自动代理功能。
- Spring的AspectJ 自动代理仅仅使用 @AspectJ 作为创建切面的指导,切面依然是基于代理的。
- 设计良好的控制器本身只处理很少甚至不处理工作,而是将业务逻辑委托给一个或多个服务对象进行处理。
- DispatcherServlet负责将请求路由到其他的组件之中。