2013-11-01 3 views
0

관리자 인터페이스와 관련하여 몇 가지 속성을 설정해야합니다. 이 내가 @PropertySource을 초기화하는 방법입니다@PropertySource로 초기화 된 속성을 설정하는 방법

public @Controller @RequestMapping("admin") class AdminController { 
    private @Autowired Environment env; 

    public @RequestMapping(value = "settings.html", method = RequestMethod.POST) String processSettings(@Valid SettingsForm settingsForm, BindingResult result, Model model) { 
     if (result.hasErrors()) { 
      return settings(model); 
     } 

     // env.setProperty("foo.bar", settingsForm.getFooBar()); 
     return "redirect:settings.html"; 
    } 
} 

을하지만 아무도 setProperty 방법은 org.springframework.core.env.Environment 거기에 없습니다 :

@Configuration 
@PropertySource("classpath:application.properties") 
public class MainConfig 

지금, 내 관리 컨트롤러에서 나는 application.properties에서 일부 속성을 설정해야합니다. 이러한 속성을 설정하려면 어떻게해야합니까? @Bean을 또 만들어야합니까? @Bean의 모양은 (application.properties을 다시 언급하지 않고) 어떻게 표시되어야합니까?

답변

1

Environment 구현 클래스는 지정된 순서로 MutablePropertySources의 인스턴스를 등록합니다. 속성을 Environment에서 확인해야 할 경우 MutablePropertySources을 반복하여 (순서대로) 찾은 첫 번째 속성 값을 사용합니다. 그 이름을 받고, 당신의 application.properties 파일 (또는 다른)에 해당하는 하나를 발견, 그들을 통해 반복, 모든 MutablePropertySources 객체를 얻고, 변경된 값을 가진 새로운 PropertySource 객체로 대체 짧은

는 방법이 없습니다 이것을하기 위해.

또한 Spring은 .properties 개의 파일에 대해 PropertiesPropertySource 개체를 만들고 속성 값을 변경하는 방법을 제공하지 않습니다.

+0

그러면 내 백엔드에서 다른 방법을 사용하고 프론트 엔드에서 환경을 사용해야합니다. – dtrunk

관련 문제