当前位置: 首页 > 知识库问答 >
问题:

实现自定义注释

胡高寒
2023-03-14

我想创建一个自定义注释(方法作用域),将插入数据库。这个注释将附加到我的rest控制器中的每个方法,这样当进行api调用时,注释将在数据库中的track-user表中保存所做的操作

到目前为止,我已经创建了注释接口,我认为我需要添加一个方法,将action&author保存在track-user表中,但我不知道在哪里或如何:

@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface ActionLog {
    String action() default "UNDEFINED";
    String author() default "UNDEFINED";
}

我想这样使用它:

@ActionLog(author="John",action="get all users")
public List<User> getAllUsers() { return repo.findAll(); }

然后在我的数据库中,我应该有一个新的操作插入及其作者

共有1个答案

隆安然
2023-03-14

要创建自己的注释,您必须首先创建一个您已经完成的接口,而不是为相同的接口编写一个方面类。

@Component
@Aspect
public class ActionLogAspect {


  @Around(value = "@annotation(ActionLog)", argNames = "ActionLog")
  public  getUsersByAuthorName(ProceedingJoinPoint joinPoint, ActionLog actionLog) throws Throwable {

    List<User> userList = new ArrayList();

     //Your Logic for getting user from db using Hibernate or Jpa goes here.
     //You can call your functions here to fetch action and author by using
    // actionLog.action() and actionLog.author()

    return userList;
    }

}
 类似资料:
  • 本文向大家介绍Hibernate Validation自定义注解校验的实现,包括了Hibernate Validation自定义注解校验的实现的使用技巧和注意事项,需要的朋友参考一下 情景:需要对String类型的属性比如description进行验证,验证规则是当description为空时不进行正则校验,description不为空时进行正则校验。上述需求Hibernate Validatio

  • 在开发过程中,常常需要为一些repository方法添加自定义的实现。Spring Data repository允许开发者自定义repository方法。

  • 看起来Spring总是使用< code > inmemorrelyingpartyregistrationrepository 来返回一个< code > RelyingPartyRegistrationRepository 类型的bean,请参考https://github . com/Spring-projects/Spring-boot/blob/master/Spring-boot-pro

  • 我正在使用Weld作为基础CDI框架实现。 我有一个类ClassWithoutControl,它没有一个no-arg构造函数(也就是不是一个有效的Bean)。 我为该类创建了一个自定义Bean。 在触发AfterBeanDiscovery事件时,我通过扩展添加此bean。 当对这个bean调用create(creationalcontext<>ctx)时,我构造了ClassWithoutContr

  • 问题 你想实现一个自定义的类来模拟内置的容器类功能,比如列表和字典。但是你不确定到底要实现哪些方法。 解决方案 collections 定义了很多抽象基类,当你想自定义容器类的时候它们会非常有用。 比如你想让你的类支持迭代,那就让你的类继承 collections.Iterable 即可: import collections class A(collections.Iterable):

  • 我需要实现我的自定义DefaultComboxModel。这样做的原因是每次我打电话给 或者 或者 我看到它自动触发一个项目状态更改事件。这会导致一些随机项目自动从列表中选择。这不是我想要的,因为它用随机选择的项目填充可编辑的JTextField。 这是我在使用我的自定义Itemlistener中的Thread.dumpStack()进行调试时看到的stacktrace,它是我在调用上述方法时看到

  • 我读到了Crudrepository,这是一个接口,用于在特定类型的存储库上进行通用CRUD操作。 但是我们可以创建我们的自定义接口并扩展CrudRepository。

  • 我用Selenium创建了测试框架,并为测试报告设置了ExtentReports。对字段使用页面对象模型和@FindBy注释为每个页面创建自己的WebElements存储。现在我想创建自定义注释@Name 以及它的实现,以便能够在我的报告后面使用每个WebElement的描述。我有我自己的实现点击()方法 我能够得到所有元素的描述注释类与反射像这里 是否可以在java中读取注释的值? 但无法获取我