Spring确实使你能通过最简单可行的解决的方法来解决你的问题。

而这是有有非常大价值的。同一时候他的源码的设计理念也受到非常多程序猿的追捧,简洁,易用.但是从哪着手研究Spring却是非常多新手头疼的地方。以下的參考资料将带领大家慢慢的深入解析Spring
 

spring
1 Spring中的事务处理 
2ioc容器在Web容器中的启动
 
3 Spring JDBC
 
4 Spring MVC
 
5 Spring AOP获取Proxy
 
6 Spring声明式事务处理
 
7 Spring AOP中对拦截器调用的实现
 
8 Spring驱动Hibernate的实现
 
9 Spring Acegi框架鉴权的实现
 
IOC和AOP
 
控制反转模式(也称作依赖性注入)的基本概念是:不创建对象,但是描写叙述创建它们的方式。

在代码中不直接与对象和服务连接,但在配置文件里描写叙述哪一个组件须要哪一项服务。

容器 (在 Spring 框架中是 IOC 容器) 负责将这些联系在一起。在典型的 IOC 场景中。容器创建了全部对象,并设置必要的属性将它们连接在一起。决定什么时间调用方法。下表列出了 IOC 的一个实现模式。
 

类型 1
 

服务须要实现专门的接口。通过接口,由对象提供这些服务,能够从对象查询依赖性(比如,须要的附加服务)【接口注入】。
 

类型 2
 

通过JavaBean的属性(比如 setter 方法)分配依赖性【setter方法注入】。
 

类型 3
 

依赖性以构造函数的形式提供,不以 JavaBean 属性的形式公开【构造器注入】。
 

Spring 框架的 IOC 容器採用类型 2 和类型3 实现。
 
面向方面的编程。即 AOP。是一种编程技术,它同意程序猿对横切关注点或横切典型的职责分界线的行为(比如日志和事务管理)进行模块化。AOP 的核心构造是方面,它将那些影响多个类的行为封装到可重用的模块中。
 
AOP 和 IOC 是补充性的技术,它们都运用模块化方式解决企业应用程序开发中的复杂问题。

在典型的面向对象开发方式中。可能要将日志记录语句放在全部方法和 Java 类中才干实现日志功能。在 AOP 方式中,能够反过来将日志服务模块化,并以声明的方式将它们应用到须要日志的组件上。当然。优势就是 Java 类不须要知道日志服务的存在,也不须要考虑相关的代码。所以,用 Spring AOP 编写的应用程序代码是松散耦合的。
 
AOP 的功能全然集成到了 Spring事务管理、日志和其它各种特性的上下文中。
 
AOP 编程方面, Spring 提供了非常多特性,比如 PointCut, Advice, Advisor, 粗略来说就是事务管理、日志和其它各种特性 的切入地点。

spring运行步骤的更多相关文章

  1. 破解 MyEclipse For Spring 的步骤

    破解 MyEclipse For Spring 的步骤: 1.关闭myeclipse: 2.运行破解工具,写上UserCode,最好是 8 位以上, 3.注意选择 myeclipse 的版本,我提供的 ...

  2. Qt creator自定义编译运行步骤

    一直用Qt creator开发.无它,只是因为linux下C++ IDE选择不多.同时因为我抛弃了MFC,平时写个小工具还得靠Qt,正好一举两用. 用Qt creator开发一般的工程,是不用修改编译 ...

  3. Optaplanner - 从探究示例中的hello world,初步认识规划引擎的运行步骤。

    上一篇我们成功以把Opotaplanner规划引擎下载回来,并把它的示例运行起来,简单解析了一下它的Cloud balance示例.这一篇我们这些示例的源代码导入到Eclipse中,看看它在后台是怎么 ...

  4. 【ARM-Linux开发】【Qt开发】Qt Creator自定义编译运行步骤

    原文:http://www.linuxidc.com/Linux/2015-04/115763.htm 一直用Qt Creator开发.无它,只是因为linux下C++ IDE选择不多.同时因为我抛弃 ...

  5. Elasticsearch后台运行步骤

    Elasticsearch后台运行步骤 1.cmd 到elasticsearch 中bin目录下 2.elasticsearch-service 出现  3.安装服务 elasticsearch-se ...

  6. hadoop自带例子wordcount的具体运行步骤

    1.在hadoop所在目录“usr/local”下创建一个文件夹input root@ubuntu:/usr/local# mkdir input 2.在文件夹input中创建两个文本文件file1. ...

  7. Fitnesse-20140630与RestFixture-3.1编译与运行步骤

    为了能使RestFixture-3.1在Fitnesse-20140630中正确打印测试结果,准备修改RestFixture. 1.下载并编译Fitnesse-20140630 以下步骤以在64位Wi ...

  8. php运行步骤解析

    2000年, PHP4.0发布的时候,引入了Zend Engine. Zend引擎把PHP代码的执行切分成两个阶段: 一. Zend Engine 解析PHP代码并生成二进制中间码Zend Opcod ...

  9. spring总结之一(spring开发步骤、bean对象的管理、bean生命周期)

    ###spring 1.概念:开源,轻量级,简化开发的企业级框架. 开源:免费,发展快. 轻量级:占内存小. 简化开发:通用的功能封装,提高程序员的开发效率.--------------------- ...

随机推荐

  1. BZOJ 4011 HNOI2015 落忆枫音

    AC通道:http://www.lydsy.com/JudgeOnline/problem.php?id=4011 题目很长,写得也很有诗意与浪漫色彩,让我们不禁感叹出题人是一个多么英俊潇洒的人. 所 ...

  2. django博客开发

    找一文件夹作为项目文件夹1 django-admin.py startproject mysite建立工程2 cd mysite python manage.py startapp blog 建立第一 ...

  3. haifeng

    [root@localhost 桌面]# yum list|grep wubi ibus-table-chinese-wubi-haifeng.noarch -.el7 base ibus-table ...

  4. browsersync按照官网,然后本地配置后,动态监听时不起作用

    官方API也未曾标注,要添加文件指向 --files 所以解决方案就是: browser-sync start --proxy "tp5.cn" --files "css ...

  5. vue DOM模板解析

    当使用 DOM 作为模板时 (例如,使用 el 选项来把 Vue 实例挂载到一个已有内容的元素上),你会受到 HTML 本身的一些限制,因为 Vue 只有在浏览器解析.规范化模板之后才能获取其内容.尤 ...

  6. 地图之CLLocationManager的使用 定位功能使用

    1.iOS8曾经使用CLLocationManager 1.导入头文件 <CoreLocation/CoreLocation.h> 2.创建位置管理者 CLLocationManager ...

  7. java:可变参数(转载)

    http://12477787.blog.51cto.com/12467787/1887843 Java在1.5之后允许方法使用可变参数,可变参数的好处在于:它允许传递0个或者多个参数.比如原来有一段 ...

  8. NSTimer使用不当引发的内存泄漏问题

    NSTimer可以用来执行一些定时任务,比较常用的方法就是: + (NSTimer *)timerWithTimeInterval:(NSTimeInterval)ti target:(id)aTar ...

  9. 网络工具的瑞士军刀netcat

    这是一个聒噪的夜晚,假设要给出个原因.可能是由于尽管我认为西班牙不纯粹,可是怎么也不至于干为人家搭台面自己不唱戏的角色吧..结束以后.我认为该玩一下素有网络瑞士军刀之称谓的netcat了. 尽管瑞士军 ...

  10. MySQL联表更新插入数据

    Error: DELETE FROM t_23andme_addref WHERE id IN (  SELECT min(id)  FROM t_23andme_addref   GROUP BY ...