云自無心水自閑

          天平山上白云泉,云自無心水自閑。何必奔沖山下去,更添波浪向人間!
          posts - 288, comments - 524, trackbacks - 0, articles - 6
            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

          日歷

          <2011年8月>
          31123456
          78910111213
          14151617181920
          21222324252627
          28293031123
          45678910

          隨筆檔案

          積分與排名

          • 積分 - 1129166
          • 排名 - 27

          最新評論


          在applicationContext.xml中定義了一個DataSource:<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" />
          但是在代碼中,使用anotation進(jìn)行注入的時候,卻總是找不到這個dataSource.

              @Autowired
              public void setDataSource(DataSource dataSource) {
                  jdbcTemplate = new JdbcTemplate(dataSource);
                  jdbcInsert = new SimpleJdbcInsert(dataSource);
              }

          最后終于想明白了,原因大概是這樣的,使用autowired的時候,默認(rèn)是根據(jù)類型來匹配的,在xml中定義的類型是:BasicDataSource,而不是接口DataSource,所以默認(rèn)情況下這樣是無法自動裝配的。解決辦法是指令使用名字來進(jìn)行bean的匹配,也就是用Qualifier指定bean的id.

              @Autowired
              public void setDataSource(@Qualifier("dataSource") DataSource dataSource) {
                  jdbcTemplate = new JdbcTemplate(dataSource);
                  jdbcInsert = new SimpleJdbcInsert(dataSource);
              }


          另外一點(diǎn),在網(wǎng)上搜索的過程中發(fā)現(xiàn)有不少人都有類似的問題,但是他們的原因是沒有正確使用spring的注入,而是自己在代碼中new了一個Dao的實(shí)例,這樣的話,spring是無法將dataSource注入到dao的實(shí)例中的



          主站蜘蛛池模板: 鹿泉市| 和平县| 那坡县| 大荔县| 博野县| 化隆| 商都县| 金山区| 疏附县| 富平县| 南京市| 乐山市| 涞源县| 巍山| 林甸县| 溧水县| 顺平县| 延庆县| 庆阳市| 泸水县| 永州市| 辉南县| 新源县| 剑河县| 奉贤区| 台东市| 剑川县| 新巴尔虎右旗| 新源县| 睢宁县| 横山县| 牙克石市| 常宁市| 阿尔山市| 峡江县| 桂林市| 龙胜| 花莲县| 前郭尔| 玛多县| 西藏|