스프링 부트에서의 context-param 설정 방법
기존의 web.xml 타입 설정에서는 다음과 같이 컨텍스트파라미터를 설정할 수 있습니다.
web.xml
...
<context-param>
<param-name>p-name</param-name>
<param-value>-value</param-value>
</context-param>
...
스프링 부트에서 이 작업은 어떻게 수행됩니까?매개 변수가 필요한 필터가 있습니다.
사용하고 있다@EnableAutoConfiguration를 포함하다<artifactId>spring-boot-starter-jetty</artifactId>내 폼에.
파라미터를 설정하려면server.servlet.context-parameters응용 프로그램 속성.예를 들어 다음과 같습니다.
server.servlet.context-parameters.p-name=p-value
더 이상 지원되지 않는 Spring Boot 1.x에서는 이 속성의 이름이 지정되었습니다.server.context-parameters:
servlet.context-parameters=p-name=p-value
또는 파라미터를 프로그래밍 방식으로 설정할 수 있습니다.ServletContextInitializer콩:
@Bean
public ServletContextInitializer initializer() {
return new ServletContextInitializer() {
@Override
public void onStartup(ServletContext servletContext) throws ServletException {
servletContext.setInitParameter("p-name", "-value");
}
};
}
Java Configuration을 사용하면 실제로 이 작업을 수행할 수 있습니다.파라미터가 필요한 필터가 있는 경우 application.yml(또는 .properties)에 삽입하기만 하면 됩니다.@Value에 등록합니다.FilterRegistrationBean.
예를 들어 다음과 같습니다.
@Value("${myFilterParam}")
private String myFilterParam;
@Bean(name="myFilter")
public FilterRegistrationBean myFilter() {
FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(new MyFilter());
filterRegistrationBean.setInitParameters(Collections.singletonMap("p-name", "p-value"));
return filterRegistrationBean;
}
JavaDoc도 지원FilterRegistrationBean:
갱신하다
에서 서블릿 컨텍스트의 파라미터를 등록할 수 있습니다.SpringBootServletInitializer#onStartup()방법.응용 프로그램클래스는SpringBootServletInitializer이 명령어를 덮어쓸 수 있습니다.onStartupmethod 및 파라미터를 설정합니다.예:
@Configuration
@EnableAutoConfiguration
@ComponentScan
public class Application extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(Application.class);
}
@Override
public void onStartup(ServletContext servletContext) throws ServletException {
servletContext.setInitParameter("p-name", "p-value");
super.onStartup(servletContext);
}
public static void main(String[] args) {
SpringApplication.run(Application.class);
}
}
다른 대안은 다음을 정의하는 것입니다.ServletContextInitializer앤디 윌킨슨이 제안한 콩.
Spring Boot 2.0.0 이후 컨텍스트파라미터 추가 방법이 갱신되었습니다.
server.servlet.context-parameters.yourProperty.
이 링크에서 더 많은 업데이트를 볼 수 있습니다.
또한 Configuration에 Init Parameter Configuring Servlet Context Initializer를 정의할 수도 있습니다.예:
@Bean
public InitParameterConfiguringServletContextInitializer initParamsInitializer() {
Map<String, String> contextParams = new HashMap<>();
contextParams.put("p-name", "-value");
return new InitParameterConfiguringServletContextInitializer(contextParams);
}
언급URL : https://stackoverflow.com/questions/26639475/how-to-set-context-param-in-spring-boot
'programing' 카테고리의 다른 글
| JQuery를 사용하여 AJAX를 사용하여 Excel 데이터 전송 (0) | 2023.04.05 |
|---|---|
| 서버측 최적화를 위해 $http를 통해 angular-ui의 자동 검색을 서버에 연결하려면 어떻게 해야 합니까? (0) | 2023.04.05 |
| angularjs는 ng-module로 동작하지 않는 필수 항목을 선택합니다. (0) | 2023.04.05 |
| 관계형 데이터베이스 대신 NoSQL 데이터베이스를 사용해야 하는 경우둘 다 같은 사이트에서 사용해도 될까요? (0) | 2023.04.05 |
| 정의 파일의 클래스 가져오기(*d.ts) (0) | 2023.04.05 |