2011-11-16 3 views
1

런타임시 스프링 빈 (서비스)의 속성을 변경하는 방법이 있습니까? 사용자가 일부 설정을 변경할 수있는 작은 응용 프로그램에 grails를 사용하고 있습니다. 이 설정은 grails의 ext config params에있는 등록 정보 파일에 기록됩니다. 그래서 응용 프로그램을 다시 시작하면 등록 정보가 읽히고 bean은이 변경 사항으로 init됩니다. 완전히 다시 시작하지 않고 서비스를 다시로드 할 수있는 방법이 있습니까?Spring/Grails - 새로운 속성을 가진 bean을 새로 고침

사용자가 전달할 수있는 서비스를 설정하려면 런타임에 모든 설정을 사용할 수 있어야합니다.

+0

http://stackoverflow.com/questions/595118/having-spring-bean-properties-refreshed-automatically-from- properties-file help? – bbaja42

답변

1

이 요구 사항에 접근하는 방식을 다시 설계해야한다고 생각합니다. 사용자가 앱의 UI를 통해 할 수있는 거대한 코드 냄새입니다. 다시 시작해야 효과가 나타납니다.

그렇다고해서 아마도 ApplicationContext object을 잡아 UI에서 이벤트를 잡아 내고 서비스의 인스턴스를 바꾸는 것이 좋을 것 같습니다. 그 컨텍스트에서 새 구성 값에 액세스해야하기 때문입니다. 그러나 나는 그것을 반대 할 것이고, 그것은 당신을 붙잡 으러 돌아올 해킹 된 해결책이다. :)

관련 문제