Java 使用注释时的Spring Mvc数据源Bean

Java 使用注释时的Spring Mvc数据源Bean,java,spring-mvc,dependency-injection,Java,Spring Mvc,Dependency Injection,我想知道当在applicationContext.xml中使用注释时,依赖项注入是如何在数据源bean上完成的,或者将此bean注入DAO的注释等效于什么,我定义了以下数据源bean: <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="${

我想知道当在applicationContext.xml中使用注释时,依赖项注入是如何在数据源bean上完成的,或者将此bean注入DAO的注释等效于什么,我定义了以下数据源bean:

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
            <property name="driverClassName" value="${jdbc.driverClassName}"/>
            <property name="url" value="${jdbc.url}"/>
            <property name="username" value="${jdbc.username}"/>
            <property name="password" value="${jdbc.password}"/>
</bean>

类似这样的内容:创建一个
SimpleJdbcTemplate
,并将
数据源注入其中。然后将其注释到DAO中:

@Repository
public class FooDao {
    @Resource(name = "jdbcTemplate")
    private SimpleJdbcTemplate jdbcTemplate;
}

您是对的-您只需要
SimpleJdbcTemplate
。休眠是不必要的。

这两种方法都应该有效

@资源 私有数据源

@自动连线
private DataSource DataSource

您使用的是什么持久性框架?我没有使用任何持久性框架,只是直接使用spring没有hibernateso JDBC?理想情况下使用可用的模板?@mattwipple是的,只是jdbc模板当你说创建SimpleJdbcTemplate时,你的意思是创建一个具有driverClassName、url、用户名和密码等属性的类?如果是这样的话,我需要硬编码其中属性的值,或者我仍然可以从属性文件中读取它?不,您可以将它们放在Spring配置或.properties文件中。如果您使用的是JavaEE应用服务器,则更好的方法是创建一个JNDI数据源并按名称引用它。将凭据放在应用程序服务器上。我是保留xml配置原样并仅使用这些注释,还是需要创建一个具有这些值的类,然后注入它?是的,保留xml配置原样并在需要注入数据源的类中使用这些注释。您可能需要在xml中添加注释,因此spring将选择这些注释。我已经知道我使用的是JDBCDAO支持,而不是JdbcTemplate。对于此错误,很抱歉,请您提供建议,因为它使用-=getJdbcTemplate().query(sql,参数,新);