Вот мой код (упрощенный, но работающий), это механизм расчета, пилот, применяющий правила в определенных заказах:
class Rule1 implements IRule{
doSomethingMethod () {}
}
class Rule2 implements IRule{
doSomethingMethod () {}
}
...
class Engine1 () {
Rule1.doSomething();
Rule2.doSomething();
}
class Engine2 () {
Rule3.doSomething();
Rule99.doSomething();
Rule5.doSomething();
}
Я хотел бы закодировать это с помощью пользовательских аннотаций, потому что моя цель - сделать статистику, из каких движков вызывать какие правила, и я думаю, что это будет проще:
public @Interface Rule (){
class Rule rule;
}
class Engine1 () {
@Rule(Rule1.class);
@Rule(Rule2.class);
}
class Engine2 () {
@Rule(Rule3.class);
@Rule(Rule99.class);
@Rule(Rule5.class);
}
Тогда я мог бы, возможно, выполнить сканирование с помощью org.springframework.context.annotation.ClassPathScanningCandidateCom, чтобы упростить статистику.
Возможно ли это (и как?)?
Это хороший способ сделать?
Я там по-другому?