Spring介绍及其优缺点(转载)
Spring框架是由于软件开发的复杂性而创建的。Spring使用的是基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅仅限于服务器端的开发。从简单性、可测试性和松耦合性角度而言,绝大部分Java应用都可以从Spring中受益。
1.目的:解决企业应用开发的复杂性
2.功能:使用基本的JavaBean代替EJB,并提供了更多的企业应用功能
3.范围:任何Java应用
Spring是一个轻量级控制反转(IoC)和面向切面(AOP)的容器框架
1.什么是Spring?
Spring是一个分层的JavaSE/EE full-stack(一站式)轻量级开源框架.
Spring为不同的层都提供的企业级解决方案:
web层:spring mvc
service层:spring
dao层:JDBCTemplate、Spring data jpa(Java Persistence API)
Spring的核心思想是IOC(控制反转)和AOP(面向切面编程)
2.为什么要用Spring?
1.方便解耦,简化开发(高内聚低耦合)
Spring就是一个大工厂(容器),用于创建对象(bean)和维护对象间的依赖关系.
2.AOP编程的支持
Spring提供面向切面编程,可以方便的实现对程序进行权限拦截、运行监控等功能.
声明式事务的支持,只需要通过配置就可以完成对事务的管理,而且无需手动编程.
3.方便程序的测试
Spring对Junit4支持,可以通过注解方便的测试Spring程序.
4.方便集成各种的优秀框架
5.降低JavaEE API的使用难度
Spring 对JavaEE开发中非常难用的一些API,都提供了封装,使用这些API应用难度大大降低.
3.Spring的优点
1.降低了组件之间的耦合性,实现了软件各层之间的解耦.
2.可以使用容器提供的众多服务,如事务管理,消息服务等.
3.容器提供单利模式支持.
4.容器提供了AOP技术,利用它可以很容易实现的一些拦截,如权限拦截,运行期监控等.
5.容器提供了AOP技术,利用它可以很容易实现运行拦截,如权限拦截,运行期监控等.
6.spring对于主流的应用框架提供了很好的支持,例如mybatis等.
7.spring属于低入侵设计
8.独立各种应用服务器
9.spring的DI机制减低了业务对象替换的复杂性.
10.spring的高开放性,并不强制应用于完全依赖于它,开发者可以自由选择spring的部分或者全部.
4.Spring的缺点
使用了大量的反射机制,反射机制非常占用内存。