Eu estou tentando passar por fontes de primavera-inicialização para ganhar um pouco mais de confiança sobre seu funcionamento interno.
Por exemplo:
Quando você usa seguintes propriedades:
spring.datasource.url=jdbc:h2:./data/test
spring.datasource.username=sa
spring.datasource.password=as
inicialização primavera irá tentar adivinhar o driver JDBC que você precisa analisando spring.datasource.url
propriedade, e olhar no classpath para o driver desejado.
Podemos deduzir este comportamento por ler a documentação da Primavera:
Muitas vezes você não precisa especificar a classe-nome do controlador, desde a Primavera de inicialização pode-se deduzir que para a maioria dos bancos de dados da URL.
Para uma fonte de dados pooling a ser criado, precisamos ser capazes de verificar se uma classe motorista válida está disponível, por isso verifique se que antes de fazer qualquer coisa. Em outras palavras, se você definir spring.datasource.driver-class-name = com.mysql.jdbc.Driver, então essa classe tem que ser carregável.
Eu acho que o código responsável por isso pode ser encontrado em algum lugar ao redor aqui .
Mas eu não parecem ser capazes de encontrá-lo.
Pode me ajudar a lançar alguma luz sobre isso?
O nome da classe do driver JDBC é regido pelas constantes na DatabaseDriver
enumeração . Veja como essa enumeração é usada para entender onde a propriedade fonte de dados URL é, por exemplo analisado em DataSourceConfiguration
você irá encontrar:
DatabaseDriver databaseDriver = DatabaseDriver
.fromJdbcUrl(properties.determineUrl());