Как скрыть аннотированные поля в Spring Boot с помощью пользовательских аннотаций? - PullRequest
0 голосов
/ 18 сентября 2018

Я создал пользовательские аннотации, которые добавляю в поля своего класса Java.Когда я создаю объект этого класса, я хочу, чтобы мои настраиваемые аннотированные поля имели значение: null или "" или "customAnnotation" Например:

@Entity
public class User implements Serializable{

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "address_id")
private Long id;

@MyCustomAnnotation
private String firstname;

private String lastname;
....

И когда я создаю объект где-то в проекте:

User user = new User();
user.setFirstname("John");
user.setLastname("Smith");

Я хочу, чтобы это было:

String firstname = user.getFirstname() // firstname is "" or null
String lastname = user.getLastname()   // lastname is "Smith"

Как создать метод, который будет находить все аннотированные поля во всех классах в проекте и делать то же самое для всех них?Где хранить этот метод?Я работаю над проектом Maven, Spring Boot.

1 Ответ

0 голосов
/ 19 сентября 2018

В какой-то момент в вашем коде вам придется реализовать что-то вроде этого:

Class<User> obj = User.class;

if (obj.isAnnotationPresent(MyCustomAnnotation.class)) {
  //your business logic
}

Разумные места для чего-то подобного будут либо сразу при создании пользователей, при получении пользователей (по какой-либо причине аннотациииспользуется) или через определенные промежутки времени.

редактировать: см. Этот урок: https://www.mkyong.com/java/java-custom-annotations-example/

...