在Spring3.0中配置数据源
大家好,我已经在glassfish 2.1中配置了连接池和JNDI资源。我可以在我的项目中通过查找方法获得数据源,一切都很好。然而,我决定尝试Spring框架并使用我现有的连接池 在Spring上下文文件中,我有以下内容:在Spring3.0中配置数据源,spring,glassfish,Spring,Glassfish,大家好,我已经在glassfish 2.1中配置了连接池和JNDI资源。我可以在我的项目中通过查找方法获得数据源,一切都很好。然而,我决定尝试Spring框架并使用我现有的连接池 在Spring上下文文件中,我有以下内容: <jee:jndi-lookup id="dataSource" jndi-name="jdbc/name" /> <bean id="jdbcTemplate" class="org.springframework.jdbc.core.simple.Sim
<jee:jndi-lookup id="dataSource" jndi-name="jdbc/name" />
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.simple.SimpleJdbcTemplate">
<constructor-arg ref="dataSource"/>
</bean>
<bean id="dao" class="com.mycompany.mavenproject3.Dao">
<property name="simpleJdbcTemplate" ref="jdbcTemplate"/>
</bean>
部署项目时,我得到:
java.lang.IllegalArgumentException:“数据源”或“jdbcTemplate”是必需的]
为了获取数据源,我还需要在该文件或任何其他文件中配置其他内容吗?可能是com.mycompany.mavenproject3.Dao扩展了,但您正在其上设置一个名为simpleJdbcTemplate的属性,这让我相信您已经定义了自己的属性来保存模板,因为Spring的实现中不存在这样的属性。因此,它会向您抱怨,因为您需要在使用JdbcDaoSupport对象之前设置它的或,就像它告诉您的那样。更改
您也可以在DAOBean中直接调用您的数据源,而不需要为jdbcTemplate执行另一个bean。因此,您的上下文文件如下所示:
<jee:jndi-lookup id="dataSource" jndi-name="jdbc/name" />
<bean id="dao" class="com.mycompany.mavenproject3.Dao">
<property name="dataSource" ref="dataSource"/>
</bean>
在您必须在Dao类上扩展JdbcDaoSupport spring类(其中包含数据源的getter和setter)之后。请向我们显示完整的堆栈跟踪和错误消息,而不仅仅是其中的一行。此外,将
设置为on可以消除定义jdbcTemplate
bean的需要(假设c.m.mavenproject3.Dao扩展了SimpleJdbcDaoSupport
Hello,是的,我的类扩展了SimpleJdbcDaoSupport。你是对的,没有一个名为simpleJdbcTemplate的属性,所以当我更改属性名称时,它告诉我不能将simpleJdbcTemplate转换为JdbcTemplate实例。我想我继承了方法setJ接收JdbcTemplate而不是SimpleJdbcTemplate的bcdTemplate。弄明白这一点后,我想我需要告诉框架注入JdbcTemplate:谢谢!!!