您的位置:首页 > 编程语言 > Java开发

SpringBoot是如何检测到yml文件里面的数据库信息的?

2019-01-17 11:56 369 查看

ok,开始:

首先springboot项目的源头是 @SpringBootApplication
而这个注解 是 这个@EnableAutoConfiguration会干什么事情呢?
看名字就知道了 “启用自动配置”;有一本书上是这样写的:它会去classpath下寻找路径META-INF/spring.factories 找到org.springframework.boot.autoconfigure.EnableAutoConfiguration的值,并将其封装到一个List中返回 然后去反射 实例化为@Configuration 注入到我们spring项目中的 IOC容器中;

我们去打开@EnableAutoConfiguration 发现他属于这个包:
package org.springframework.boot.autoconfigure。
这个包下又有个包:jdbc
点进去里面有有一个DataSourceAutoConfiguration.class类
这个类上面有一个@EnableConfigurationProperties(DataSourceProperties.class)
也就是依赖DataSourceProperties.class;
点进去这个DataSourceProperties 就可以看到一些认识的东西了:
看到这个 我们就看到了spring.datasource 为什么我们一般在配置yml文件或者properties文件的时候 前面是以这个开头了。。。默认配置就是这样的。如果不自觉手动配置 必须设置成这样 也就是springboot最重要的一条:“约定大约配置”
然后DataSourceProperties里面定义了这些 驱动名称 url username password;
打个断点进去 发现这里获取到的url 就是 application.yml 或者application.properties里面定义的url了。

对于不喜欢看源码的人来说,嘿嘿就比如我:会有这样一个疑问??
“那就是你他妈怎么知道@ConfigurationProperties(prefix = “spring.datasource”)这个玩意就能找到application.yml 或者application.properties的?”

容我再百度一会

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: