zoukankan      html  css  js  c++  java
  • Spring IOC和AOP 基础

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

    1)构造方法注入

    2)setter 注入

    3)接口注入

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

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

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

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

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

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

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

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

  • 相关阅读:
    SQL Server TSQL高级查询
    ado.net
    Apache配置详解(最好的APACHE配置教程)
    CrystalReport for vs2010 水晶报表的发布问题以及捆绑发布
    Rails 疑难解决
    [转]if 命令示例详解
    How To Deploy on Bluehost
    CustomActionData 属性 [Visual Studio 中的部署]
    BlueHost下部署rails app经验
    Using Ruby On Rails on Bluehost
  • 原文地址:https://www.cnblogs.com/zhaopengcheng/p/7151076.html
Copyright © 2011-2022 走看看