Java IntelliJ中的属性:驱动程序类名还是driverClassName?

Java IntelliJ中的属性:驱动程序类名还是driverClassName?,java,spring,intellij-idea,jdbc,Java,Spring,Intellij Idea,Jdbc,我使用IntelliJ IDEA,IntelliSense建议将application.properties文件中的jdbc驱动程序分配为 spring.datasource.driver-class-name=com.microsoft.jdbc.sqlserver.SQLServerDriver 我打字时看到图像了吗 但实际上,这是错误的。应该是 spring.datasource.driverClassName=com.microsoft.sqlserver.jdbc.SQLServe

我使用IntelliJ IDEA,IntelliSense建议将application.properties文件中的jdbc驱动程序分配为

spring.datasource.driver-class-name=com.microsoft.jdbc.sqlserver.SQLServerDriver
我打字时看到图像了吗

但实际上,这是错误的。应该是

spring.datasource.driverClassName=com.microsoft.sqlserver.jdbc.SQLServerDriver
然而,一个与JetBrains相关的网站似乎表明使用
驱动程序类名
可能是正确的


所以我很困惑。哪一个是对的?这是IntelliJ IDEA的一个缺陷吗?

Spring Boot支持属性的两种格式,它们可以互换地用于属性绑定定义的属性(
@ConfigurationProperties
bean)

另请参见:

Spring Boot使用一些宽松的规则绑定
环境
属性到
@ConfigurationProperties
bean,因此不需要 使
环境
属性名称与 bean属性名。这很有用的常见示例包括 破折号分隔的环境属性(例如,
上下文路径
绑定到
contextPath
),以及大写的环境属性(用于 例如,
端口
绑定到
端口

换句话说,如果
spring.datasource.driverClassName
是通过
@ConfigurationProperties
bean定义的,那么您可以同时使用
spring.datasource.driver类名
spring.datasource.driverClassName
。烤肉串的形式是推荐的形式。宽松绑定是在SpringBoot2中引入的-AFAIK,所以您提到的问题可能仍然在SpringBoot1.x中

在任何情况下,IntelliJ的autocomplete在这种情况下都不会出错,因为它使用了Spring引导工具生成的Spring引导JAR文件中包含的信息,特别是针对
Spring.datasource.driver类名
,此属性名从spring boot autoconfigure JAR文件中的
META-INF/additional spring configuration metadata.json
中获得。它也是中列出的财产

您列出的Youtrack问题似乎是一个无关的问题