Spring Boot 可以称之为 新一代 JavaEE 开发标准;随着动态语言的流行 (Ruby、Groovy、Scala、Node.js),Java 的开发显得格外的笨重:繁多的配置、低下的开发效率、复杂的部署流程以及第三方技术集成难度大。
在上述环境下,Spring Boot 应运而生。Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。
它使用 “习惯优于配置” (项目中存在大量的配置,此外还内置了一个习惯性的配置,让你无需手动进行配置)的理念让你的项目快速的运行起来。使用 Spring Boot 很容易创建一个独立运行(运行 Jar,内嵌 Servlet 容器)准生产级别的基于 Spring 框架的项目,使用 Spring Boot 你可以不用或者只需很少的 Spring 配置。
SpringBoot框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。
SpringBoot特点:
- 创建独立的Spring应用程序
- 嵌入的Tomcat,无需部署WAR文件
- 简化Maven配置
- 自动配置Spring
在 Spring1.x 时代,都是通过 xml 文件配置 bean,随着项目的不断扩大,需要将 xml 配置分放到不同的配置文件中,需要频繁的在 java 类和 xml 配置文件中切换。
Spring 2.x随着 JDK 1.5 带来的注解支持,Spring2.x 可以使用注解对 Bean 进行申明和注入,大大的减少了 xml 配置文件,同时也大大简化了项目的开发。 那么,问题来了,究竟是应该使用 xml 还是注解呢? 最佳实践:
- 应用的基本配置用 xml,比如:数据源、资源文件等
- 业务开发用注解,比如:Service 中注入 bean 等
从 Spring3.x 开始提供了 Java 配置方式,使用 Java 配置方式可以更好的理解你配置的 Bean,现在我们就处于这个时代,并且 Spring4.x 和 Spring boot 都推荐使用 java 配置的方式。
Spring 5.xSpring5.x 是 Java 界首个支持响应式的 Web 框架,是 Spring 的一个重要版本,距离 Spring4.x 差不多四年。在此期间,大多数增强都是在 Spring Boot 项目中完成的,其最大的亮点就是提供了完整的端到端响应式编程的支持(新增 Spring WebFlux 模块)。 Spring WebFlux 同时支持使用旧的 Spring MVC 注解声明 Reactive Controller
。和传统的 MVC Controller
不同,Reactive Controller
操作的是 非阻塞 的 ServerHttpRequest
和 ServerHttpResponse
,而不再是 Spring MVC 里的 HttpServletRequest 和 HttpServletResponse。
至此也代表着 Java 正式迎来了响应式异步编程的时代。
Spring Boot 优缺点 优点- 快速构建项目
- 对主流开发框架的无配置集成
- 项目可独立运行,无需外部依赖 Servlet 容器
- 提供运行时的应用监控
- 极大地提高了开发、部署效率
- 与云计算的天然集成
- 版本迭代速度很快,一些模块改动很大
- 由于不用自己做配置,报错时很难定位
1.在IDEA上新建一个Project,选择Spring Initializr, … 也可以按下图所示使用阿里云加速创建项目的速度:
2.进行项目配置 设置项目数组(group),项目标识(Artifact),Type选择一个… 3.选择项目模板 我们来选择创建一个Web项目,选择Spring Boot版本,选择项目模板
4.设置项目名称和项目路径 设置项目名称和项目路径 设置完项目路径,和项目名称后,点击F…
5.创建完成,我们删除.mvn文件夹,mvnw文件和 mvnw.cmd文件 删除文件
注意:spring-boot会自动加载启动类所在包下及其子包下的所有组件。
运行HelloworldApplication.java:
在浏览器中请求localhost:8080出现下图
创建包com.hc.controller,在其中创建类HelloWorldController.java:
@RestController
public class HelloWorldController {
@RequestMapping("/fun")
public String fun(){
return "HelloWorld";
}
}
第四步:重新启动Intellij
在网面中请求http://localhost:8080/fun: