- 依赖注入(Dependency Injection,DI)
通过第三方配置初始化对象,而不是把具体的实现写在对象中,这样程序入口与具体实现进行了解耦。比如动作定义为接口,具体做什么动作
由实现动作接口的类来具体描述。
- 面向切面编程(Aspect-Oriented Programming,AOP)
AOP能够使服务模块化,以声明的方式将服务应用到需要影响的组件中。是这些组件具有更高的内聚性并且会更加关注自身业务,完全不需要
了解涉及系统服务所带来的复杂性,确保POJO的简单性。切面仿佛是覆盖在组件上的一个外壳,通过AOP,可以使用各种功能包裹核心业务,
而核心业务无需知道这些外壳的存在,将安全、事务和日志关注点与核心逻辑相分离。
- 简单老式Java对象(Plain Old Java Object,POJO)
- Bean
Spring框架中的对象声明。
- 非侵入
Spring是非侵入的,灵活的。