参考书:Spring实战
Spring核心
一、Spring之旅
1.1 简化Java开发
通过4种关键策略来简化Java的开发:
- 基于POJO的轻量级和最小侵入性编程;
- 通过依赖注入和面向接口实现松耦合;
- 基于切面和管理进行声明式编程;
- 通过切面和模板减少样板式代码。
1.1.1 POJO的最小侵入性编程
避免框架自身的API而弄乱我们的应用代码,意味着某个类在Spring应用和非Spring应用中都可以发挥同样的作用。
1.1.2 DI功能(依赖注入)
举例依赖注入的一种方式——构造器注入(Constructor injection)
目标:让互相协作的软件组件保持松散耦合。
具体思想:通过传参的方式传入quest,而不是在BraveKnight类中定义一个Quest类的变量。
1.1.3 应用切面(AOP)
目标:
- 把遍布应用各处的功能分离出来形成可重用的组件。
AOP和OOP的不同:
- AOP面向切面编程:希望能够将通用需求功能从不相关的类当中分离出来,能够使得很多类共享一个行为,一旦发生变化,不必修改很多类,而只需要修改这个行为即可。
- OOP面向对象编程:将需求功能划分为不同的并且相对独立,封装良好的类,并让它们有着属于自己的行为,依靠继承和多态等来定义彼此的关系。
举个AOP的例子:
不是AOP的:
AOP的,把Minstrel声明为一个切面: