SpringSource не внедряется Spring - PullRequest
3 голосов
/ 26 апреля 2011

У меня проблема с использованием MessageSource и Spring. По какой-то неизвестной (по крайней мере для меня) причине мой messageSource объект не создается.

У меня есть следующие компоненты:

applicationContext.xml

...
<import resource="messageSource-ctx.xml" />
...
<context:component-scan base-package="com.foo.bar" />
...  

1010 *
*

messageSource.xml

<beans ...>
    <bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
        <property name="basenames">
            <list>
                <value>backendErrorCodesMapping</value>
                <value>restErrorCodesMapping</value>
            </list>
        </property>
    </bean> 
</beans>


MessageSourceHelper.java

package com.foo.bar.util;

@Component
public class MessageSourceHelper {

    @Autowired
    private MessageSource messageSource;

    ...
}


GenericRestExceptionMapper.java

package com.foo.bar.rest.exception

@Component
public abstract class GenericRestExceptionMapper{

    @Resource
    private MessageSourceHelper msh;

    ....
}


InvalidRequestExceptionMapper.java

package com.foo.bar.rest.exception

@Provider
public class InvalidRequestExceptionMapper extends GenericRestExceptionMapper implements ExceptionMapper<InvalidRequestException> {

...

}

Как только InvalidRequestException произойдет, он будет "пойман" InvalidRequestExceptionMapper, который использует унаследованный msh (MessageSourceHelper). Проблема в том, что этот объект имеет значение null, т. Е. Spring не внедряется.

В чем должна быть проблема? Я ценю всю помощь!

Заранее спасибо.

1 Ответ

4 голосов
/ 26 апреля 2011

Я думаю, что ваш InvalidRequestExceptionMapper должен иметь @Component, а private MessageSourceHelper msh; должен иметь @Autowired

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...