Spring - 什么是Spring?

来源:互联网 发布:人肉搜索引擎软件 编辑:程序博客网 时间:2024/05/22 05:22

整理下思路,回顾下Spring框架。

Spring是一个开源框架,目的就是降低Java开发的复杂性,通俗点说,就是简化Java开发。

说到Spring,Spring容器是Spring的核心,还有Spring的2个核心特性,依赖注入(dependency injection,DI),面向切面编程(aspect-oriented programming,AOP)这些概念可能是第一时间就在脑海浮现的。

为了降低Java开发的复杂性,Spring采用了一下4种关键策略:

1.基于POJO的轻量级和最小侵入式编程

2.通过以来注入和面向接口实现松耦合

3.基于切面和惯例进行声明式编程

4.通过切面和模板减少样板式代码

注:最小侵入式编程,或者是Spring的非侵入式编程模型意味着这个类在Spring应用和非Spring应用中都可以发挥相同的作用。


Spring激发POJO的潜能

Spring竭力避免因自身的API而弄乱你的应用代码,Spring不会强迫你实现Spring规范的接口或继承Spring规范的类,相反,在基于Spring构建的应用中,它的类通常没有任何痕迹表明你使用了Spring,最坏的场景,一个类或许会使用Spring注解,但它依然是POJO。

Spring赋予POJO魔力的方式之一就是通过DI来装配它们,帮助应用对象彼此保持松散耦合。

注:POJO(Plain Old Java Object),简单的Java对象。


关于DI和AOP

DI能够让相互协作的软件组件保持松耦合,而面向切面编程,允许你把遍布在应用各处的功能分离出来形成可重用的组件。

诸如日志,事务管理,安全这样的系统服务经常融入到自身具有核心业务逻辑的组件中去,这些系统服务通常被称为横切关注点,因为他们会跨越系统的多个组件。

AOP可以使这些组件模块化,并以声明的方式将他们应用到它们需要影响的组件中去,所造成的结果是这些组件具有更高的内聚性并且会更加专注自身的业务,完全不需要了解设计系统服务所带来的复杂性,总之,AOP能够确保POJO的简单性。


《Spring in Action》是一本学习和查阅Spring很好的书,非常棒。

以上内容,是自己在理解的基础上,对Spring做的一个简单的小结,部分文字叙述完全引用书中的原话,原因可能是自己总结的不是切到好处,或者是总结的好的情况下,大致就是和书中的内容相差不多了吧,与其自己拿捏不准某些概念,还不如直接拿来复用。

2016年7月23日16:17:12


0 0
原创粉丝点击