为什么要使用SpringBoot?SpringBoot为开发解决了什么问题?
SpringBoot 简化了Spring的应用开发,约定大于配置,去繁从简,只需要Run 就能创建一个独立的、产品级别的应用。
J2EE开发十分笨重,且需要配置的东西很多,开发效率低下,部署流程复杂,第三方技术集成难度大。而SpringBoot可以完成J2EE的一站式解决方案。此外,SpringCloud即可完成分布式的整体解决方案。
- 快速常见独立运行的Spring项目以及与主流框架集成
- 使用嵌入式的Servlet容器,应用无需打成war包
- starters自动依赖与版本控制
- 大量的自动配置,简化开发,也可修改默认值
- 无需配置XML,无代码生成,开箱即用
- 准生产环境的运行时应用监控
- 与云计算的天然集成
首先创建完springboot工程后,可以找到这个工程的pom文件
上述为springboot真正管理所有应用依赖版本的地方,也就是springboot的版本控制中心,以后导入依赖默认是不需要写版本的,但是如果导入的包没有在依赖中管理就需要自己手动配置版本。
springboot将所有的功能场景都抽取出来,做成一个一个的starter(启动器),只需要在项目中引入这些starter即可,所有相关的依赖都会导入进来。
上述图显示的是springboot的主启动类,可以看到有一个注解@SpringBootApplication,点进去之后发现还有很多其他注解
@ComponentScan 起到一个自动扫描组件或bean的作用,并把这个bean定义加载到IOC容器中
@SpringBootConfiguration 起到标注配置类的作用,表明这是一个springboot的配置类,这个注解可以继续点进去
从@Confuguration这个注解可以看出,实际上就是一个配置类,配置类对应spring的xml配置文件。
回到SpringBootApplication类中,看到@EnableAutoConfiguration,如字面意思,即开启自动配置功能,这代表着以前我们需要自己配置的东西,现在springboot可以自动帮我们配置
此时自动配置涉及到一个spring.factories的调用,这个文件在如下位置
可以看出这里写了很多组件的配置类,所以自动发配置真正实现是从classpath中搜索所有的META-INF/spring.factories配置文件,并将其中对应的org,springframework.boot.autoconfigure包下的配置项,通过反射实例化为对应标注了@Configuration的javaConfig形式的IOC容器配置类,然后将这些都汇总成一个实例并加载到IOC容器中。
springboot的hellowrld入门也很简单,不需要配置tomcat也不需要自己创建很多复杂的文件配置,按照小流程完成工程的搭建后,自己写一个Controller,写一个接口然后启动即可实现网络页面的呈现。