[Spring Framework] Ejercicios para ayudar a comprender el marco AspectJ

Tema uno:

La interfaz no está escrita y puede conocerla mirando el método de implementación.

1.Implementación de voz.java

2.ConcertImpl.java

Antes de mejorar BeforeAvtice.java :

Después de mejorar AfterAtive.java :

Mejoras envolventes Around.java :

aspecto_resorte_aop.xml

Runtest.java

prueba:

código de aspect_spring_aop.xml:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd">
<!--实现类-->
    <bean id="speech_impl_bean" class="cn.spring.aop_xml.SpeechImpl"/>
    <bean id="concert_impl_bean" class="cn.spring.aop_xml.ConcertImpl"/>
<!--切面-->
    <bean id="before_bean" class="cn.spring.aop_xml.BeforeAvtice"/>
    <bean id="after_bean" class="cn.spring.aop_xml.AfterRAtive"/>
    <bean id="wrap_bean" class="cn.spring.aop_xml.Around"/>

    <!-- 配置前增强的方法 -->
    <bean name="takeSpeak_advice" class="org.springframework.aop.support.RegexpMethodPointcutAdvisor">
        <!-- 注入advice -->
        <property name="advice" ref="before_bean"/>
        <!-- 注入需要被拦截的目标对象中的方法(连接点) -->
        <property name="patterns">
            <list>
                <value>.*takeSpeak</value>
            </list>
        </property>
    </bean>
    <!-- 配置后增强的方法 -->
    <bean name="printText_advice" class="org.springframework.aop.support.RegexpMethodPointcutAdvisor">
        <!-- 注入advice -->
        <property name="advice" ref="after_bean"/>
        <!-- 注入需要被拦截的目标对象中的方法(连接点) -->
        <property name="patterns">
            <list>
                <value>.*printText</value>
            </list>
        </property>
    </bean>


    <bean id="spring_Speech_proxy" class="org.springframework.aop.framework.ProxyFactoryBean">
        <!--Speech接口增强-->
        <property name="proxyInterfaces">
            <value>cn.spring.aop_xml.Speech</value>
        </property>
        <property name="target" ref="speech_impl_bean"/>

        <property name="interceptorNames">
            <list>
                <value>takeSpeak_advice</value>
                <value>printText_advice</value>
            </list>
        </property>
    </bean>

    <bean id="spring_Concert_proxy" class="org.springframework.aop.framework.ProxyFactoryBean">
    <!--Concert接口增强-->
    <property name="proxyInterfaces">
        <value>cn.spring.aop_xml.Concert</value>
    </property>
    <property name="target" ref="concert_impl_bean"/>
    <property name="interceptorNames">
        <list>
            <value>wrap_bean</value>
        </list>
    </property>
    </bean>
</beans>

Tema 2:

1. Interfaz LookQ :

2. Clase de implementación de LookQImpl :

3. Clase de aspecto Userlevel_Aspect

4. Archivo de configuración Aspectj_1.xml

5. EjecutarPrueba.java

prueba:

Tema tres:

1.Implementación de voz.java:

2.Teatro.java :

3.Aspecto_AOP.java

Archivo de configuración ( Aspectj_2.xml ):

EjecutarPrueba.java:

prueba:

Tema cuatro:

1.ConcertImpl.java:

2.Música.java:

3.Teatro.java:

4.Aplicaciónioc.java

5.Runtest.java

prueba:

Supongo que te gusta

Origin blog.csdn.net/m0_56233309/article/details/124053280
Recomendado
Clasificación