(开始学习Spring Boot了,你不来瞅一眼)
Spring Boot是什么?
做一名Java开发程序员必须要知道的开发利器——Spring Boot。在Java EE 领域,Spring Boot 在传统 Spring 框架的基础上做了比较大的创新和优化,将开发人员从以往烦琐的配置工作中解放出来,并提供了大量即插即用的集成化组件,从而解决了各种组件之间复杂的整合过程,大大提高了开发效率,降低了维护成本。还不太了解Spring boot的感觉学起来了,在此附上spring Boot官网链接。
通过浏览 Spring 的官方网站,看到有很多子项目,比如Spring Boot,Spring Cloud等等。而Spring Boot 已经成为 Spring 中*的子项目。自2014 年 4 月发布 1.0.0 版本以来,Spring Boot 俨然已经发展为 Java EE 领域开发Web应用程序的首选框架,是很多企业写程序的必备框架了,目前spring boot 最新版本已经是2.7.5。
简单的例子
让我们先来感受一下使用 Spring Boot 开发一个 RESTful风格 的 HTTP 端点所需要做的编码工作,如下所示
@SpringBootApplication
@RestController
public class DemoApplication {
@GetMapping("/helloworld")
public String hello() {
return "Hello World!";
}
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
这是一个经典的“Hello World”程序,而且使用 Spring Boot 来构建这样一个支持 RESTful 风格的 Web 应用程序只需要几秒钟。一旦创建了一个 Spring Boot 应用程序,并添加类似上面的 DemoApplication 类,我们就可以启动 Spring Boot 内置的Web服务器并监听8080 端口,剩余的一切工作Spring Boot 都帮你自动完成了,是不是很强大?Spring Boot 的强大之处还不止这一点,让我们一起看一下 Spring Boot 的核心功能。
支持哪些组件?
Spring Boot支持运行期内嵌容器(包含 Tomcat、Jetty 等支持 Servlet 规范的多款传统 Web 容器)。而在最新的 Spring Boot 2.X 版本中,还提供了对 Netty 以及集成 Servlet 3.1+ 的非阻塞式容器的支持。基于运行期内嵌容器机制,开发人员想要启动Web 服务只需要使用一行 java –jar 命令就可以了,是不是非常爽。
#Spring Boot特点
Spring Boot 的核心功能就是自动配置。在前面的示例中,Spring Boot 并没有像以前使用 Spring MVC 一样需要指定一大堆关于 HTTP 请求和响应的 XML 配置。事实上,Spring Boot 的运行过程同样还是依赖于 Spring MVC,但是它把原本需要开发人员指定的各种配置项设置了默认值,并内置在了运行时环境中,例如默认的服务器端口就是 8080,当然了也可以自己设置指定的端口。如果我们不需要对这些配置项有定制化需求,就可以不做任何的处理,采用既定的开发约定即可。这就是 Spring Boot 所倡导的约定优于配置(Convention over Configuration)设计理念。
另外,相较传统的 Spring 框架,Spring Boot 的一大亮点是引入了内置的监控机制,这是通过 Actuator 组件(常见的包括内存信息、JVM 信息、垃圾回收信息等)来实现的。基于 Actuator 组件,一方面我们可以查看包含自动配置在内的应用程序详细信息,另一方面可以实时监控该应用程序的运行时健康状态。Spring Boot 从多个维度简化了 Web 应用程序的开关过程,这些维度包含编码、配置、部署和监控等
Spring Boot与传统 Spring MVC 的区别有哪些?
1.Spring boot 通过内置 tomcat,不再需要部署到 tomcat ,而可以直接通过像启动 Java 程序那样启动一个 web 服务器。而 Spring MVC 需要部署到tomcat 等web容器。以前web应用要使用到tomat服务器启动,而springboot内置服务器容器,通过@SpringBootApplication中注解类中main函数启动即可。 2.springboot是约定大于配置,可以简化spring的配置流程;springmvc是基于servlet的mvc框架,配置较多,容易出错,而且工作量也多。