Java 声明我自己的注释

Java 声明我自己的注释,java,spring,Java,Spring,正如您所知,当我想在spring framework中将类注入到类的属性中时,我会这样做: Class sample { @Autowired MyService service; } 或者使用@Resource或@Named或其他什么。 但现在我想知道,如果可能的话,我会声明自己的注释,比如@MyInjection来做这些事情,并且做更多的事情 例如,创建一个类并将这个创建的bean注入到类的属性中,而不是搜索应用程序上下文并找到要注入的适当bean 谢谢。注释基本上就是关于数据的

正如您所知,当我想在spring framework中将类注入到类的属性中时,我会这样做:

Class sample {
  @Autowired 
  MyService service;
}
或者使用@Resource或@Named或其他什么。 但现在我想知道,如果可能的话,我会声明自己的注释,比如@MyInjection来做这些事情,并且做更多的事情

例如,创建一个类并将这个创建的bean注入到类的属性中,而不是搜索应用程序上下文并找到要注入的适当bean


谢谢。

注释基本上就是关于数据的数据。因此,如果您想处理注释,就必须编写一个自定义注释处理器

我建议您查看Spring的AOP特性以了解更多详细信息:


使用AOP,您基本上创建了一个注释(在您的例子中),然后配置Spring在遇到注释时执行某些操作(如果我没记错的话,Spring会使用regexps)。这叫做切入点。然后,如果Spring找到匹配项,它将运行基本上可以是任何内容的自定义代码。

我认为可以通过使用Spring的工厂方法来实现您想要的功能,,当Spring即将解决某些依赖项时,会调用该方法。希望这有帮助。

您可以,但是你也需要编写自己的
BeanPostProcessor
。@juan.facorro我认为重点是如何获得行为,而不是声明注释。@juan.facorro这不是重复的,因为我们这里有Spring作为上下文。@SotiriosDelimanolis和AdamArold我认为你都是对的。好的,这是一个很好的观点,我怎么能或者,我从哪里可以获得有关spring框架行为的适当文档或源代码,这些行为带有@Autowired或……注意spring AOP只有方法调用连接点。他们似乎想设置字段。正如Sotirios Delimanolis正确地说的,AOP只有方法调用连接点,我想设置字段。我假设如果你想设置字段,就调用setter。