混合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 楼答案
导入语法是否正确(请注意*,以及文件的路径)
过去,我必须做到以下几点:
参考:http://docs.spring.io/spring/docs/current/spring-framework-reference/htmlsingle/#beans-java-combining