SpringBoot- 구성 임베디드 서블릿 컨테이너 (13)

임베디드 톰캣 서블릿 컨테이너의 기본값으로 사용할 SpringBoot;

어떻게 정의하고 서블릿 컨테이너 구성을 수정할 수 있습니다

1, 수정 및 서버 관련 구성 (ServerProperties EmbeddedServletContainerCustomizer [도]);

= 8081 server.port 
server.context -path = / CRUD 

server.tomcat.uri -encoding. 8 = UTF- // 일반 서블릿 컨테이너가 제공 server.xxx
 // 설정 톰캣 
server.tomcat.xxx


2, 기록 EmbeddedServletContainerCustomizer을 : 서블릿 컨테이너 맞춤 임베디드 장치를 상기 구성 서블릿 컨테이너를 수정할

@Bean은   // 컨테이너에 추가됩니다이를 사용자 정의해야합니다 
공공 EmbeddedServletContainerCustomizer embeddedServletContainerCustomizer () {
     반환  새 새 {) EmbeddedServletContainerCustomizer을 ( 

        // 사용자 정의 임베디드 서블릿 컨테이너 관련 규칙이 
        @Override
         공공  무효 사용자 정의 (ConfigurableEmbeddedServletContainer 컨테이너) { 
            container.setPort를 ( 8083 ); 
        } 
    } 
}

등록 서블릿 세 가지 구성 요소 [서블릿, 필터, 리스너]

SpringBoot 기본 항아리 패키지 웹 응용 프로그램을 시작 임베디드 서블릿 컨테이너를 시작하는 방법이기 때문에 더 web.xml 파일을 SpringBoot 없습니다.

다음과 같은 방법으로 등록 된 세 가지 구성 요소

ServletRegistrationBean

// 注册三大组件
@Bean
 공공 ServletRegistrationBean에게 MyServlet () { 
    ServletRegistrationBean 위해 RegistrationBean = 새로운 ServletRegistrationBean (  에게 MyServlet () "/에게 MyServlet" );
    반환 위해 RegistrationBean을; 
}

FilterRegistrationBean

@Bean
 공개 FilterRegistrationBean myFilter () { 
    FilterRegistrationBean 위해 RegistrationBean = 새로운 FilterRegistrationBean (); 
    registrationBean.setFilter ( MyFilter ()); 
    registrationBean.setUrlPatterns (Arrays.asList ( "/ 헬로", "/에게 MyServlet" ));
    반환 위해 RegistrationBean을; 
}

ServletListenerRegistrationBean

@Bean
 공개 ServletListenerRegistrationBean에 myListener의 () { 
    ServletListenerRegistrationBean <위한 MyListener> = 위해 RegistrationBean 새로운 ServletListenerRegistrationBean <> ( 새로 위한 MyListener ());
    반환 위해 RegistrationBean을; 
}

자동으로 우리에게 때 자동 등록 SpringMVC 전면 컨트롤러를 SpringMVC 도움 SpringBoot;의 DispatcherServlet을;

DispatcherServletAutoConfiguration 中 :

@Bean (이름 = DEFAULT_DISPATCHER_SERVLET_REGISTRATION_BEAN_NAME) 
@ConditionalOnBean (값 . = DispatcherServlet에의 클래스 이름 = DEFAULT_DISPATCHER_SERVLET_BEAN_NAME)
 공공 ServletRegistrationBean dispatcherServletRegistration ( 
      DispatcherServlet에 DispatcherServlet을) { 
   ServletRegistrationBean 등록 = 새로운 새로운 ServletRegistrationBean ( 
         DispatcherServlet을, 다음은이 .serverProperties.getServletMapping ());
     // 기본 절편 : / 모든 요청, 차단은 JSP / *; 정적 패킷 자원,하지만 JSP 요청을 차단하지 않습니다
     // 기본 SpringMVC 프론트 컨트롤러 요청 경로를 수정할 수 있습니다 server.servletPath을 차단을
    
   registration.setName (DEFAULT_DISPATCHER_SERVLET_BEAN_NAME); 
   registration.setLoadOnStartup ( 
         .webMvcProperties.getServlet () getLoadOnStartup ().);
   경우 (  ! .multipartConfig = 널 (null) ) { 
      registration.setMultipartConfig ( .multipartConfig); 
   } 
   리턴 등록하는 단계; 
}

다른 임베디드 서블릿 컨테이너를 교체

기본적으로 지원 :

톰캣 (기본값)

< 의존성 > 
   < 의 groupId > org.springframework.boot </ 의 groupId > 
   < artifactId를 > 스프링 부팅 스타터 웨브 </ artifactId를 > 
   혼입 기본 웹 모듈이 내장 톰캣 서블릿 컨테이너로서 사용된다; 
</ 의존성 >

<! - 引入웹模块-> 
< 의존성 > 
   < 의 groupId > org.springframework.boot </ 의 groupId > 
   < artifactId를 > 스프링 부팅 스타터 웹 </ artifactId를 > 
   < 제외 > 
      < 배제 > 
         < artifactId를 > 스프링이 부팅 스타터 바람둥이 </ artifactId를 > 
         < 의 groupId > org.springframework.boot </ 의 groupId > 
      </ 배제 > 
   </ 제외 >
</ 의존성 > 

<! - 引入其他的서블릿容器-> 
< 의존성 > 
   < artifactId를 > 스프링 부팅 스타터 부두 </ artifactId를 > 
   < 의 groupId > org.springframework.boot </ 의 groupId > 
</ 의존성 >

물가에서 물러가는 물결

<! - 引入웹模块-> 
< 의존성 > 
   < 의 groupId > org.springframework.boot </ 의 groupId > 
   < artifactId를 > 스프링 부팅 스타터 웹 </ artifactId를 > 
   < 제외 > 
      < 배제 > 
         < artifactId를 > 스프링이 부팅 스타터 바람둥이 </ artifactId를 > 
         < 의 groupId > org.springframework.boot </ 의 groupId > 
      </ 배제 > 
   </ 제외 >
</ 의존성 > 

<! - 引入其他的서블릿容器-> 
< 의존성 > 
   < artifactId를 > 스프링 부팅 스타터 물러 </ artifactId를 > 
   < 의 groupId > org.springframework.boot </ 의 groupId > 
</ 의존성 >

 

 

 

추천

출처www.cnblogs.com/xiaoqiqistudy/p/11366461.html