JFinal在线手册

浏览12059
更新时间2022-04-11

JFinal 中的 AOP 被划分为控制层 AOP 以及业务层 AOP,严格来说业务层 AOP 并非仅限 于在业务层使用,因为 JFinal AOP 可以应用于其它任何地方。

控制层拦截器的触发,只需发起 action 请求即可。业务层拦截器的触发需要先使用 enhance方法对目标对象进行增强,然后调用目标方法即可。以下是业务层 AOP 使用的例子:

// 定义需要使用AOP的业务层类
public class OrderService {
	// 配置事务拦截器
	@Before(Tx.class)
	public void payment(int orderId, int userId) {
	// service code here
	}
}
 
// 定义控制器,控制器提供了enhance系列方法可对目标进行AOP增强
public class OrderController extends Controller {
	public void payment() {
	// 使用 enhance方法对业务层进行增强,使其具有AOP能力 OrderService service = enhance(OrderService.class);
 
	// 调用payment方法时将会触发拦截器
	service.payment(getParaToInt("orderId"), getParaToInt("userId"));
	}
}


以上代码中 OrderService 是业务层类,其中的 payment 方法之上配置了 Tx 事务拦截器, OrderController 是控制器,在其中使用了 enhance 方法对 OrderSevice 进行了增强,随后调用其 payment 方法便可触发 Tx 拦截器。简言之,业务层 AOP 的触发相对于控制层仅需多调用一次 enhance 方法即可,而 Interceptor、Before、Clear 的使用方法完全一样。


相关视频

更多

免费

php8,我来也
初级php8,我来也

321864次学习

收藏

免费

Thinkphp6.0正式版视频教程
中级Thinkphp6.0正式版视频教程

382481次学习

收藏

免费

细说PHP第一季
中级细说PHP第一季

282914次学习

收藏

免费

简单聊聊PHP创业那点事
初级简单聊聊PHP创业那点事

13419次学习

收藏

精品课程

更多
前端入门_HTML5
前端入门_HTML5

共29课时 | 62.5万人学习

CSS视频教程-玉女心经版
CSS视频教程-玉女心经版

共25课时 | 39.7万人学习

JavaScript极速入门_玉女心经系列
JavaScript极速入门_玉女心经系列

共43课时 | 73.8万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号