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 方法。

  • 相关阅读:
    HDU 2586 How far away?
    UVAlive 5796 Hedge Mazes
    HDU 4975 A simple Gaussian elimination problem.
    Poj 1149 PIGS
    HDU 3416 Marriage Match IV
    HDU 4912 Paths on the tree
    HDU 3277 Marriage Match III
    終於記起了帳號密碼
    codeforces194a
    codeforces195c
  • 原文地址:https://www.cnblogs.com/zhaopengcheng/p/7151076.html
Copyright © 2011-2022 走看看