簡體   English   中英

在Spring 3.0中配置數據源

[英]Configuring Datasource in Spring 3.0

大家好,我在glassfish 2.1中配置了連接池和JNDI資源。 我可以在項目中通過查找方法獲取數據源,並且一切正常。 但是我決定嘗試使用Spring框架並使用現有的連接池。

在Spring上下文文件中,我具有以下內容:

<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:需要“ dataSource”或“ jdbcTemplate”]

為了獲取數據源,我還需要在該文件或任何其他文件中進行其他配置嗎?

大概是com.mycompany.mavenproject3.Dao擴展了JdbcDaoSupport ,但是您要在其上設置一個名為simpleJdbcTemplate的屬性,這使我相信您已經定義了自己的屬性來保存模板,因為該屬性在Spring的實現中不存在。 因此,它在向您抱怨,因為您需要在使用它之前設置JdbcDaoSupport對象的dataSource屬性jdbcTemplate屬性 ,就像它告訴您的那樣。 <property name="simpleJdbcTemplate"...更改為<property name="jdbcTemplate"...

如果您的DAO沒有擴展JdbcDaoSupport,請查找並刪除它或適當地設置其屬性。

您也可以在dao bean中直接調用數據源,不需要為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)之后。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM