springboot通过默认配置了很多框架的使用方式帮我们大大简化了项目初始搭建以及开发过程
通常搭建一个基于spring的web应用,我们需要做以下工作:
1、pom文件中引入相关jar包,包括spring、springmvc、redis、mybaits、log4j、mysql-connector-java 等等相关jar …
2、配置web.xml,Listener配置、Filter配置、Servlet配置、log4j配置、error配置 …
3、配置数据库连接、配置spring事务
4、配置视图解析器
5、开启注解、自动扫描功能
6、配置完成后部署tomcat、启动调试
我们只用导入jar包依赖,就能完成一些列配置 如: spring-boot-starter-web包自动帮我们引入了web模块开发需要的相关jar包,
mybatis-spring-boot-starter帮我们引入了dao开发相关的jar包。
spring-boot-starter-xxx是官方提供的starter,xxx-spring-boot-starter是第三方提供的starter。
那这里面的原理是啥呢? 首先我们导入了mybaits的starter jar包 然后定义了一个MybatisPlusProperties类用于接收配置文件中设置的参数 声明@ConfigurationProperties注解使配置文件的设置参数与当前类中的属性进行绑定 Spring的SpringFactoriesLoader机制会扫描classpath路径下的META-INF/spring.factories读取需要实现自动装配的配置类
看懂这个springboot实现自动装配的starter我们也可以自己手写一个starter来实现自动装配我们想要的配置类 首先我们创建一个映射属性类 其次创建配置类 然后将需要设置的配置参数写上去 最后将自定义starter项目打成jar包到本地仓库
在需要引用的项目中引入该jar包:添加自定义starter的依赖到pom.xml
----------------------------------------------------分割线--------------------------------------------------------- 上面说道,需要在META-INF文件夹下新建一个spring.factories文件使springFactoriesLoader读取需要自动配置的类 这种自动配置方式比较灵活 也可以写一个自定义注解并添加到启动类上使factoriesLoader读取自动配置类(不使用spring.factories方式)