类路径
application或者yml配置文件加载优先级
1>2>3>4 由高到低, 高优先级的会覆盖低优先级的
这几个springboot都会加载, 互补配置
还可以通过spring.config.location来改变默认的配置文件位置5
项目打包好以后,我们可以使用命令行参数的形式,启动项目的时候来指定配置文件的新位置;指定配置文件和默认加载的这些配置文件共同起作用形成互补配置;
java -jar spring-boot-02-config-02-0.0.1-SNAPSHOT.jar --spring.config.location=G:/application.properties
配置文件访问路径 server.context-path失效,换成server.servlet.context-path
java打包只会识别main,resources下的东西
自动配置原理
入口程序
自动配置功能
利用选择器给容器中导入一些组件
主要是configurations最终会被返回
List<String> configurations = getCandidateConfigurations(annotationMetadata, attributes);//获取候选的配置
getCandidateConfigurations方法的作用利用SpringFactoriesLoader.loadFactoryNames()从类路径下得到一个资源
扫描的作用是: 把扫描到的这些文件的内容包装成properties对象
从properties中获取到EnableAutoConfiguration.class类(类名)对应的值,然后把他们添加在容器中
将类路径下META-INF/spring.factories里面配置的所有EnableAutoConfiguration的值加入到了容器中
springboot错误问题
解决JDBC连接MYSQL发出的警告:Sun May 03 16:39:29 CST 2020 WARN: Establishing SSL connection without server‘s i
如需解决需要在定义的URL加上"?useSSL=false" ,便会跳过SSL验证
具体请看原文:https://blog.csdn.net/dianyanxia/article/details/84026059
springboot使用alibaba的druid数据库连接池时区错误
2019-01-15 11:51:43.771 ERROR 14656 ......
url后面加serverTimeZone=GMT
获取不到delete请求
表单上加入下面的, 在@DeleteMapping("/emp/{id}")获取不到delete请求,是因为新版本spring.mvc.hiddenmethod.filter.enabled默认为false, 需要在配置文件中加入spring.mvc.hiddenmethod.filter.enabled=true
<form id="deleteEmpForm" method="post">
<input type="hidden" name="_method" value="delete"/>
</form>