intellij中的java属性:驱动程序类名还是驱动程序类名?

dl5txlt9  于 2021-07-23  发布在  Java
关注(0)|答案(1)|浏览(520)

我使用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相关的网站似乎表明 driver-class-name 可能是对的。
https://youtrack.jetbrains.com/issue/idea-202820?_ga=2.207495315.1822682194.1613252382-718343134.1609267918
所以我很困惑。哪一个是对的?这是一个智能思想的错误吗?

33qvvth1

33qvvth11#

springboot支持属性的两种格式,它们可以互换地用于由属性绑定定义的属性( @ConfigurationProperties 豆子)。
另请参见spring boot features文档中的松弛绑定:
SpringBoot使用了一些宽松的绑定规则 Environment 属性到 @ConfigurationProperties 豆子,因此 Environment 属性名和bean属性名。常用的示例包括破折号分隔的环境属性(例如, context-path 绑定到 contextPath ),以及大写的环境属性(例如, PORT 绑定到 port ).
换句话说,给定 spring.datasource.driverClassName 是通过 @ConfigurationProperties 比恩,你两个都可以用 spring.datasource.driver-class-name 以及 spring.datasource.driverClassName . 烤肉串的形式是推荐的形式。宽松绑定是在SpringBoot2中引入的-afaik,所以您提到的问题可能仍然在SpringBoot1.x中。
在任何情况下,intellij的autocomplete在本例中都不会出错,因为它使用了spring引导工具生成的spring引导jar文件中包含的信息,专门用于 spring.datasource.driver-class-name ,此属性名从 META-INF/additional-spring-configuration-metadata.json 在spring引导自动配置jar文件中。它也是公共应用程序属性中列出的属性。
您列出的youtrack问题似乎是一个无关的问题。

相关问题