Spring核心简介
Spring简介
Spring是一个开源、轻量级框架。在诞生之初,创建Spring的主要目的是用来替代更加重量级的企业级Java技术,尤其是EJB(Enterprise JavaBean)。从最初的挑战者,到现在诸多标准的制定者;从传统的JEE应用,到大数据、NoSQL、企业应用集成、批处理、移动开发等领域,Spring都在参与和发挥影响力。
Spring的目标
Spring致力于简化企业级Java开发,促进代码的松散耦合。成功的关键在于IOC和AOP。它采取4种关键策略:
- 基于POJO(简单老式Java对象 Plain Old Java object)的轻量级和最小侵入性编程
- Spring不会强迫你实现Spring规范的接口或继承Spring规范的类
- 在基于Spring构建的应用中,它的类通常没有任何痕迹表明你使用了Spring,它依旧是POJO
- 通过依赖注入和面向接口实现松耦合
- 不同的类必须以适当的方式进行交互来完成有实际意义的功能,所以耦合是必须的,但是需要谨慎管理
- 依赖注入会将所依赖的关系自动交给目标对象,而不是让对象自己去获取依赖
- 基于切面和惯例进行声明式编程
- AOP以声明的方式将服务模块化并应用到他们需要影响的组件中去,使这些组件具有高内聚性并更加关注自身业务,确保POJO的简单性。
- 通过切面和模板减少样板式代码
- Spring通过模板封装来消除样板式代码(大量重复代码)
Spring容器
容器是Spring框架的核心。在Spring应用中,对象由Spring容器创建和装配,并存在容器之中 。
- Spring实现了多个容器,主要有两种,bean工厂(由org.springframework.beans.factory.beanFactory接口定义)和应用上下文(由org.springframework.context.ApplicationContext接口定义)。我们使用更高级的后者。
- Spring自带了多种类型的应用上下文,比如从文件系统下的一个或多个XML配置文件中加载上下文定义使用FileSystemXmlapplicationcontext。
- 创建Spring容器:
ApplicationContext context
- 从类路径下的一个或多个XML配置文件中加载应用上下文:
ApplicationContext context = new ClassPathXmlApplicationContext("example.xml");
Spring模块
在Spring 5.0 中,Spring框架的发布版本包括了21个不同的模块,每个模块会有3个JAR文件(二进制类库、源码的JAR文件以及JavaDoc的JAR文件)Spring模块根据功能划分为6类不同的功能。
- Spring核心容器
容器是Spring框架最核心的部分,它管理着Spring应用中bean的创建、配置和管理。包括bean工厂和应用上下文。还包括一些企业服务,如E-mail、JNDI访问、EJB集成与调度。所有的Spring模块都构建于核心容器之上。 - Spring的AOP模块
与DI一样,AOP可以帮助应用对象解耦。借助于AOP,可以将遍布系统的关注点(例如事务和安全)从它们所应用的对象中解耦出来。 - 数据访问与集成
Spring的JDBC和DAO(Data Access Object)模块抽象了样板式代码,并在多种数据库服务的错误信息之上构建了一个语义丰富的异常层。Spring的ORM模块对许多流行的ORM框架进行了集成,包括Hibernate、Java Persistence API、Java Data Object和iBATIS SQL Maps。 - Web与远程调用
Spring能够与多种流行的MVC框架进行集成,同时,它的Web和远程调用模块自带了一个强大的MVC框架,有助于在Web层提升应用的松耦合水平。 - Instrumentation
Spring的Instrumentation模块提供了为JVM添加代理(agent)的功能,使用场景非常有限。 - 测试
Spring为使用JNDI、Servlet和Portlet编写单元测试提供了一系列的 mock对象实现。对于集成测试,该模块为加载Spring应用上下文中的bean集合以及与Spring上下文中的bean进行交互提供了支持。
参考书籍
《Spring IN ACTION》
Spring核心简介的更多相关文章
- Spring 系列: Spring 框架简介 -7个部分
Spring 系列: Spring 框架简介 Spring AOP 和 IOC 容器入门 在这由三部分组成的介绍 Spring 框架的系列文章的第一期中,将开始学习如何用 Spring 技术构建轻量级 ...
- Spring 系列: Spring 框架简介(转载)
Spring 系列: Spring 框架简介 http://www.ibm.com/developerworks/cn/java/wa-spring1/ Spring AOP 和 IOC 容器入门 在 ...
- Spring AOP 简介
Spring AOP 简介 如果说 IoC 是 Spring 的核心,那么面向切面编程就是 Spring 最为重要的功能之一了,在数据库事务中切面编程被广泛使用. AOP 即 Aspect Orien ...
- Spring Boot 简介
作者其他Spring系列文章 Spring Framework简介 Spring框架快速入门 Spring Boot愿景 Spring Boot愿景就是让我们创建可运行的.独立的.基于Spring的 ...
- Spring Boot从入门到精通之:一、Spring Boot简介及快速入门
Spring Boot Spring Boot 简介 Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来 ...
- Spring Boot基础:Spring Boot简介与快速搭建(1)
1. Spring Boot简介 Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化Spring应用的创建.运行.调试.部署等. Spring Boot默认使用tomca ...
- 1. Spring 框架简介及官方压缩包目录
一.Spring 框架简介及官方压缩包目录介绍 1.主要发明者:Rod Johnson 2.轮子理论推崇者: 2.1 轮子理论:不用重复发明轮子. 2.2 IT 行业:直接使用写好的代 ...
- Spring Cloud与微服务构建:Spring Cloud简介
Spring Cloud简介 微服务因该具备的功能 微服务可以拆分为"微"和"服务"二字."微"即小的意思,那到底多小才算"微&q ...
- Spring.Net框架一:Spring.Net简介
一.Spring.Net简介 Spring.NET为建立企业级应用提供了一套轻量级的解决方案.通过Spring.NET,我们可以用统一且透明的方式来配置应用程序.Spring.NET的重点是为中间层提 ...
随机推荐
- MPI Maelstrom(East Central North America 1996)(poj1502)
MPI Maelstrom 总时间限制: 1000ms 内存限制: 65536kB 描述 BIT has recently taken delivery of their new supercom ...
- Spring boot jackson
Spring boot 所引用的包里面包含 jackson-databind-2.8.3.jar jackson-annotations-2.8.3.jar jackson-core-2.8.3.ja ...
- <转>jmeter(十一)JDBC Request之Query Type
本博客转载自:http://www.cnblogs.com/imyalost/category/846346.html 个人感觉不错,对jmeter讲解非常详细,担心以后找不到了,所以转发出来,留着慢 ...
- Unity3d 5.x搭载VS2013使用
1. 安装unity vs.首先我们打开我们下载的unity vs.然后就会看见里面有3个文件,我们双击UnityVS 2013-1.8.1.msi.进行安装,在其过程狂点击下一步就可以,直到点击 ...
- Context initialization failed
Context initialization failed org.springframework.beans.factory.BeanDefinitionStoreException: Invali ...
- EDK II之USB总线驱动的实现框架
本文简单介绍一下UEFI中USB驱动的实现框架: 下图是USBD向上层驱动提供的接口: 1.从图中我们可以看出,USBDI的实现主要通过调用HCDI实现 和 访问USB_INTERFACE结构体(该结 ...
- imageio.ffmpeg.download() has been deprecated. Use 'pip install im ageio-ffmpeg' instead.'
Use this instead: sudo pip3 install imageio==2.4.1
- Django form choices, placeholder
item=CharField(max_length=20,min_length=1,required=True,widget=widgets.TextInput({'placeholder':'tes ...
- CI(CodeIgniter)框架下使用非自带类库实现邮件发送
在项目开发过程中,需要到了邮件提醒功能.首先想到的是CI自身带不带邮件发送类,查看帖子,发现CI本身自带,然后试着利用CI自身带的类库来实现,经过搜搜很多帖子,不少开发者反馈CI自身的Email类有问 ...
- OSI七层协议与TCP/IP模型
OSI为Open System Interconnection的缩写,意为开放式系统互联,国际标准化组织(ISO,International Organization for Standardizat ...