我正在尝试通过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附近找到。
但是我似乎找不到它。
您能帮我阐明一下吗?
答案 0 :(得分:3)
JDBC驱动程序类名称由DatabaseDriver
enum中的常量控制。查看如何使用此枚举来了解数据源URL属性的解析位置,例如在DataSourceConfiguration
中,您将找到:
DatabaseDriver databaseDriver = DatabaseDriver
.fromJdbcUrl(properties.determineUrl());