## Spring Framework的发展和Spring Boot * Spring 3 支持Java注解 * Spring 4 支持 Java 8, 同时推出Spring Boot Spring Boot 简化了Spring配置。 ## Spring Boot是什么? Boot 翻译有靴子,启动的意思, 在计算机领域有引导的意思, 比如计算机启动引导或是Linux 的引导程序。 Spring Boot就是Spring的快速引导, 也就是引导快速搭建Spring 框架。 早期的Spring项目基于XML文件进行配置, 类似Bean,数据源等都在XML中配置, 配置繁琐,初始化一个项目需要耗费较长时间, 后来Java的注解使用逐渐增多, 很多配置就可以从XML转到Java类本身了。 在此继承上, Spring Boot简化配置, 很容易就可以创建一个项目, 大大减少了项目初始化的时间。 ** Spring Boot 不是一个全新的框架, 其是Spring的一种简化配置方式。** ## Spring Boot版本 2014 年首次发布。 * 版本历史 https://github.com/spring-projects/spring-boot/releases ![](https://img.kancloud.cn/9f/cc/9fcc2cc91fec14796e216cde95f7df4f_999x871.png) * 项目源码 https://github.com/spring-projects/spring-boot ![](https://img.kancloud.cn/93/9b/939b7b48b4b65fe8bba9b0ca4b5c01b8_1507x869.png) * 示例 https://github.com/netgloo/spring-boot-samples ## Spring Boot的特性: Spring Boot的特性包括: * 快速创建独立的Spring应用 * 内嵌了Tomcat , Jetty 等应用服务器, Web类型的项目不需要单独的部署就可以运行 * 提供了默认的初始化依赖 * 根据需要自动配置第三方依赖库 * 提供了现成可用的应用健康检查,测量以及外部配置 * 完全不需要代码生成以及XML配置。 * 自动配置(Auto Configuration): 简化配置, 比如在classpath 发现了Spring Security 的包, 则自动创建相关的Bean * 启动器(Starters) * CLI Comand-line interface 支持groovy 开发。 * Actuator : 查看运行参数、线程、GC等 ## Spring Boot 项目创建与运行 Spring 官方提供了在线的项目生成器,可以很便捷的生成项目, 生成器的地址是https://start.spring.io/,除此之外, 也可以直接在IDE中创建Maven等类型的项目。 关于项目的创建和运行,可以参考: [如何创建Spring Boot项目](https://blog.csdn.net/oscar999/article/details/101008543) ## Spring Boot 之约定优于配置 在Spring Boot中, 约定优于配置是一个入门需要了解的概念, 简单点理解就是默认配置。 大家遵循一定的契约。 ### 约定优于配置之前 在Spring Boot之前, Spring + Spring MVC 开发Web需要配置很多的配置, 包括: * 导入Web开发的很多jar (虽然可以依赖导入, 但还是要导入很多个) * 在application-web.xml 配置视图解析器,类似 ``` <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/views/"/> <property name="suffix" value=".jsp"/> </bean> ``` * 在application.xml 中配置数据源, 事务等。 ### Spring Boot 的配置 在Spring Boot中只需要导入 `spring-boot-starter-web`, 一切都默认配置好, 而且还内置一个Tomcat服务,是不是方便很多。 PS. 如果需要,可以对默认配置进行修改。 ***** ***** ## 学习思维 * REST * YAML 和Java Config