我使用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
所以我很困惑。哪一个是对的?这是一个智能思想的错误吗?
1条答案
按热度按时间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问题似乎是一个无关的问题。