运行 此代码使用 HikariCP 时,为什么我得到一个空数据源?

Why do i get a null DataSource when running this code using HikariCP?

我 运行 此代码用于设置我的配置并获取数据源以访问数据库,但是当我调用 ds.getDataSource() 时,我得到一个空值。我在那里错过了什么?

    private static HikariConfig config = new HikariConfig();
    private static HikariDataSource ds;

    static {
        config.setJdbcUrl("jdbc:mysql://localhost:5656/...");
        config.setUsername("");
        config.setPassword("");
        config.addDataSourceProperty("cachePrepStmts", "true");
        config.addDataSourceProperty("prepStmtCacheSize", "250");
        config.addDataSourceProperty("prepStmtCacheSqlLimit", "2048");
        config.setMaximumPoolSize(10);
        config.setConnectionTimeout(30000);
        config.setIdleTimeout(600000);
        config.setMaxLifetime(1800000);
        ds = new HikariDataSource(config);
    }

    public static DataSource getDataSource() {
        return ds.getDataSource();
    }

好的,所以我不熟悉 SpringBoot 的这个方面,对于在这里遇到同样问题的任何人,我都做了 @Autowired 工作:

我需要在我定义为 @ServiceQuickSearchService class 中使用 DataSource。在该服务中,我可以使用 @Autowired:

调用 HikariCP 数据源
@Service
public class QuickSearchService{

@Autowired
private DataSource ds;

...
    
}

然后当我需要使用服务时 @Autowired 它也随叫随到:

public class UsingService {

@Autowired
private QuickSearchService qss;

...

}

最后我不得不在主应用程序 class 上使用 @ComponentScan 来告诉服务器找到需要自动装配的组件:

@ComponentScan(basePackages = {"example.services", ...})
public class DemoApplication {

public static void main(String[] args){
...
}

}

然后我可以在 application.properties.

中配置 DataSource