在Spring中如何使用动态代理?

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" /> */@Aspectpublic 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中如何使用动态代理?的文章就介绍到这了,更多相关Spring动态代理内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!

困难是人的教科书。

在Spring中如何使用动态代理?

相关文章:

你感兴趣的文章:

标签云: