복붙노트

[SPRING] Spring MVC에서 web.xml에 ContextLoaderListener 추가하기

SPRING

Spring MVC에서 web.xml에 ContextLoaderListener 추가하기

나는 Spring MVC를 처음 사용한다. 웹 응용 프로그램이 있습니다. 나는 다음과 같은 구성을 가지고있다.

<welcome-file-list>
    <welcome-file>list.html</welcome-file>
</welcome-file-list>
<servlet>
    <servlet-name>spring</servlet-name>
    <servlet-class>
        org.springframework.web.servlet.DispatcherServlet
    </servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>spring</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

web.xml 파일에 다음 줄을 추가해야합니까?

<listener>
    <listener-class>
        org.springframework.web.context.ContextLoaderListener
    </listener-class>
</listener>

해결법

  1. ==============================

    1.예, web.xml에 ContextLoaderListener를 추가해야합니다. 앱을로드하는 동안 다른 Spring 컨텍스트 XML 파일도로드하려는 경우에만 그리고 그것들을 다음과 같이 지정할 수 있습니다.

    예, web.xml에 ContextLoaderListener를 추가해야합니다. 앱을로드하는 동안 다른 Spring 컨텍스트 XML 파일도로드하려는 경우에만 그리고 그것들을 다음과 같이 지정할 수 있습니다.

    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>
            /WEB-INF/spring-security.xml
        </param-value>
    </context-param>
    
  2. ==============================

    2.두 개의 config xml 파일이있는 경우에만. 하나는 서비스 / DAO가 있고 다른 하나는 컨트롤러가 있습니다. 하나의 Spring 설정 파일에 모든 것을 설정했다면 ContextLoaderListener가 필요하지 않습니다. 단지 dispatcher 서블릿 만 있으면 충분합니다.

    두 개의 config xml 파일이있는 경우에만. 하나는 서비스 / DAO가 있고 다른 하나는 컨트롤러가 있습니다. 하나의 Spring 설정 파일에 모든 것을 설정했다면 ContextLoaderListener가 필요하지 않습니다. 단지 dispatcher 서블릿 만 있으면 충분합니다.

    구성을 두 개로 분할하고 ContextLoaderListener를 사용하여 루트 응용 프로그램 컨텍스트를 만들고 디스패처 서블릿을 사용하여 웹 레이어 응용 프로그램 컨텍스트를 만드는 것이 좋습니다.

  3. ==============================

    3.선택적입니다. Spring MVC (DispatcherServlet이 할 것입니다)를 위해서 정말로 필요하지 않습니다. 그러나 Spring MVC에 Spring 보안을 추가하는 것은

    선택적입니다. Spring MVC (DispatcherServlet이 할 것입니다)를 위해서 정말로 필요하지 않습니다. 그러나 Spring MVC에 Spring 보안을 추가하는 것은

    <listener>
            <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
    

    ContextLoaderListener를 사용하는 경우 DelegatingFilterProxy를 추가해야합니다.

    <listener>
        <listener-class>
            org.springframework.web.context.ContextLoaderListener
        </listener-class>
    </listener>
    
    <filter>
        <filter-name>springSecurityFilterChain</filter-name>
        <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>springSecurityFilterChain</filter-name>
        <url-pattern>/admin</url-pattern>
    </filter-mapping>
    
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>     
        /WEB-INF/spring-security.xml
        </param-value>
    </context-param>
    

    귀하의 web.xml에서. 너무 늦게 4 년 동안 유감스럽게 생각합니다. 건배

  4. ==============================

    4.

    <servlet>
            <servlet-name>spring</servlet-name>
            <servlet-class>
                org.springframework.web.servlet.DispatcherServlet
            </servlet-class>
            <init-param>
                <param-name>contextConfigLocation</param-name>
                <param-value>classpath:applicationContext.xml,WEB-INF/spring-security.xml</param-value>
            </init-param>
            <load-on-startup>1</load-on-startup>
        </servlet>
        <servlet-mapping>
            <servlet-name>spring</servlet-name>
            <url-pattern>UR_PATTERN</url-pattern>
        </servlet-mapping>
    

    이것은 나를 위해 잘 일했다.

  5. from https://stackoverflow.com/questions/11014782/adding-contextloaderlistener-to-web-xml-in-spring-mvc by cc-by-sa and MIT license