Spring 简介
Posted Firm陈
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring 简介相关的知识,希望对你有一定的参考价值。
前言:
Spring是一个分层的 full-stack(一站式)轻量级框架(开源框架),以Ioc(Inversion of Control,控制反转)和AOP(Aspect Oriented Programming,面向切片编程)为内核,使用简单的JavaBean来完成以前只能由EJB(Enterprise Java Beans)完成的工作,取代了臃肿、低效的EJB。
Spring致力于JavaEE应用各层的解决方案,是企业应用一站式开发很好的选择,在表现层它提供了Spring MVC以及整合Struts的功能,在业务逻辑层可以管理事务、记录日志等,在持久层可以整合Hibernate、Mybatis等框架。虽然Spring贯穿表现层、业务逻辑层、持久层,但Spring并不是要取代那些已有的优秀框架,而是可以高度开放的与其它优秀框架无缝整合。
Spring为简化企业级开发而生,使用Spring开发可以将Bean对象,Dao组件对象,Service组件对象等交给Spring容器来管理,这样使得很多复杂的代码在Spring中开发却变得非常的优雅和简洁,有效的降低代码的耦合度,极大的方便项目的后期维护、升级和扩展。
Spring的优点
1.非侵入式设计
Spring是一种非侵入式(no-invasive)框架,它可以使应用程序代码对框架的依赖最小化。
2.方便解耦、简化开发
Spring是一个大工厂,可以将所有 对象的创建、依赖关系的维护 交给Spring容器管理,大大降低了组建之间的耦合。
3.支持AOP
允许将一些通用任务,比如安全、事务、日志等,进行集中式管理,从而提高程序的复用性。
4.支持声明式事务处理
通过配置就可以完成对事务的管理,无需手动编程。
5.方便整合其它优秀框架
Spring可以与大多数框架无缝整合。
6.测试方便
Spring支持Junit4,可通过注解测试程序,很方便。
7.降低了使用JavaEE API的难度
Spring对JavaEE开发中难用的一些API进行了封装,降低了这些API的使用难度。
Spring的体系结构
1.Test模块
提供对应用的单元测试、集成测试的支持
2.Core Container(核心容器)
Spring核心容器是其它模块的基础,主要由5个模块组成:
(1)Beans模块:提供BeanFactory,是工厂模式的经典实现,Spring将管理的对象称为Bean。
(2)Core 核心模块:是Spring框架的基本组成部分,提供Ioc、DI功能。
(3)Context 上下文模块:建立在Beans、Core模块的基础上,可以通过它来访问任何对象的定义、配置。Context模块最重要的是ApplicationContext接口。
(4)Context-support 模块:提供Spring对嵌入第三方库的支持,比如要嵌入缓存(Jcache、EhCache)、邮件服务(JavaMail)、任务调度(CommonJ、Quartz)这些第三方功能,就要用到此模块。
(5)SpEL模块:提供对Spring Expression Language的支持。
spring-beans-4.0.0.RELEASE.jar
spring-context-4.0.0.RELEASE.jar
spring-core-4.0.0.RELEASE.jar
spring-expression-4.0.0.RELEASE.jar
3.面向切面编程
(1)AOP模块:提供对面向切片编程的支持,允许定义方法拦截器和切入点,将代码按照功能分离,以降低耦合。
(2)Aspects模块:提供对整合Aspects框架的支持,Aspects是一个优秀的AOP(面向切片编程)框架。
(3)Instrumentation模块:提供对类工具、类加载器的支持/实现。
Messaging模块:提供对消息传递体系的支持。
spring-aop-4.0.0.RELEASE.jar
spring-aspects-4.0.0.RELEASE.jar
4.Data Access/Integration(数据访问/集成)
(1)JDBC模块:是JDBC的抽象,大幅减少了对数据库的编码。
(2)ORM模块:封装了大量的对象关系映射的API,提供对JPA、JDO、Hibernate的整合支持。
(3)OXM模块:提供了一个支持对象/XML映射的抽象层实现,比如XMLBeans、XStream。
(4)JMS模块:提供对消息传递服务的支持。
(5)Transactions 事务模块:提供对POJO编程、声明式事务管理的支持。
spring-jdbc-4.0.0.RELEASE.jar
spring-orm-4.0.0.RELEASE.jar
spring-oxm-4.0.0.RELEASE.jar
spring-tx-4.0.0.RELEASE.jar
spring-jms-4.0.0.RELEASE.jar
5.Web
(1)WebSocket模块:提供WebScoket、SockJS的实现,以及对STOMP的支持
(2)Servlet模块:也称为Spring-webmvc模块,包含了Spring的MVC。
(3)Web模块:提供基本的Web开发集成特性,比如多文件上传功能、使用Servlet监听器来初始化Ioc容器以及Web应用上下文。
(4)Portlet模块:提供了对在Portlet环境中使用MVC的支持。
spring-web-4.0.0.RELEASE.jar
spring-webmvc-4.0.0.RELEASE.jar
spring-websocket-4.0.0.RELEASE.jar
spring-webmvc-portlet-4.0.0.RELEASE.jar
Spring中的Bean
Spring容器负责创建、管理Bean的实例,所有的类都可以作为Bean。
传统的JavaBean一般是作为DTO(数据传输对象),用来封装值对象,在各层之间传递数据。Spring Bean可以是任何组件,用途广泛。
传统的JavaBean要求为每一个成员变量提添加setter、getter方法。Spring Bean则无此要求,但尽量为Bean写一个无参的构造函数(不强制)。
以上是关于Spring 简介的主要内容,如果未能解决你的问题,请参考以下文章