Может ли Java сделать что-то вроде определения статического поля (имя и значение) из другого класса?
Я хотел бы использовать Spring Security для создания приложения, я выбираю права доступа из базы данных и могу получить такой компонент.
public class MyAuthority {
private Boolean IS_HR;
private Boolean IS_DBA;
private Boolean IS_PM;
private Boolean IS_TL;
getter and setter....
}
И я использую Java-рефлексию, если значение поля равно true, тогда задайте роль имени поля в классе MyAuthority, например, ROLE_HR. И я определил статический класс роли, такой как
public class MyRole {
public static final String HR = "ROLE_HR";
public static final String DBA = "ROLE_DBA";
public static final String PM = "ROLE_PM";
public static final String TL = "ROLE_TL";
}
Это позволяет мне легко использовать аннотацию @Secured как @Secured(MyRole.HR) в моем контроллере.
Но проблема в том, что у меня есть несколько авторитетов, мне не очень нравится определять каждое поле роли, и иногда я хотел бы добавить какое-то поле в класс MyAuthority.
Поэтому возможно определить класс MyRole.class, но не записывать каждое статическое конечное поле, какая база из класса MyAuthority, например, lombok @Slf4j, может генерировать поле регистратора.
Или другие лучшие шаблоны дизайна. Спасибо.