您好,登錄后才能下訂單哦!
Spring中怎么使用動態代理,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
定義自定義切面 - 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(); } }
輸出如下:
關于Spring中怎么使用動態代理問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。