一.概述(什么是spring):
Spring是分层的Java SE/EE应用full-stack(一站式)轻量级开源框架。他解决的是业务逻辑层和其他各层的松耦合问题,将面向接口的编程思想贯穿整个系统应用。以IOC(控制反转)和AOP(面向切面编程)为内核,提供了展现层Spring MVC和持久层Spring JDBC以及业务层事务管理等众多的企业级应用技术,还整合了开源世界众多著名第三方框架和类库。
二.优势(特点):
*方便解耦,简化开发。通过Spring提供的IOC容器,可以将对象间的依赖关系交由Spring进行控制,避免硬编码所造成的过度程序耦合;
*AOP编程的支持。方便进行面向切面编程,许多不容易用传统OOP实现的功能可以通过AOP轻松应付;
*声明式事务的支持。可以将我们从单调烦闷的事务管理代码中解脱出来,通过声明式方式灵活的进行事务的管理,提高开发效率和质量。
*方便程序的测试。可以用非容器的依赖的编程方式进行几乎所有的测试工作;
*方便集成各种优秀框架。Spring可以降低各种框架的使用难度,提供了各种优秀框架的直接支持;
*降低JavaEE API(如:JDBA、JavaMail、远程调用等)进行了薄薄的封装层,使这些API的使用难度大大降低;
*Java源码是经典学习范例。设计巧妙、结构清晰、匠心独用,处处体现着大师对Java设计模式灵活应用以及Java技术的高深造诣。是Java技术的最佳实践范例。
三.好处(优点):
*低侵入式设计,代码污染极低;
*独立于各种应用服务器,基于Spring框架的应用,真正实现Write Once,Run Anywhere的承诺;
*Spring的DI机制降低了业务对象替换的复杂性,提高了组件之间解耦;
*Spring的AOP支持允许将一些通用任务(安全、事务、日志等)进行集中式管理,从而提供了更好的复用;
*Spring的ORM和DAO提供了与第三方持久层框架的良好整合,并简化了底层的数据库访问;
*Spring并不强制应用完全依赖于Spring;
*Spring主要目的是使JavaEE易用和促进好编程习惯。