有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

混合Java配置和XML Spring 4

我在多个Java类中定义了一些配置,在XML中定义了一些基本配置。例如,数据源是用XML定义的,我用Java @Configuration类定义JDBCTemplate

根据在线提供的答案,我必须使用@importResource来包含我的XML,这样我就可以Autowire从XML中获取bean定义。然而,这似乎对我不起作用。以下是我的定义:

mvc调度程序servlet。xml:

<context:component-scan base-package="com.abc.mvc"/>
<context:property-placeholder location="classpath*:application.properties"/>

<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName" value="${jdbc.driverClassName}"/>
    <property name="url" value="${jdbc.url}"/>
    <property name="username" value="${jdbc.username}"/>
    <property name="password" value="${jdbc.password}"/>
    <property name="connectionProperties">
        <props merge="default">
            <prop key="MinLimit">3</prop>
            <prop key="MaxLimit">20</prop>
        </props>
    </property>
</bean>

1个Java配置类:

@Configuration
@ImportResource("classpath*:mvc-dispatcher-servlet.xml")
public class MainConfig {

@Autowired
private DataSource dataSource;

@Bean
public JdbcTemplate jdbcTemplate() {
    return new JdbcTemplate(dataSource);
}

还有,我的网络。xml:

<servlet>
    <servlet-name>mvc-dispatcher</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>mvc-dispatcher</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

使用此设置运行时,会出现错误 property "dataSource" must be provided

当我调试它时,即使在自动连接之后,数据源也是空的。我尝试了很多在线解决方案,但似乎都不适合我

关于如何使Java配置类成为用XML定义的autowire bean,有什么想法吗?我的其他设置是否与之相反


共 (1) 个答案