Heim >类库下载 >java类库 >Java – Einfache Spring AOP-Konfiguration und AOP-Transaktionsverwaltung, dynamischer JDK/GCLib-Proxy

Java – Einfache Spring AOP-Konfiguration und AOP-Transaktionsverwaltung, dynamischer JDK/GCLib-Proxy

高洛峰
高洛峰Original
2016-10-13 10:01:432027Durchsuche

1. Sehen Sie sich die einfache AOP-Konfiguration über XML an

Erstellen Sie zunächst eine einfache Student-Klasse

public class Student {
    private Integer age;
    private String name;

    public void setAge(Integer age) {
        this.age = age;
    }

    public Integer getAge() {
        System.out.println("Age : " + age);
        return age;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getName() {
        System.out.println("Name : " + name);
        return name;
    }

    public void printThrowException() {
        System.out.println("Exception raised");
        throw new IllegalArgumentException();
    }
}

2 >

3.SpringAOP.xml-Konfiguration
public class Logging {/**
     * This is the method which I would like to execute
     * before a selected method execution.
     */public void beforeAdvice() {
        System.out.println("Going to setup student profile.");
    }

    /**
     * This is the method which I would like to execute
     * after a selected method execution.
     */public void afterAdvice() {
        System.out.println("Student profile has been setup.");
    }

    /**
     * This is the method which I would like to execute
     * when any method returns.
     */
    public void afterReturningAdvice(Object retVal) {
        System.out.println("Returning:" + retVal.toString());
    }

    /**
     * This is the method which I would like to execute
     * if there is an exception raised.
     */
    public void AfterThrowingAdvice(IllegalArgumentException ex) {
        System.out.println("There has been an exception: " + ex.toString());
    }
}

Analysieren Sie diese Ausführung(* com.seeyon.SpringBean.aop.Student.get*(..)) Pointcut-Ausdruck:
<bean id="student" class="com.seeyon.SpringBean.aop.Student" p:name="yangyu" p:age="27"></bean>
    <bean id="logging" class="com.seeyon.SpringBean.aop.Logging"></bean>

    <!--XML方式配置Spring AOP-->
    <aop:config>
        <aop:aspect id="log" ref="logging">   【切面class】
            <aop:pointcut id="studentMethod" expression="execution(* com.seeyon.SpringBean.aop.Student.get*(..))"/> 【切点】
            <aop:before pointcut-ref="studentMethod" method="beforeAdvice"/>  【方法执行之前触发切面class的beforeAdvice方法】
            <aop:after pointcut-ref="studentMethod" method="afterAdvice"/>    【方法执行之后触发切面class的afterAdvice方法】
        </aop:aspect>
    </aop:config>

(1) Das erste * stellt dar, dass der Rückgabewert der Methode beliebig ist

(2) get* stellt alle Methoden dar, die mit get beginnen

(3)(.. ) stellt eine beliebige Zahl dar der Parameter für die Methode

4. Ausgabeergebnis

public class test {
    public static void main(String[] args) {
        ApplicationContext context =
                new ClassPathXmlApplicationContext("SpringAop.xml");
        Student student = (Student) context.getBean("student");
        student.getName();
//        student.getAge();
//        student.printThrowException();
    }
}

2 . Verwendung von Spring AOP-Anmerkungen.

Going to setup student profile.
Name : yangyu
Student profile has been setup.
1. Erstellen Sie zunächst eine einfache Student-Klasse (wie in .1, siehe oben).
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:Was ist Java?Nächster Artikel:Was ist Java?