【问题标题】:Logger-annotation for ArrayListArrayList 的记录器注释
【发布时间】:2021-03-15 20:24:02
【问题描述】:

我有几项服务:

@Service
public class Order {...}

@Service
public class Statistic {...}

@Service
public class Product {...}

所有服务都组合在 ArrayLists 中的一个公共类中

public class MyExample {

@MyLogAnnotation
private List <Order> listOrder;
@MyLogAnnotation
private List <Statistic> listStatistic;
@MyLogAnnotation
private List <Product> listProduct
}

如何实现注解(@MyLogAnnotation) 监控Lists(Order,Statistic,Product) 以及每次新服务添加到列表时。记录器显示列表中的元素数量和新服务的类别。

【问题讨论】:

  • 如果订单是一项服务,为什么会有订单列表?你的设计毫无意义。我建议首先重新考虑设计
  • 就像@Stultuske 所说,服务列表(即单例!)没有多大意义。此外,Spring AOP 通常使用类或方法上的注释,而不是字段。最后但同样重要的是,Spring AOP 仅适用于 Spring bean。 JDK 类不是 Spring 组件。这里有很多设计问题。这是一个典型的XY problem。请在 GitHub 上显示MCVE,并说明您想要实现的什么,而不是如何您认为应该在技术上完成。我相信有一个很好的解决方案。
  • 嗨,Kriegaex!感谢您的扩展答案。请查看我的存储库。在那里我更详细地描述了我的任务。 [链接]github.com/finproject/aspect.git

标签: java spring aop spring-aop


【解决方案1】:

您会找到与您正在寻找的内容相似的内容here。除此之外,您还可以进一步使用反射 API 来调用 ArrayList(s) 上的 size() 方法。

【讨论】:

  • 不完全。我需要一个在每次调用 ArrayList 的 add() 方法时执行的动态解决方案。我猜我需要为 add() 方法或 tech spring 上的自定义 lisener 编写一个方面拦截器
猜你喜欢
  • 2021-11-12
  • 2021-07-26
  • 2021-07-12
  • 2020-07-02
  • 2017-08-03
  • 2022-09-23
  • 2021-07-14
  • 2014-05-29
  • 2022-01-01
相关资源
最近更新 更多