Spring核心之代理模式

编程入门 行业动态 更新时间:2024-10-11 09:30:59

Spring<a href=https://www.elefans.com/category/jswz/34/1769673.html style=核心之代理模式"/>

Spring核心之代理模式

代理实现程序功能的统一维护的一种技术。 AOP 的作用:不修改源码的情况下,程序运行期间对方法进行功能增强 好处: 1 、减少代码的重复,提高开发效率,便于维护。            2 、专注核心业务的开发。 核心业务和服务性代码混合在一起 开发中:各自做自己擅长的事情,运行的时候将服务性代码织入到核心业务中。 通过 spring 工厂自动实现将服务性代码以切面的方式加入到核心业务代码中。

代理模式

代理:自己不做,找人帮你做。 代理模式:在一个原有功能的基础上添加新的功能。 分类:静态代理和动态代理。

 

首先,新建一个service包,作为业务层,业务层新建代码UserService 

package com.lr.spring.service;public interface UserService {void insert();
}

 再新建一个staticProxy(静态的代理服务器)包,写UserService的实现类放在staticProxy包里

1.代码逻辑

目标对象

package com.lr.spring.staticProxy;import com.lr.spring.service.UserService;
//目标对象
public class UserServiceImpl implements UserService {@Overridepublic void insert() {System.out.println("目标对象的方法:插入一个User对象");}
}

 代理对象

package com.lr.spring.staticProxy;import com.lr.spring.service.UserService;
//代理对象
public class UserServiceProxy implements UserService {//1.注入目标对象,底层我们依然需要去调用目标对象中接口的方法private UserService userService;//构造方法public UserServiceProxy(UserService userService) {this.userService = userService;}//2.需要对目标对象的特定方法进行增强(加上事务),调用目标对象的方法@Overridepublic void insert() {try{System.out.println("开启事务");userService.insert();//调用目标对象的方法System.out.println("提交事务");}catch (Exception e){System.out.println("回滚事务");}finally {System.out.println("最终操作");}}
}

测试目标对象与代理对象

@Testpublic void test01() {//目标对象UserService userService = new UserServiceImpl();userService.insert();System.out.println("..................");//代理对象UserServiceProxy userServiceProxy = new UserServiceProxy(userService);userServiceProxy.insert();}

面向切面编程思想

AOP 为 Aspect Oriented Programming 的缩写,意思为 面向切面编程 ,是通过预编译方式和运行期动态 代理实现程序

更多推荐

Spring核心之代理模式

本文发布于:2024-03-06 17:48:11,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1715974.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:核心   模式   Spring

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!