作为一个java开发程序员,永远无法绕过去spring的,当然spring确实给开发者带来了开发的春天,之前对spring都是各种使用,用的时候各种百度,还没有系统的做过总结,是时候好好的总结一下了,对自己有点高的要求,以后面试的时候回答也能更全面一点,对系统整体的优化也能从全局把握,还是从三个方面了解一下spring
一、spring是什么?
spring框架是一个为java应用程序的开发提供了综合、广泛的基础支持的java平台,spring帮助开发者解决了开发中基础性的问题,使得开发人员可以专注与应用程序的开发,spring框架本身也是按照设计模式精心打造的,这使得我们开发可以在开发环境中安心的集成spring框架而不用担心spring后台是如何进行工作的。
二、spring整体架构
spring至今已经继承了20多个模块,这些模块可以分为五大类,网上用的比较多的图如下,可以更直观的了解spring的整体架构。
1.核心容器:
核心容器包含了:core、beans、Context、spEL。core与beans模块是框架的基础部分,提供ioc和依赖注入特性。
2.数据访问/集成:
包含:JDBC、ORM、JMS、Transactions、OXM。使得与数据库连接代码变得整洁与简单,同时避免由于未能关闭数据库资源引起的问题,并拥有良好的事务管理服务。
3.Web:
web上下文模块建立在应用程序上下问模块只是,为基于web应用程序提供上下问,也可以更好的与其他框架整合(struts等)
4.Aop(面向切面编程):
Aop模块用来开发spring应用程序中具有切面性质的服务。常用的比如日志的添加,使得业务与系统服务更好的分离
5.单元测试:
支持使用Junit和TestNG对spring组件进行测试。
三、spring的优点:
1.轻量级:
spring在大小和透明性方面绝对属于轻量级的,基础版本的spring只有2M左右。
2.控制反转(IOC):
spring使用控制反转实现了松耦合,依赖被注入对象,而不是创建或寻找依赖对象。
3.面向切面编程(Aop):
spring支持面向切面编程,同时把应用的业务逻辑与系统服务分离开来
4.容器:
spring包含并管理应用程序对象的配置及生命周期。
5.MVC框架:
spring的web框架是一个设计优良的web mvc框架,很好的取代了一些web框架。
6.事务管理:
spring对下至本地业务上至全局业务(jat)提供了统一的事务管理接口。
7.异常处理:
spring提供一个方便的API将特定的技术异常(由JDBC或JDO抛出)转化为一致的unchecked异常。
四、spring—hello world!
还是写一个简单的配置文件注入的例子吧。应该有编程基础的写一个例子还是可以信手拈来的,要不然没有点代码,总感觉不合适。哈哈
1.新建一个类:
2.配置spring文件,因为是通过配置文件加载的:
3.加载spring.xml。获取实体类: