Springboot
讲讲我自己认知的springboot
-
springboot是spring生态圈的一个轻量级框架,换句话说springboot就是spring,是spring的一个衍生版本
-
如果是spring框架,项目中搭建完毕,无法实现任何的代码,也就是说spring没有办法帮助开发人员去连接数据库,对数据库做增删改查,
也没有办法自动把shiro集成进来,需要开发人员手动编写xml配置文件,自己进行整合 -
springboot其实就是集成好了很多框架的spring,直接根据springboot所提供的标准化编写配置即可,不再需要编写xml配置文件,
springboot官方给出的解释就是干掉xml文件,使用Java代码进行编写配置通过Java类来代替xml
为什么要用springboot来代替spring?
傻瓜式开发,减少了大量配置,降低了开发人员的标准,低层次的开发人员也可以进行编写业务逻辑,不再需要了解内部运行原理以及框架的集成和整合
springboot的运行原理:作用是实现了自动的配置
@SpringbootApplication是一个组合注解
@SpringBootConfiguration:springboot所必须要的基础配置(application.xml)
@EnableAutoConfiguration:自动加载配置
@EnableAutoConfiguration任然是一个组合注解
@AutoConfigurationPackage:通过扫描包的形式自动加载(eg:mybatis的mapper扫描器)
@Import:导入(在application.xml配置文件中<import />)
e.g.
-
EnableAutoConfigurationImportSelector:自动加载配置的选择器(根据条件进行自动加载配置)
- 继承了AutoConfigurationImportSelector
- AutoConfigurationImportSelector类中有一个方法
- getCandidateConfigurations():根据某个特定的条件获取配置信息
- loadFactoryNames():根据name的属性值来获取加载器信息
- 是根据了META-INF/spring.factories文件进行加载配置
- 根据factories文件映射到了配置类中
- MybatisAutoConfiguration.java是经过xml配置文件转换来的,
- 和xml配置文件一样的作用
笔者觉得,springboot更像是一种思想的实现,语言知识中逻辑思维体系的实现
完成了自动的配置