开始java项目开发,刚从.net来到java,突然觉得自己好像失去了很多东西,一脸懵,不过慢慢的开始适应了,
今天就带大家来一起了解一下java中的一个框架spring
认识spring
Spring框架是一个java应用最广的轻量级的框架,他的理念主要包括:IOC(控制反转)与AOP(面向切面编程)
标题Spring是什么:
Spring是一个轻量级IOC/DI和AOP容器的开源框架
AOP:面向切面编程,我们在.Net的时候大多都是OOP(面向对象编程),个人觉得AOP是OOP的完善与补充,OOP引入了封装,继承、多态等概念来建立一种对象层次模型。OOP允许开发者定义从向关系,但不适合平行关系,比如:日志功能。
日志往往是横向的散布在所有对象层次中,而与各处的核心代码无关,对于其他类型的代码,例如安全性、异常处理和透明的持续性也都是如此,这种散布在各地的无关代码被称为横切,在OOP中,它导致了大量代码的重读,而不利于各个模块的调用。
AOP则是相反,利用一种横切的技术,破解开封装对象内部民兵将那些影响了多各类的公共行为封装到一个可重用的模块,名命为“Aspect”,即切面。所谓切面,就是那些与业务无关,却为业务模块所共同调用的逻辑或责任封装起来,减少代码复用,降低模块间的耦合,利于维护。
Spring的优点
低耦合
声明事务管理
便于继承其他的框架:MyBatis、Hibernate等
降低了java的开发难度
包括了j2ee中的一站式开发模式
Spring能帮我们程序员做什么
Spring能帮我们根据配置文件创建以及组装对象之间的依赖关系
Spring面向切面编程能帮助我们五耦合的实现日志,安全控制
spring能简单的帮我们管理数据库事务
Spring提供了与第三方数据访问框架(如Hibernate、JSF)的无缝集成,而且它本身也具有一套JDBC访问模板
Spring提供与第三方Web(例如Struct、JSF)框架无缝集成,自己也有一套Spring MVC框架来方便WEB的搭建
Spring的框架结构
Data Access/Integration层包含:JDBC、ORM、OXM、JMS和Transaction模块。
Web层包含:Web、Web-Servlet、WebSocket、Web-Porlet模块。
AOP模块提供了一个符合AOP联盟标准的面向切面编程的实现。
Core Container(核心容器):包含有Beans、Core、Context和SpEL模块。
Test模块:支持使用JUnit和TestNG对Spring组件进行测试。
下一章带大家走进Spring IOC和DI,带大家一起了解控制反转是什么。