登录
/
注册
首页
论坛
其它
首页
科技
业界
安全
程序
广播
Follow
关于
导读
排行榜
资讯
发帖说明
登录
/
注册
账号
自动登录
找回密码
密码
登录
立即注册
搜索
搜索
关闭
CSDN热搜
程序园
精品问答
技术交流
资源下载
本版
帖子
用户
软件
问答
教程
代码
写记录
写博客
小组
VIP申请
VIP网盘
网盘
联系我们
发帖说明
道具
勋章
任务
淘帖
动态
分享
留言板
导读
设置
我的收藏
退出
腾讯QQ
微信登录
返回列表
首页
›
业界区
›
业界
›
Spring AOP 与 Solon AOP 有什么区别?
Spring AOP 与 Solon AOP 有什么区别?
[ 复制链接 ]
啤愿
2025-8-23 11:26:30
程序园永久vip申请,500美金$,无限下载程序园所有程序/软件/数据/等
Spring 和 Solon 作为容器型框架。都具有 IOC 和 AOP 的能力。其中:
Spring AOP 使用表达式确定“切入点”,可以是某个注解(有侵入),可以是包名或类名或方法(无侵入)
Solon AOP 只使用某个注解确定“切入点”(有侵入)
先看两个示例
1、Spring AOP 示例
Spring AOP 有很多不同的能力构建方式。此处采用更简洁的一种方式:
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.*;
import org.springframework.stereotype.Component;
@Aspect
@Component
public class LoggingAspect {
@Pointcut("execution(* com.example.demo.service.*.*(..))") //也可以是某注解表达式
public void serviceLayer() {}
@Around("serviceLayer()")
public Object logAround(ProceedingJoinPoint joinPoint) throws Throwable {
System.out.println("test");
return joinPoint.proceed();
}
}
复制代码
应用示例
package com.example.demo.service;
@Component
public class UserService {
public String getUserById(Long id) {
return "user-" + id;
}
public void updateUser(String user) {
System.out.println("update: " + user);
}
}
复制代码
2、Solon AOP 示例
Solon AOP 有两种能力构建方式。此处采用更简洁的一种方式:
import org.noear.solon.annotation.Around;
import org.noear.solon.core.aspect.Invocation;
import org.noear.solon.core.aspect.MethodInterceptor;
@Around(Logging.LoggingInterceptor.class) //为注解,附加包围处理的能力
@Target({ElementType.TYPE, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface Logging {
class LoggingInterceptor implements MethodInterceptor {
@Override
public Object doIntercept(Invocation i) throws Throwable {
System.out.println("test");
return i.invoke();
}
}
}
复制代码
应用示例
package com.example.demo.service;
@Logging
@Component
public class UserService {
public String getUserById(Long id) {
return "user-" + id;
}
public void updateUser(String user) {
System.out.println("update: " + user);
}
}
复制代码
3、总结
体验感受Spring AOPSolon AOP有侵入体验通过表达式描述,使用时添加“注解”定义注解,使用时添加“注解”无侵入体验通过表达式描述包名或类名或方法,使用时无感/优点可以完全“无侵入”实现 AOP附加了什么能力比较透明缺点表达式有点难写;(可无限制添加)可能会有些混乱(不能随意添加)可能会有局限性
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
AOP
Spring
Solon
什么
区别
相关帖子
Spring boot 中 CommandLineRunner 在服务启动完成后自定义执行
Spring Cloud Gateway 源码分析一
从 Spring Boot 2.x 到 3.5.x + JDK21:一次完整的生产环境迁移实战
Solon AI 开发学习19 - 结合 Solon Flow 实现 ReAct 效果
人脸识别项目如何在Spring Boot项目中如何建立数据库和管理
咱们聊聊Spring循环依赖那点事儿:从“死锁”到“三级缓存”的奇妙之旅
什么是负载均衡?不就是加台服务器嘛!
画高保真原型图用什么软件?产品经理与设计师的选型思路
Spring Boot中HTTP请求参数转换和请求体JSON反序列化的区别
Spring AI Alibaba 入门指南
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
照妖镜
相关推荐
业界
Spring boot 中 CommandLineRunner 在服务启动完成后自定义执行
2
452
官厌
2025-12-06
业界
Spring Cloud Gateway 源码分析一
2
413
忌才砟
2025-12-06
业界
从 Spring Boot 2.x 到 3.5.x + JDK21:一次完整的生产环境迁移实战
1
869
人弧
2025-12-06
业界
Solon AI 开发学习19 - 结合 Solon Flow 实现 ReAct 效果
1
843
柴古香
2025-12-09
业界
人脸识别项目如何在Spring Boot项目中如何建立数据库和管理
0
401
赖秀竹
2025-12-11
业界
咱们聊聊Spring循环依赖那点事儿:从“死锁”到“三级缓存”的奇妙之旅
1
715
赏听然
2025-12-14
业界
什么是负载均衡?不就是加台服务器嘛!
0
21
卜笑
2025-12-15
安全
画高保真原型图用什么软件?产品经理与设计师的选型思路
0
880
狭踝仇
2025-12-16
业界
Spring Boot中HTTP请求参数转换和请求体JSON反序列化的区别
1
996
恿深疏
2025-12-16
科技
Spring AI Alibaba 入门指南
0
731
靳谷雪
2025-12-18
回复
(4)
尚腱埂
2025-11-2 08:36:26
回复
使用道具
举报
照妖镜
程序园永久vip申请,500美金$,无限下载程序园所有程序/软件/数据/等
鼓励转贴优秀软件安全工具和文档!
梳踟希
2025-11-5 07:32:49
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
懂技术并乐意极积无私分享的人越来越少。珍惜
闻成
2025-11-29 07:43:38
回复
使用道具
举报
照妖镜
程序园永久vip申请,500美金$,无限下载程序园所有程序/软件/数据/等
感谢分享,学习下。
舒娅友
2025-12-6 10:34:24
回复
使用道具
举报
照妖镜
程序园永久vip申请,500美金$,无限下载程序园所有程序/软件/数据/等
用心讨论,共获提升!
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
回复
本版积分规则
回帖并转播
回帖后跳转到最后一页
签约作者
程序园优秀签约作者
发帖
啤愿
2025-12-6 10:34:24
关注
0
粉丝关注
23
主题发布
板块介绍填写区域,请于后台编辑
财富榜{圆}
3934307807
991124
anyue1937
9994892
kk14977
6845357
4
xiangqian
638210
5
韶又彤
9997
6
宋子
9982
7
闰咄阅
9993
8
刎唇
9993
9
俞瑛瑶
9998
10
蓬森莉
9950
查看更多
今日好文热榜
484
【有手就行】SWIFT:花20分钟把大模型的名
559
论文速读记录 | 2025.12(2)
370
浮点数的本质:为什么计算机无法精确表示0.
725
Flink源码阅读:如何生成JobGraph
926
Python 潮流周刊#132:30 年 Python 自由职
480
大模型榜单周报(2025/12/20)
153
【节点】[LinearToGammaSpaceExact节点]原
786
Aspire 与 Azure Functions 深度集成:架构
1001
阿里Z-Image图像生成模型容器部署
309
痞子衡嵌入式:16MB以上NOR Flash地址模式
666
最新AI换脸软件,全面升级可直播,Mirage下
450
热点 Key 与大 Key 治理——识别、拆分、预
646
Media Extended
326
vlookup的终结者splookup,9个案例讲透查询
853
ROS2之Launch介绍
889
精选 8 个 .NET 开发实用的类库,效率提升
85
精选 8 个 .NET 开发实用的类库,效率提升
575
精选 8 个 .NET 开发实用的类库,效率提升
145
精选 8 个 .NET 开发实用的类库,效率提升
116
精选 8 个 .NET 开发实用的类库,效率提升