복붙노트

[SPRING] <mvc : annotation-driven />를 제거하는 방법?

SPRING

를 제거하는 방법?

지금까지는 가 나에게 많은 문제를 일으켰으므로 제거하고 싶습니다. 스프링 프레임 워크 문서가 분명히 말하고있는 것은 분명하지만, 실제로 요약 된 태그 목록은 부족합니다.

그래서 을 제거하고 오류가 발생했습니다.

컨트롤러 클래스 (이 경우 : ./trainees)에 의해 해결되어야하는 모든 URL에 대해. 에 대한 자세한 정보는 어디에서 얻을 수 있습니까? 필자는 에 의해 정확히 어떤 태그가 표현되는지 알고 싶어합니다.

해결법

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

    1.BeanPostProcessor를 사용하여 에 정의 된 각 bean을 사용자 정의 할 수 있습니다. javadocs는 이제 태그가 등록하는 모든 bean을 자세히 설명합니다.

    BeanPostProcessor를 사용하여 에 정의 된 각 bean을 사용자 정의 할 수 있습니다. javadocs는 이제 태그가 등록하는 모든 bean을 자세히 설명합니다.

    정말로 제거하고 싶다면, org.springframework.web.servlet.config.AnnotationDrivenBeanDefinitionParser의 소스 코드를 볼 수있다.

    그리고 당신은 그것이 정의하고있는 콩을 볼 수 있습니다. 나는이 '운동'(모든 사람들을위한 것은 아니지만 필요한 사람들을위한 운동)을 했으므로 여기에 그것들이있다.

    <bean id="validator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean" />
    <bean id="conversionService" class="org.springframework.format.support.FormattingConversionServiceFactoryBean" />
    
    <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
            <property name="webBindingInitializer">
                <bean class="com.yourpackage.web.util.CommonWebBindingInitializer" />
            </property>
            <property name="messageConverters">
                <list>
                    <bean class="org.springframework.http.converter.ByteArrayHttpMessageConverter" />
                    <bean class="org.springframework.http.converter.ResourceHttpMessageConverter" />
                    <bean class="org.springframework.http.converter.StringHttpMessageConverter" />
                    <bean class="org.springframework.http.converter.feed.AtomFeedHttpMessageConverter" />
                    <bean class="org.springframework.http.converter.feed.RssChannelHttpMessageConverter" />
                    <bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter" />
                    <bean class="org.springframework.http.converter.xml.SourceHttpMessageConverter" />
                    <bean class="org.springframework.http.converter.xml.XmlAwareFormHttpMessageConverter" />
                    <!-- bean class="org.springframework.http.converter.xml.Jaxb2RootElementHttpMessageConverter" /-->
                </list>
            </property>
        </bean>
    <bean id="handlerMapping"
        class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping">
    

    자, 위에 CommonWebBindingInitializer가 보입니다. 변환 및 유효성 검사를 사용하려면이 클래스를 만들어야합니다.

    public class CommonWebBindingInitializer implements WebBindingInitializer {
    
        @Autowired
        private Validator validator;
    
        @Autowired
        private ConversionService conversionService;
    
        @Override
        public void initBinder(WebDataBinder binder, WebRequest request) {
            binder.setValidator(validator);
            binder.setConversionService(conversionService);
        }
    
    }
    

    그리고 이것은 지금까지 나를 위해 잘 작동합니다. 언제든지 문제를보고하십시오.

  2. ==============================

    2.mvc : annotation-driven 태그를 사용하지 않으려면 DefaultAnnotationHandlerMapping 및 AnnotationMethodHandlerAdapter beans를 직접 만들면되지만 태그 자체의 문제의 근원에 도달하는 것이 더 좋을 것 같습니다.

    mvc : annotation-driven 태그를 사용하지 않으려면 DefaultAnnotationHandlerMapping 및 AnnotationMethodHandlerAdapter beans를 직접 만들면되지만 태그 자체의 문제의 근원에 도달하는 것이 더 좋을 것 같습니다.

    문제의 증상은 무엇입니까? 스프링 MVC 애플리케이션으로 무엇을하려 하는가?

    mvc : annotation-driven을 사용할 때 커버 아래에 무슨 일이 일어나고 있는지 알고 싶다면 AnnotationDrivenBeanDefinitionParser.parse () 메소드를 참조하십시오.

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

    3.내가 아는 오래된 질문이지만, 이것은 누군가를 도울 수 있습니다. 이 페이지의 게시물과 여기에 감사의 말로 Roo 1.2 앱의 주석 중심 태그를 대체하기 위해 다음을 사용했습니다. 그들은 나를 위해 키커는 루어 애플 리케이션 목록보기에서 지원 유형 변환이 필요했습니다.

    내가 아는 오래된 질문이지만, 이것은 누군가를 도울 수 있습니다. 이 페이지의 게시물과 여기에 감사의 말로 Roo 1.2 앱의 주석 중심 태그를 대체하기 위해 다음을 사용했습니다. 그들은 나를 위해 키커는 루어 애플 리케이션 목록보기에서 지원 유형 변환이 필요했습니다.

    <bean id="validator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean" />
    <bean id="conversionService" class="org.springframework.format.support.FormattingConversionServiceFactoryBean" />
    
    <bean id="conversionServiceExposingInterceptor"
        class="org.springframework.web.servlet.handler.ConversionServiceExposingInterceptor">
        <constructor-arg ref="conversionService" />
    </bean>
    
    <bean
        class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping">
        <property name="order" value="0" />
        <property name="interceptors">
            <list>
                <ref bean="conversionServiceExposingInterceptor" />
            </list>
        </property>
    </bean>
    
    <bean
        class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
        <property name="webBindingInitializer">
            <bean
                class="org.springframework.web.bind.support.ConfigurableWebBindingInitializer">
                <property name="conversionService" ref="conversionService" />
                <property name="validator" ref="validator" />
            </bean>
        </property>
        <property name="messageConverters">
            <list>
                <bean
                    class="org.springframework.http.converter.ByteArrayHttpMessageConverter" />
                <bean
                    class="org.springframework.http.converter.StringHttpMessageConverter" />
                <bean class="org.springframework.http.converter.FormHttpMessageConverter" />
                <bean
                    class="org.springframework.http.converter.xml.SourceHttpMessageConverter" />
            </list>
        </property>
    </bean>
    
  4. ==============================

    4.재정의하는 동안 사용자 정의 실행 관리 오버라이드도 고려해야합니다. 그렇지 않으면 모든 사용자 정의 Exception 맵핑이 실패합니다. messageCoverters를리스트 빈과 재사용해야 할 것이다.

    재정의하는 동안 사용자 정의 실행 관리 오버라이드도 고려해야합니다. 그렇지 않으면 모든 사용자 정의 Exception 맵핑이 실패합니다. messageCoverters를리스트 빈과 재사용해야 할 것이다.

    <bean id="validator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean" />
    <bean id="conversionService" class="org.springframework.format.support.FormattingConversionServiceFactoryBean" />
    
    <util:list id="messageConverters">
        <bean class="your.custom.message.converter.IfAny"></bean>
        <bean class="org.springframework.http.converter.ByteArrayHttpMessageConverter"></bean>
        <bean class="org.springframework.http.converter.StringHttpMessageConverter"></bean>
        <bean class="org.springframework.http.converter.ResourceHttpMessageConverter"></bean>
        <bean class="org.springframework.http.converter.xml.SourceHttpMessageConverter"></bean>
        <bean class="org.springframework.http.converter.xml.XmlAwareFormHttpMessageConverter"></bean>
        <bean class="org.springframework.http.converter.xml.Jaxb2RootElementHttpMessageConverter"></bean>
        <bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"></bean>
    </util:list>
    
    <bean name="exceptionHandlerExceptionResolver"
          class="org.springframework.web.servlet.mvc.method.annotation.ExceptionHandlerExceptionResolver">
        <property name="order" value="0"/>
        <property name="messageConverters" ref="messageConverters"/>
    </bean>
    
    <bean name="handlerAdapter"
          class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
        <property name="webBindingInitializer">
            <bean class="org.springframework.web.bind.support.ConfigurableWebBindingInitializer">
                <property name="conversionService" ref="conversionService" />
                <property name="validator" ref="validator" />
            </bean>
        </property>
        <property name="messageConverters" ref="messageConverters"/>
    </bean>
    
    <bean id="handlerMapping"
          class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping">
    </bean>
    
  5. from https://stackoverflow.com/questions/3693397/howto-get-rid-of-mvcannotation-driven by cc-by-sa and MIT license