springboot的工作原理之配置文件的加载

      springboot的运行原理,springboot运行原理中一个特点就是其有main方法,该类为启动类,且加了@SpringBootApplication的注解,查看该注解源码,其包含@EnableAutoConfiguration,其中一个包含@Import,该注解导入了一个类AutoConfigurationImportSelector,这类的方法比较难以理解,但是它的用法很容易理解,就是为我们动加载了一些配置类。当然,我们也可以使用exclude来说明不配置哪些bean。

  springboot为什么会给我们创建那么对象?我们使用springmvc的那些pom.xml可以吗?显然是不可以的,springboot就是包含了很多xxx.starter,所以我们用起来才这么顺手,,没有这些starter,可能就会报错,以下就是用springmvc的pom.xml文件报错了。

 Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: Property ‘sqlSessionFactory’ or ‘sqlSessionTemplate’ are required

 

  至于springboot怎么将配置文件的属性读入到bean中,这个我们自己也可以写程序实现,这个就是常规操作了。                 

  spring boot中的xxxApplication类是整个工程的执行入口,其应该位于最顶层的包的目录下,否则无法加载各种类。

有一个非常底层的类SpringFactoriesLoader,顾名思义,就是加载工厂的类,没有办法,spring中工厂太多了,加载工厂类也需要这个类。

 

参考资料:

Springboot 内部工具类 SpringFactoriesLoader 源码解析

 

posted @ 2019-01-10 19:43  懂得了才能做一些改变  阅读(319)  评论(0编辑  收藏  举报