首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Spring 注入 Druid DataSource 為 null 排查:缺少 Setter 方法

     編輯:程式設計綜合問答

現象

Spring 容器配置好 Druid 數據源 Bean,類中 @Resource DataSource dataSource 注入後為 null,數據庫配置無誤。

可能原因

  • 缺少 Setter 方法:字段注入雖不強制要求 Setter,但某些代理/增強場景下需要;
  • Bean 名稱不匹配:@Resource(name="dataSource") 指定名稱;
  • 事務/代理干擾:@Transactional 導致代理對象字段未注入;
  • 多數據源未指定 Primary。

快速驗證與修復

@Resource(name = "dataSource") // 顯式指定 Bean 名稱
private DataSource dataSource;

// 建議添加 Setter
public void setDataSource(DataSource dataSource) {
    this.dataSource = dataSource;
}

獲取連接標準代碼

try (Connection conn = dataSource.getConnection()) {
    // 使用連接
} catch (SQLException e) {
    // 處理異常
}
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved