Aspect-Oriented 编程(AOP)通过提供另一种思考程序结构的方式来补充 Object-Oriented 编程(OOP)。

Aspect-Oriented 编程(AOP)通过提供另一种思考程序结构的方式来补充 Object-Oriented 编程(OOP)。
在这里插入图片描述

增强类型(advice)
* 建议之前( Before advice):在连接点之前执行但不能阻止执行流程进入连接点的增强(除非它抛出 exception)。
* 返回建议后( After returning advice):在连接点正常完成后执行的建议:对于 example,如果方法返回而不抛出 exception。
* 抛出建议后( After throwing advice):如果方法通过抛出 exception 退出,则执行建议。
* 在(最终)建议之后( After (finally) advice):无论连接点退出的方式(正常或异常 return),都要执行建议。
* 围绕建议( Around advice):围绕连接点的建议,例如方法调用。这是最有力的建议。 around 通知可以在方法调用之前和之后执行自定义行为。它还负责选择是继续加入点还是通过返回自己的 return value 或抛出 exception 来快速建议的方法执行。

关于代理:Spring AOP 默认使用 AOP 代理的标准 JDK 动态代理。这使得任何接口(或接口集)都可以被代理。Spring AOP 也可以使用 CGLIB 代理。这对代理 classes 而不是接口是必要的(最后实现接口)。如果 business object 没有实现接口,则默认使用 CGLIB。

切入点表达式类型

* 

execution(执行) - 对于匹配方法执行连接点,这是在使用 Spring AOP 时将使用的主要切入点指示符
*
within - 限制匹配某些类型中的连接点(只是在使用 Spring AOP 时执行在匹配类型中声明的方法)
*
this - 限制匹配连接点(使用 Spring AOP 时执行方法)bean reference(Spring AOP proxy)是给定类型的实例
*
target - 限制匹配到连接点(使用 Spring AOP 时执行方法),其中目标 object(application object 被代理)是给定类型的实例
*
args - 限制匹配连接点(使用 Spring AOP 时执行方法),其中 arguments 是给定类型的实例
*
@target - 限制匹配连接点(使用 Spring AOP 时执行方法),其中执行 object 的 class 具有给定类型的 annotation
*
@args - 限制匹配连接点(使用 Spring AOP 时执行方法),其中传递的实际 arguments 的运行时类型具有给定 type(s 的注释
*
@within - 限制匹配以在具有给定 annotation 的类型中连接点(使用 Spring AOP 时,使用给定 annotation 在类型中声明的方法的执行)
*
@annotation - 限制匹配到连接点的主题,其中连接点的主题(在 Spring AOP 中执行的方法)具有给定的 annotation

注意:.*表示所有的接口 *.*表示所有的方法 …子包 一定注意开头后面一定要加空格
记录每个方法执行时的参数 非around advice 用JoinPoint around advice用ProceedingJointPoint (一定要加在第一个方法里)

### 如何通过代理访问 Docker 服务器 要实现通过代理访问 Docker 服务器,可以按照以下方法完成配置: #### 1. 安装并设置 APP 确保目标设备已安装最新版本的 APP,并成功登录账户。在应用内创建一个新的虚拟局域网络 (VLAN),并将该 VLAN 的 IP 地址分配给需要被访问的目标 Docker 主机[^4]。 #### 2. 配置 Docker 主机以支持远程访问 为了使 Docker 支持外部客户端连接,需修改其默认监听地址为 `0.0.0.0` 而不是仅限本地回环接口 (`localhost`)。编辑 `/etc/docker/daemon.json` 文件(如果不存在则新建),加入如下内容: ```json { "hosts": ["tcp://0.0.0.0:2375", "unix:///var/run/docker.sock"] } ``` 保存更改后重新加载服务配置以及重启 Docker 进程来生效新设定: ```bash sudo systemctl daemon-reload && sudo systemctl restart docker ``` #### 3. 开启防火墙端口放行 确认开放了用于接收来自互联网请求的服务端口号,在本例中即 TCP 协议下的 2375 号端口。可以通过命令行工具 ufw 或 iptables 实现此目的;这里给出基于 UFW(Uncomplicated Firewall) 的例子: ```bash sudo ufw allow 2375/tcp sudo ufw reload ``` #### 4. 使用建立安全通道 回到应用程序界面下找到刚才所设之 VLAN 条目,点击进入详情页面启用 Fn Connect 功能。此时会生成一条专属链接供其他成员加入同一私密空间共享资源。 #### 5. 测试连通性 最后一步是从另一台计算机尝试利用上述方式构建起来的安全隧道去触达远端运行中的容器实例。假设我们已经知道对方机器上的公网 IPv6 地址或者由提供的内部静态IP,则可以直接采用标准形式调用 API 接口发起交互动作比如列出当前所有活动状态的任务列表等等。 ```bash export DOCKER_HOST=tcp://<your-fn-connect-ip>:2375 docker ps ``` 以上步骤完成后应该能够顺利经由中介机制达成跨地域间无缝协作体验而无需担心传统 NAT 穿越难题所带来的困扰。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值