用于创建数据源的spring boot源代码

时间:2019-04-02 13:32:13

标签: java spring spring-boot jdbc

我正在尝试通过Spring-boot来获得对其内部运作的更多信心。

例如:
使用以下属性时:

IMapper _mapper; //Inject in constructor

_repository.GetAll().ProjectTo<YourProjection>(_mapper.ConfigurationProvider);

spring boot将通过解析spring.datasource.url=jdbc:h2:./data/test spring.datasource.username=sa spring.datasource.password=as 属性来尝试猜测所需的jdbc驱动程序,并在类路径中查找所需的驱动程序。

我们可以通过阅读Spring文档来推断这种行为:

  

由于Spring,您通常不需要指定驱动程序类名称   Boot可以从url推导大多数数据库。

     

要创建池数据源,我们需要能够验证   有效的Driver类可用,因此我们在之前进行检查   做任何事情。换句话说,如果您设定   spring.datasource.driver-class-name = com.mysql.jdbc.Driver,然后   类必须是可加载的。

我认为对此负责的代码可以在here附近找到。

但是我似乎找不到它。

您能帮我阐明一下吗?

1 个答案:

答案 0 :(得分:3)

JDBC驱动程序类名称由DatabaseDriver enum中的常量控制。查看如何使用此枚举来了解数据源URL属性的解析位置,例如在DataSourceConfiguration中,您将找到:

DatabaseDriver databaseDriver = DatabaseDriver
                .fromJdbcUrl(properties.determineUrl());