Spring的基本应用(一)
一、Spring概述
1.1、什么是Spring?
Spring是一个分层的Java SE/EE full-stack(一站式)轻量级开源框架,以IoC(Inversion of Control,控制反转)和AOP(Aspect Oritented Programming,面向切面编程)为内核。
在表现层它提供了Spring MVC以及与Struts框架的整合的功能;在业务逻辑层可以管理事务、记录日志等;在持久层可以整合MyBatis、Hibernate、JdbcTemplate等技术。
1.2、Spring框架的优点
- 非侵入式设计
- 方便解耦、简化开发
- 支持AOP
- 支持声明式事务处理
- 方便程序的测试
- 方便集成各种优秀框架
- 降低Java EE API的使用难度
1.3、Spring的体系结构
Core Container(核心容器)
- Beans模块:提供BeanFactory,是工厂模式的经典实现,Spring将管理对象成为Bean。
- Core核心模块:提供了Spring框架的基本组成部分,包括IoC和DI功能。
- Context上下文模块:建立在Core和Beans模块的基础上,是访问定义和配置的任何对象的媒介。其中ApplicationContext接口是上下文模块的焦点。
- Context-support模块:提供了对第三方库嵌入Spring应用的集成支持。
- SpEL(Spring Expression Language,Spring表达式语言)模块:是Spring3.0后新增的模块,它提供了Spring Expression Language支持,是运行时查询和操作对象图的强大的表达式语言。
Data Access/Integration(数据访问/集成)
- JDBC模块:提供了一个JDBC的抽象层,大幅度地减少了在开发过程中对数据库操作的 编码。
- ORM模块:对流行的对象关系映射API,包括JPA、JDO和Hibernate提供了集成层支持。
- OXM模块:提供了一个支持对象/XML映射的抽象层实现。
- JMS模块:指向Java消息传递服务,包含使用和生产信息的特性,自4.1版本后支持与Spring-message模块的集成。
- Transaction事务模块:支持对实现特殊接口以及所有POJO类的编程和声明式的事务管理。
web
- WebSocket模块:提供了WebSocket和SockJS的实现以及对STOMP的支持
- Servlet模块:也成为Spring-webmvc模块,包含了Spring的模型——视图——控制器(MVC)和REST Web Services实现的Web应用程序。
- Web模块:提供了基本的Web开发集成特性。
- Protlet模块:提供了在Portlet环境下中使用MVC实现。
其他模块
- AOP模块:提供了面向切面编程实现,允许定义方法拦截器和切入点,将代码按照功能进行分离,以降低耦合性。
- Aspects模块:提供了与AspectJ的集成功能,AspectJ是一个功能强大且成熟的面向切面编程(AOP)框架。
- Instrumentation模块:提供了类工具的支持和类加载器的实现,可以在特定的应用服务器中使用。
- Messaging模块:提供了对消息传递体系结构和协议的支持。
- Test模块:提供了对单元测试和集成测试的支持。