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: