스프링 컨텍스트를 직접 사용하지 않고 @ConfigurationProperties
으로 표시된 클래스를로드하는 방법이 있습니까? 기본적으로 스프링이하는 똑똑한 로직을 모두 재사용하고 싶지만 빈의 경우 스프링 라이프 사이클 외부에서 수동으로 인스턴스를 생성한다.스프링 AppContext없이 @ConfigurationProperties를 수동으로로드 할 수 있습니까?
나는 봄 (부팅)에서 즐겁게로드 빈을하고 난 내 다른 서비스 콩에이를 주입 할 수 있습니다
@ConfigurationProperties(prefix="my")
public class MySettings {
String property1;
File property2;
}
더 많은 정보를 원하시면 http://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/#boot-features-external-config-command-line-args
의 스프링 docco를 참조하지만 지금은 필요 (Hibernate에 의해) Spring 외부에서 생성 된 클래스로부터이 빈에 접근한다. 이 클래스는 앱 시작 프로세스의 초기에 만들어 지므로 Spring Boot는 고전적인 룩업 도우미 메서드 나 롤 - 내 자신의 정적 참조를 통해 응용 프로그램 컨텍스트를 사용할 수 없게 만든다. 일부 클래스에 있는가
MySettings mySettings = new MySettings();
SpringPropertyLoadingMagicClass loader = new SpringPropertyLoadingMagicClass();
loader.populatePropertyValues(mySettings);
그리고 MySettings 등 명령 줄, 시스템 특성, app.properties에서로드 된 모든 값과 끝이 있습니다
그래서 내가 대신 뭔가를하고 싶어 이런 식으로하거나 응용 컨텍스트와 너무 얽혀있는 봄?
분명히 Properties 파일을 직접로드 할 수는 있지만 커맨드 라인 변수 (예 : --my.property1 = xxx) 또는 시스템 변수 또는 application.properties를 사용하여 Spring Boot 논리를 유지하려고합니다. yaml 파일뿐만 아니라 편안한 바인딩과 타입 변환 (예 : property2는 File)에 대한 로직을 포함하고 있기 때문에 Spring 컨텍스트에서 사용되는 것과 완전히 똑같이 작동한다.
꿈이 있습니까?
도움 주셔서 감사합니다.
자세한 답변을 보내 주셔서 감사합니다. 그것은 나를 많이 도와줍니다. – Rib47