1 spring中注入资源是通过描述来实现的,在 spring 中是通过注解或者 XML 描述。spring 中IOC 注入方式有三种

1)构造方法注入

2)setter 注入

3)接口注入

1.1)构造注入主要是依靠类的构造方法进行注入。比如角色类 Role, 构造方法中有三个属性,编号ID、角色名roleName和备注note

<bean id="role" class="Role">
<constructor-arg index="" value="">
<constructor-arg index="" value="CEO">
<constructor-arg index="" value="公司老大">
</bean>

1.2)setter 注入,这种方式更灵活。上面的例子,需要有无参构造函数,各个属性需要有setter 方法。

<bean id="role" class="Role">
<property name="id" value="">
<property name="roleName" value="CEO">
<property name="note" value="公司老大">
</bean>

2 Spring 的 AOP 是基于动态代理实现的,Spring 的数据库事务是在进入 invoke 方法里面然后判断是否需要拦截,需要的时候才根据注解和配置生成数据库事务切面上下文。

注意:如果在事务里面调用自己其他事务方法,被调用的方法上的注解不起作用,仍然是第一个事务的注解。

是因为自调用是新的代理对象的,是原始对象的调用。所以根本就没有 invoke 方法去解析注解和配置生成数据库切面的上下文,独立事务也无从谈起。

如果想要insertRole 方法配置生效,就需要独立写一个类,再去调用 insertRole 方法。

Spring IOC和AOP 基础的更多相关文章

  1. 170511、Spring IOC和AOP 原理彻底搞懂

    Spring提供了很多轻量级应用开发实践的工具集合,这些工具集以接口.抽象类.或工具类的形式存在于Spring中.通过使用这些工具集,可以实现应用程序与各种开源技术及框架间的友好整合.比如有关jdbc ...

  2. 【转】spring - ioc和aop

    [转]spring - ioc和aop 1.程序中为什么会用到spring的ioc和aop 2.什么是IOC,AOP,以及使用它们的好处,即详细回答了第一个问题 3.原理 关于1: a:我们平常使用对 ...

  3. J2EE进阶(十四)超详细的Java后台开发面试题之Spring IOC与AOP

    J2EE进阶(十四)超详细的Java后台开发面试题之Spring IOC与AOP 前言   搜狐畅游笔试题中有一道问答题涉及到回答谈谈对Spring IOC与AOP的理解.特将相关内容进行整理.    ...

  4. Spring笔记:AOP基础

    Spring笔记:AOP基础 AOP 引入AOP 面向对象的开发过程中,我们对软件开发进行抽象.分割成各个模块或对象.例如,我们对API抽象成三个模块,Controller.Service.Comma ...

  5. Spring IOC及AOP学习总结

    一.Spring IOC体系学习总结: Spring中有两个容器体系,一类是BeanFactory.还有一类是ApplicationContext.BeanFactory提供了基础的容器功能.Appl ...

  6. spring - ioc和aop

    1.程序中为什么会用到spring的ioc和aop 2.什么是IOC,AOP,以及使用它们的好处,即详细回答了第一个问题 3.原理 关于1: a:我们平常使用对象的时候,一般都是直接使用关键字类new ...

  7. Spring ioc与aop的理解

    一 spring的特点 1.降低了组件之间的耦合性 ,实现了软件各层之间的解耦 2.可以使用容易提供的众多服务,如事务管理,消息服务等 3.容器提供单例模式支持 4.容器提供了AOP技术,利用它很容易 ...

  8. spring IOC与AOP

    Spring IOC容器 spring IOC 容器有两种,分别是 BeanFactory 容器和 ApplicationContext 容器. BeanFactory如下: /*第一步,利用Clas ...

  9. Spring IOC、AOP、Transaction、MVC小结

    1.IOC.AOP:把对象交给Spring进行管理,通过面向切面编程来实现一些“模板式”的操作,使得程序员解放出来,可以更多的关注业务实现.                             - ...

随机推荐

  1. ffmpeg的IO操作

    ffmpeg 可以通过IO操作将数据读取和存储在文件或网络中 作为数据的读取和写入地址,数据被存放在file,http, ffmpeg 不仅可以编解常用的音视频格式,还可以将数据导入/导出到各种媒介中 ...

  2. 【maven】maven命令 package、install、deploy 的区别

    maven命令  package.install.deploy  的区别

  3. Steve Lin:如何撰写一篇优秀的SIGGRAPH论文

     英文原版 PPT下载:http://vdisk.weibo.com/s/z7VKRh2i3R4YO 一篇优秀的论文应该是这样的 广大的研究同仁介绍了这篇论文所包含的重要想法和所获得的结果 在论文中描 ...

  4. nose的setup和teardown

    参考:http://blog.csdn.net/linda1000/article/details/8533349 1.模块的setUp和tearDown def setUp(): print &qu ...

  5. Java实现图片的裁剪

    需求: 有一张位置大小的图片,现在需要根据这张原图得到指定尺寸的图片,且得到的图片要符合原先图片的比例,就是在原图的基础上等比例缩放得到图片后,在进行剪裁,这样保证得到的图片是原图的一部分,而不是将原 ...

  6. mahout运行测试与kmeans算法解析

    在使用mahout之前要安装并启动hadoop集群 将mahout的包上传至linux中并解压即可 mahout下载地址: 点击打开链接 mahout中的算法大致可以分为三大类: 聚类,协同过滤和分类 ...

  7. Java开发新手经常遇到的一些问题

    A:java.lang.UnsupportedClassVersionError: Bad version number in .class file 解答:导致此问题的原因是Tomcat运行的JDK ...

  8. ORCU浅析之安装和作用

    众所周知,在安装Oracle BIEE之前需要安装Oracle RCU(Oracle Repository Creation Utility),美其名曰资料档案库.如果单单的从名称上来说,那就是我们实 ...

  9. (转)使用百度 BAE做SVN服务器

    转自:https://www.sinosky.org/bae-svn.html#comment-1775 从这里下载 目前,无论是Windows平台.Linux平台还是Mac平台都有比较成熟的SVN客 ...

  10. 分治算法——Karastsuba算法

    分治(Divide and Conquer)算法:问题能够分解为子问题,每一个问题是能够独立的解决的,从子问题的解能够构建原问题. Divide:中间分.随机分.奇偶分等,将问题分解成独立的子问题 C ...