Вы можете «включить» аннотации Spring в пользовательский, например (источник / подтверждение: SpringBootApplicaiton исходный код ):
package my.package.annotations;
@org.springframework.stereotype.Component("studentInfo") // needs "constant expression" here
@org.springframework.context.annotation.Profile("studentInfo") // .. and here!
public @interface MyCustomSpringAnnotation { ...
// but here you have a problem,
// since you cannot pass (at least not to the above annotations,
// ... but maybe dynamically *hack* into the spring context):
String value() default ""; //?
}
... тогда вы можете использовать его как :
@MyCustomSpringAnnotation
public class CustomStudentInfo { // ...
, но с фиксированным «studentInfo» это не улучшение (а наоборот).
Вероятно, «самое пружинное» и лучшее решение (без стресса) с «слишком большим количеством аннотаций»): потреблять "studentInfo"
из «видимой» (stati c) конечной переменной (вероятно, лучшей в соответствующем классе):
@org.springframework.stereotype.Component(CustomStudentInfo.PROFILE_NAME)
@org.springframework.context.annotation.Profile(CustomStudentInfo.PROFILE_NAME)
public class CustomStudentInfo {
public static final String PROFILE_NAME = "studentInfo";
// ...