您现在的位置是:首页 > 文章详情

🔥 Spring AOP 与 Solon AOP 有什么区别?

日期:2025-08-22点击:18

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 AOP Solon AOP
有侵入体验 通过表达式描述,使用时添加“注解” 定义注解,使用时添加“注解”
无侵入体验 通过表达式描述包名或类名或方法,使用时无感 /
优点 可以完全“无侵入”实现 AOP 附加了什么能力比较透明
缺点 表达式有点难写;(可无限制添加)可能会有些混乱 (不能随意添加)可能会有局限性

 

原文链接:https://www.oschina.net/news/367809
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章