在java配置bean

时间:2017-06-28 13:35:34

标签: java spring spring-annotations spring-java-config

我正在开发一个现有的webapp,其中大多数bean都是使用xml config定义和发现的。有一堆xml文件已定义并包含在web.xml的contextConfigLocation参数中,从而创建了Web应用程序上下文。

对于我正在编写的一些新代码,我决定使用java config。

@Configuration
public class UserChannelConfiguration {

    @Autowired
    @Qualifier("deviceIOSDao")
    private DeviceIOSDao deviceIOSDao;

    @Bean
    public UserPayloadHandler defaultUserPayloadInstallationHandler() {
        return new DefaultUserPayloadInstallationHandler(deviceIOSDao);
    }
}

由于webapp已经使用了基于xml的配置,我创建了一个简单的xml配置文件(ios-user-channel-service-beans.xml),它将上面的配置定义为bean

<bean name="userChannelConfiguration" class="com.fiberlink.mdm.ios.user_channel.UserChannelConfiguration"/>

我将此文件与开头提到的其他文件一起包含在web.xml中

 <context-param>
        <description>locations of the Spring configuration files</description>
        <param-name>contextConfigLocation</param-name>
        <param-value>
            classpath:com/somethingelse/ios-action-service-beans.xml, <!-- contains xml definition of my bean 'deviceIOSDao' -->
            classpath:com/something/ios-user-channel-service-beans.xml <!-- contains my java config bean -->
        </param-value>
    </context-param>

此外,我的application-servlet.xml包含<context:annotation-config />,它应该允许一些spring组件处理我的@AutoWired注释并从Web应用程序上下文中注入deviceIOSDao

deviceIOSDao没有得到自动装配,当我在代码中在运行时访问它时,我得到一个空指针异常。

我错过了什么?

0 个答案:

没有答案