1、降低耦合,简化开发
通过Spring提供的IoC容器,我们可以将对象之间的依赖关系交由Spring进行控制,避免硬编码所造成的过度程序耦合。
2、提高代码的重用性
Spring可以尽量避免在程序中硬编码。(硬编码:是指将可变变量用一个固定值来代替的方法。)
3、方便程序的测试
可以用非容器依赖的编程方式进行几乎所有的测试工作。
4、Spring可以使系统架构更容易选择。
Spring的目标之一就是使应用的每一层都可以更容易地替换。
5、Spring并不重造轮子。
尽管Spring所涉的范围非常广,但是大多数应用并没有自己的实现。如O/R映射,就是使用了很多流行的框架,如Hibernate,而不是自己去创造,也就是说开发人员仍可以在Spring中使用旧的框架实现自己的应用程序。
Spring的核心技术
1、Ioc(反向控制)或称为依赖注入
当一个对象需要引用另外一个对象的时候,在传统的设计过程中,往往需要在调用者中创建被调用者的对象实例(耦合度高),但在Spring中被调用者的创建由SpringIoc容器来完成。
2、面向方面(切面)编程(AOP)
AOP采用的是一种“横向切割”的方式(OOP实际上是“纵向继承”)进行编程。所谓横向切割(作用是找到符合某一规则的类)就是将类层次树横向切一刀,并且会自动在这一刀所涉及的类中插入相同的代码,但这些代码并不在类中,而是写在了方面中(Aspect)中,只需要修改Aspect中的代码,所有被插入的代码就会被自动更改。