登录
/
注册
首页
论坛
其它
首页
科技
业界
安全
程序
广播
Follow
关于
导读
排行榜
发帖说明
登录
/
注册
账号
自动登录
找回密码
密码
登录
立即注册
搜索
搜索
关闭
CSDN热搜
程序园
精品问答
技术交流
资源下载
本版
帖子
用户
软件
问答
教程
代码
写记录
写博客
小组
VIP申请
VIP网盘
网盘
联系我们
发帖说明
道具
勋章
任务
淘帖
动态
分享
留言板
导读
设置
我的收藏
退出
腾讯QQ
微信登录
返回列表
首页
›
业界区
›
业界
›
Spring AOP 与 Solon AOP 有什么区别?
Spring AOP 与 Solon AOP 有什么区别?
[ 复制链接 ]
啤愿
2025-8-23 11:26:30
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
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 BeanDefinitionRegistry 接口
Solon AI 开发学习11 - chat - 工具调用与定制(Tool Call)
Spring Cloud Gateway WebFlux 模式架构分析
Solon AI 开发学习13 - chat - Tool的输入输出架构及生成类
Spring两大特性 AOP和IOC
Solon AI 开发学习16 - generate - 生成模型(图、音、视)
Spring boot 中 CommandLineRunner 在服务启动完成后自定义执行
Spring Cloud Gateway 源码分析一
从 Spring Boot 2.x 到 3.5.x + JDK21:一次完整的生产环境迁移实战
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
照妖镜
相关推荐
安全
Spring BeanDefinitionRegistry 接口
0
394
剽达崖
2025-11-30
业界
Solon AI 开发学习11 - chat - 工具调用与定制(Tool Call)
0
506
院儿饯
2025-12-04
业界
Spring Cloud Gateway WebFlux 模式架构分析
0
538
国瑾瑶
2025-12-05
业界
Solon AI 开发学习13 - chat - Tool的输入输出架构及生成类
0
942
劳怡月
2025-12-05
业界
Spring两大特性 AOP和IOC
0
404
赙浦
2025-12-05
业界
Solon AI 开发学习16 - generate - 生成模型(图、音、视)
0
268
皇甫佳文
2025-12-06
业界
Spring boot 中 CommandLineRunner 在服务启动完成后自定义执行
2
432
官厌
2025-12-06
业界
Spring Cloud Gateway 源码分析一
0
390
忌才砟
2025-12-06
业界
从 Spring Boot 2.x 到 3.5.x + JDK21:一次完整的生产环境迁移实战
0
843
人弧
2025-12-06
回复
(4)
尚腱埂
2025-11-2 08:36:26
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
鼓励转贴优秀软件安全工具和文档!
梳踟希
2025-11-5 07:32:49
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
懂技术并乐意极积无私分享的人越来越少。珍惜
闻成
2025-11-29 07:43:38
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
感谢分享,学习下。
舒娅友
3 天前
回复
使用道具
举报
照妖镜
程序园永久vip申请,500美金$,无限下载程序园所有程序/软件/数据/等
用心讨论,共获提升!
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
回复
本版积分规则
回帖并转播
回帖后跳转到最后一页
签约作者
程序园优秀签约作者
发帖
啤愿
3 天前
关注
0
粉丝关注
23
主题发布
板块介绍填写区域,请于后台编辑
财富榜{圆}
anyue1937
9994893
kk14977
6845356
3934307807
991122
4
xiangqian
638210
5
宋子
9986
6
闰咄阅
9991
7
刎唇
9993
8
俞瑛瑶
9998
9
蓬森莉
9952
10
匝抽
9986
查看更多