您好,登錄后才能下訂單哦!
Spring中怎么使用動態(tài)代理,針對這個問題,這篇文章詳細介紹了相對應(yīng)的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
定義自定義切面 - diyNodePoint
package com.lxc.diy; import org.aspectj.lang.annotation.After; import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.annotation.Before; /** * @Aspect 標注這個了是一個切面 * @Before("切入點") === <aop:before method="beforeLog" pointcut-ref="point" /> * @After("切入點") === <aop:after method="afterLog" pointcut-ref="point" /> */ @Aspect public class diyNotePoint { @Before("execution(* com.lxc.service.UserServiceImp.*(..))") public void before() { System.out.println("前置切面"); } @After("execution(* com.lxc.service.UserServiceImp.*(..))") public void after() { System.out.println("后置切面"); } }
定義接口 - UserService
package com.lxc.service; public interface UserService { public void query(); public void delete(); public void edit(); public void add(); }
重寫接口類 - UserServiceImp
package com.lxc.service; public class UserServiceImp implements UserService{ @Override public void query() { System.out.println("query"); } @Override public void delete() { System.out.println("delete"); } @Override public void edit() { System.out.println("edit"); } @Override public void add() { System.out.println("add"); } }
beans.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" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/aop https://www.springframework.org/schema/aop/spring-aop.xsd"> <!--定義bean--> <bean id="imp" class="com.lxc.service.UserServiceImp"/> <bean id="diyNotePoint" class="com.lxc.diy.diyNotePoint" /> <!--添加:注解支持--> <aop:aspectj-autoproxy /> </beans>
測試:
import com.lxc.service.UserService; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class Test { public static void main(String[] args) { ApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml"); UserService userService = ctx.getBean("imp", UserService.class); userService.add(); } }
輸出如下:
關(guān)于Spring中怎么使用動態(tài)代理問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注億速云行業(yè)資訊頻道了解更多相關(guān)知識。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。