Spring的目标是致力于全方位的简化Java开发。为了降低Java开发的复杂性,Spring采取了一下4种关键策略:
- 基于POJO的轻量级和最小侵入性编程:Spring不会强迫你实现Spring规范的接口或继承Spring规范的类。
- 通过依赖注入和面向接口实现松耦合:传统做法,每个对象负责管理与自己相互协作的对象的引用。由Spring应用上下文装载Bean的定义并将它们组装起来。bean的生命周期
- 基于切面和惯例进行声明式编程:AOP横切关注点、切点、切面、连接点、通知的定义。Spring Aop中四个重要概念,切点,切面,连接点,通知
- 基于切面和模板减少样板式代码
- @Component(Java规范的@Name)、@Configuration、@ComponentScan、@Bean、@RunWith(SpringJUnit4ClassRunner.class)、@ContextConfiguration、@AutoWired、@Profile、@Conditional、@Primary、@Qualifier、@Scope、@PropertyResource、@Value、@Before、@After、@AfterReturning、@AfterThrowing、@Around、@Pointcut、@EnableAspectJAutoProxy、
spring模块和spring portfolio
spring模块和spring portfolio
Spring的装配机制:
- 在XML中进行显示装配。
- 在Java中进行显式装配。
- 隐式的bean发现机制和自动装配(组件扫描和自动装配)。
- 条件化创建Bean@Conditional、环境与profile。
- 处理自动装配的歧义性:标识首选的bean@Primary,限定自动装配的Bean@Qualifier:创建自定义的限定符、使用自定义的限定符注解。
- Bean的作用域@Scope。单例、原型、会话、请求。
- 运行时值的注入Spring表达式语言。属性占位符和Spring表达式语言。Environment类的方法。
面向切面编程:
- AOP术语:切面、通知、切点、连接点、横切关注点。Spring提供的4种类型的AOP:1.基于代理的经典Spring AOP;2.纯POJO切面;3.@AspectJ注解驱动的切面;4.注入式AspectJ切面。Spring使用AspectJ的切点表达式语言来定义切点。
- Spring定义了5种类型的通知:1.前置通知@Before;2.后置通知@After;3.返回通知@AfterReturning;4.异常通知@AfterThrowing;5.环绕通知@Around。处理通知中的参数。
- Spring通过注解引入新功能。@DeclareParents