Может ли Java сделать что-то вроде определения статического поля (имя и значение) из другого класса - PullRequest
0 голосов
/ 16 сентября 2018

Я бы хотел использовать Spring Security для создания приложения, я выбираю права доступа из базы данных и могу получить такой bean-компонент.

public class MyAuthority {
  private Boolean IS_HR;
  private Boolean IS_DBA;
  private Boolean IS_PM;
  private Boolean IS_TL;
  getter and setter....
}

И я использую Java-рефлексию, если значение поля истинно, а затем присваиваю роль имени поля в 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 , но не делать запись каждого поля static final на основе MyAuthority класса, например, lombok @ Slf4j может генерировать поле логгера.

Или другие лучшие образцы дизайна. Спасибо.

...