《Spring源码深度解析》一

摘要:
它还支持列表投影、选择和常规列表聚合。
Spring整体架构

《Spring源码深度解析》一

1.1 Spring整体架构

1.1.1 Core Container:

模块:Core、Beans、Context和Expression Language

Core:框架的基础部分, 提供IOC 和依赖注入特性。也包含核心工具类。
基础概念是BeanFactory, 它提供对工厂模式的经典实现来消除对程序性单例模式的需要, 并真正地允许你从程序逻辑中分离出依赖关系和配置。

Bean:包含访问配置文件、创建和管理bean以及进行IoC/DI操作相关的所有类

Context:提供了一种类似于JNDI注册器的框架式的对象访问方法
ApplicationContext接口是Context模块的关键

Expression Language:提供了表达式语言
支持设置/获取属性的值,属性的分配,方法的调用,访问数组上下文(accessiong the context of arrays )、 容器和索引器 、逻辑和算术运算符、命名变量以及从Spring的IoC容器中根据名称检索对象 。它也支持list投影、选择和一般的list聚合。

1.1.2 Data Access/Integration

模块:JDBC、ORM、OXM、JMS和Transaction

JDBC:提供了JDBC抽象层

ORM:提供了交互层,如JPA/JDO/Hibernate/ibatis

OXM:提供了一个对Object/XML映射实现的抽象层,包括 JAXB、Castor、XMLBeans、JiBX和XStrearn

JMS:包含一些制造和消费信息和特性

Transaction:支持编程和声明性的事务管理

1.1.3 Web

模块:Web、Web-Servlet、Web-Structs(被弃用)和Web-Porlet

Web:提供了基础的面向Web的集成特性,如多文件上传、使用servlet listeners初始化IoC容器以及一个面向Web的应用上下文

Web-Servlet:MVC实现

Web-Porlet:提供了Porlet和Web-Servlet模块的MVC实现

1.1.4 AOP

模块:Aspect、Instrumentaion

Aspect:提供了对AspectJ的集成支持

Instrumentaion:提供了class instrumentation支持和classloader实现,使其可以在特定的应用服务器上使用

1.1.5 Test

支持使用JUnit和Test'NG对Spring组件进行测试

1.2 补充:

AspectJ神仙操作:

helloWorld示例:

《Spring源码深度解析》一

增加事务:

《Spring源码深度解析》一

编译:

《Spring源码深度解析》一

输出:

《Spring源码深度解析》一

免责声明:文章转载自《《Spring源码深度解析》一》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Eclipse中修改tomcat内存大小pyspark获取和处理RDD数据下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

利用html5调用本地摄像头拍照上传图片

   html5概念啥的就不废话了,不知道的 百度, 谷歌一堆。。今天学了学html5中的Canvas结合新增的<video>标签来获取本地摄像头,在html5之前,要在浏览器获取本地摄像头只有通过插件(ActiveX,但是这种只有IE支持)或者是flash来获取(或许你没学过flash那就很坑爹了),在之后微软的silvertlight中也...

Android 6.0 动态申请 音频+拍照+相册 权限

1.音频的权限(包括录音和播放) 1.1.首先要在清单中加上两个权限 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.RECORD...

Java数据库连接--JDBC基础知识(操作数据库:增删改查)

一、JDBC简介   JDBC是连接java应用程序和数据库之间的桥梁。   什么是JDBC?   Java语言访问数据库的一种规范,是一套API。   JDBC (Java Database Connectivity) API,即Java数据库编程接口,是一组标准的Java语言中的接口和类,使用这些接口和类,Java客户端程序可以访问各种不同类型的数据库...

Jmeter-连接mysql取值

转自:https://blog.csdn.net/weixin_42384941/article/details/105322371 1、下载数据库驱动(https://dev.mysql.com/downloads/connector/j/) Select Operating System: platform independent 注:驱动和数据库版本...

实现自己的.NET Core配置Provider之Yaml

YAML是一种更适合人阅读的文件格式,很多大型的项目像Ruby on Rails都选择YAML作为配置文件的格式。如果项目的配置很少,用JSON或YAML没有多大差别。看看rails项目中的配置文件,如果用JSON写试试什么感受吧。 在《实现自己的.NET Core配置Provider之EF》中已经讲过配置的执行流程,这里不再复述,直接动手。 YamlCo...

iOS将image转90,180,270度的方法

http://blog.sina.com.cn/s/blog_6602ffbc0101ckx3.html 这里要分享的是将image旋转,而不是将imageView旋转,原理就是使用quartz2D来画图片,然后使用ctm变幻来实现旋转。 注:quartz2D的绘图左边和oc里面的绘图左边不一样,导致绘画出的图片是反转的。所以一上来得使它转正再进行进一步的...