복붙노트

[SPRING] @ 클래스 객체 getter에 대한 조건부 표현식

SPRING

@ 클래스 객체 getter에 대한 조건부 표현식

런타임시 @conditionalonexpression 클래스를 사용하여 클래스의 객체를 평가하여 런타임에 @conditionalonexpression을 사용하도록 설정하는 방법이 있는지 궁금합니다.

예시 :

@ConditionalOnExpression(#{propertyobject.getexenabled()})
class ex1{

}

propertyobject 인스턴스가 런타임에 값으로 채워집니다 (프로그램 시작 부분에 말하기). 이것이 가능한가요?

해결법

  1. ==============================

    1.예, 가능하지만 getexenabled () 메소드는 정적이어야합니다.

    예, 가능하지만 getexenabled () 메소드는 정적이어야합니다.

    처럼:

    @SpringBootApplication
    public class So44456388Application {
    
        public static void main(String[] args) {
            SpringApplication.run(So44456388Application.class, args);
        }
    
        public static class Evaluator {
            public static boolean getexenabled() {
                //your logic here
                return true /*false*/;
            }
        }
    
        @Component
        @ConditionalOnExpression("#{T(com.stackoverflow.so44456388.So44456388Application$Evaluator).getexenabled()}")
        public static class RichBean {
            @PostConstruct
            private void init() {
                System.out.println("RichBean");
            }
        }
    }
    
  2. from https://stackoverflow.com/questions/44456388/conditionalonexpression-on-a-class-object-getter by cc-by-sa and MIT license