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