叶千辰  

AOP(JDK 动态代理)

1、使用 JDK 动态代理,使用 Proxy 类里面的方法创建代理对象


Proxy提供了静态方法来创建类似于接口实例的对象,但允许自定义的方法调用。
   
static Object newProxyInstance(ClassLoader loader, Class<?>[] interfaces, InvocationHandler h) 返回指定接口的代理实例,该代理实例将方法调用分派给指定的调用处理程序。

方法有三个参数:
第一参数,类加载器
第二参数,增强方法所在的类,这个类实现的接口,支持多个接口
第三参数,实现这个接口 InvocationHandler,创建代理对象,写增强的部分

DAO层:

DAO层叫数据访问层,全称为data access object,属于一种比较底层,比较基础的操作,具体到对于某个表的增删改查,也就是说某个DAO一定是和数据库的某一张表一一对应的,其中封装了增删改查基本操作,建议DAO只做原子操作,增删改查。

Service层:

Service层叫服务层,被称为服务,粗略的理解就是对一个或多个DAO进行的再次封装,封装成一个服务,所以这里也就不会是一个原子操作了,需要事物控制。

Controler层:

Controler负责请求转发,接受页面过来的参数,传给Service处理,接到返回值,再传给页面。

总结:

个人理解DAO面向表,Service面向业务。后端开发时先数据库设计出所有表,然后对每一张表设计出DAO层,然后根据具体的业务逻辑进一步封装DAO层成一个Service层,对外提供成一个服务。

2、编写 JDK 动态代理代码


JDK是 Java 语言的软件开发工具包

动态语言和静态语言的比较

静态语言,也叫强类型语言,顾名思义,就是变量在初始化的时候都必须声明类型的编程语言。

动态语言,也叫弱类型语言,变量在初始化时无需声明类型的编程语言。

 

(1)创建接口,定义方法


public interface UserDao {
  public int add(int a,int b);
  public String update(String id);
}

 

(2)创建接口实现类,实现方法

(3)使用 Proxy 类创建接口代理对象

 

 



posted on   叶千辰  阅读(84)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
 
点击右上角即可分享
微信分享提示