Java 自定义批注默认值Webapplication

Java 自定义批注默认值Webapplication,java,annotations,Java,Annotations,出于好奇,我开始阅读Java注释,并想开始尝试定制注释 我似乎总是遇到一个例子,每个博客作者和每个教程似乎都在使用这个例子:某种方法的作者信息,以及广泛的主要方法 我想做的是: class myUSCitizen { @default(country="USA", token="GName") private String _mostCommonGivenName;+ @Log public void setmostCommonGivenName(String Name){};

出于好奇,我开始阅读Java注释,并想开始尝试定制注释

我似乎总是遇到一个例子,每个博客作者和每个教程似乎都在使用这个例子:某种方法的作者信息,以及广泛的主要方法

我想做的是:

class myUSCitizen {
  @default(country="USA", token="GName")
  private String _mostCommonGivenName;+
  @Log
  public void setmostCommonGivenName(String Name){};

  @default (country="USA", token="age")
  @influence(token="age")
  @influence(token="salary")
  private int age;
  getter;setter;

  @influence(token="age")
  private boolean smoker;getter;setter;

  @calc(token="age")
  private int TTL;
  getter;setter;
}

@calculator
public class agecalculator{
   @calc(token="age")
   public int calculate(int[] args);
}
每次我和我的人类发生关系

1) @default:我希望它在一个配置文件中查找,如果可用,在运行时插入该文件中的默认值(例如,新的USCitizen应该是名为“Steve”的35岁左右的人)

2) @Log注释应该使应用程序在每次调用带注释的方法时都打印一条日志消息

3) @calc(token=“age”)注释应查找@Calculator类,并将用@impact(token=“age”)
注释的myHuman对象的所有成员作为参数传递给计算器的@calc(token=“age”)注释方法,并将TTL的值设置为结果

我要求的是:

是否有人知道关于如何处理我的需求中粗体部分的文档或教程

我的大部分问题是,由于我对Webprojects的经验很少,我应该把需要在应用程序部署/启动时执行的代码放在哪里(保存计算器等的结构)

我不知道这一切是否可能,所以如果你碰巧知道某些事情是绝对不可能的,请澄清一下

我知道,我可以在没有注释的情况下轻松地完成所有这些,有些部分是绝对不必要的,还有一些框架可以完成这些部分,但这只是一个实验,请不要回答我应该如何使用Spring。为了这个和那个^^


提前感谢您提供的任何链接或提示。

我建议您不要使用注释Java系统来实现这一点,而是使用aop,如AspectJ。它将比注释处理器更容易编程,更易于维护,效率更高。您可以在这里找到。

您有大量的需求,从编译时代码生成到运行时代码操作,再到某种注释感知工厂。在我看来,你似乎读得不够多,不足以理解你的要求。此外,由于注释是类,因此它们应该位于
PascalCase
中。这是为了让需求“一团糟”,以鼓励每个可能拥有其中任何一个源代码的人共享它们。我知道,我显然读得不够多,因为我要求来源准确地阅读您命名的方面^^^^谢谢,但正如我所说的,我知道这在没有注释的情况下可以相对容易地完成,但我想了解注释和运行时/编译时代码操纵,只是为了了解它,我提供的这个毫无意义的例子并不能有效地解决,它只是一个建议。在你的例子中,AOP不仅效率更高,而且更容易编程。我知道,我的观点更像是:英语比阿拉伯语更容易学习,也更容易说。如果我想学阿拉伯语,这对我一点帮助都没有^^^我不建议你使用另一种语言,而是另一种“工具”。完全不同。但没问题,祝你好运;)