SpringBoot系列一:入门


SpringBoot提供了一种新的编程范式,能在最小的阻力下开发Spring应用程序,有了它你可以敏捷地开发Spring应用程序,专注于应用程序的功能,不用在Spring的配置上多花功夫,甚至完全不用配置。
在这里插入图片描述


SpringBoot精要

Spring Boot将很多魔法带入了Spring应用程序的开发之中,其中最重要的是以下四个核心。

自动配置

针对很多Spring应用程序常见的应用功能,Spring Boot能自动提供相关配置。 Spring Boot会为常见配置场景进行自动配置。它有大把的办法帮你减轻配置负担这些自动配置涉及Java持久化API(Java Persistence API,JPA)、Thymeleaf模板、安全和Spring MVC等。

起步依赖

告诉Spring Boot需要什么功能,它就能引入需要的库。 如果打算利用Spring Boot的起步依赖,你只需添加Spring Boot的Web起步依赖( org.springframework.boot:spring-boot-starter-web ),仅此一个。它会根据依赖传递把其他所需依赖引入项目里。简而言之,你不再需要考虑支持某种功能要用什么库了,引入相关起步依赖就行。此外,Spring Boot的起步依赖还把你从“需要这些库的哪些版本”这个问题里解放了出来。起步依赖引入的库的版本都是经过测试的,因此你可以完全放心,它们之间不会出现不兼容的情况。

命令行界面

这是Spring Boot的可选特性,借此你只需写代码就能完成完整的应用程序,无需传统项目构建。 Spring Boot CLI让只写代码即可实现应用程序成为可能,Spring Boot CLI利用了起步依赖和自动配置,让你专注于代码本身。不过Spring Boot CLI是Spring Boot的非必要组成部分。虽然它为Spring带来了惊人的力量,大大简化了开发,但也引入了一套不太常规的开发模型。

Actuator

让你能够深入运行中的Spring Boot应用程序,一探究竟。 Actuator要提供在运行时检视应用程序内部情况的能力。安装了Actuator就能窥探应用程序的内部情况了,包括如下细节:

  • Spring应用程序上下文里配置的Bean
  • Spring Boot的自动配置做的决策
  • 应用程序取到的环境变量、系统属性、配置属性和命令行参数
  • 应用程序里线程的当前状态
  • 应用程序最近处理过的HTTP请求的追踪情况
  • 各种和内存用量、垃圾回收、Web请求以及数据源用量相关的指标

SpringBoot并不是什么

Spring Boot可以把Web应用程序变为可自执行的JAR文件,不用部署到传统Java应用服务器里就能在命令行里运行。Spring Boot在应用程序里嵌入了一个Servlet容(Tomcat、Jetty或Undertow),以此实现这一功能。但这是内嵌的Servlet容器提供的功能,不是Spring Boot实现的。简而言之,从本质上来说,Spring Boot就是Spring,它做了那些没有它你自己也会去做的SpringBean配置。


SpringBoot输出HelloWorld

通过Spring Initializr创建SpringBoot项目后,项目的结构如下图所示:
在这里插入图片描述
项目结构中各个文件夹以及文件的作用如下图所示:
在这里插入图片描述
在main中的java文件夹下创建Controller包,在包中创建Controller类,代码如下:

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("test")
public class HelloWorldController {
    @GetMapping("hello")
    public String sayHello() {
        return "Hello World";
    }
}

运行DemoAppication类,控制台输出如下:

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::        (v2.3.0.RELEASE)

2020-06-03 10:02:00.528  INFO 9544 --- [           main] com.example.demo.DemoApplication         : Starting DemoApplication on X-709-PC with PID 9544 (E:\IDEA\SpringBoot\demo1\target\classes started by X-709 in E:\IDEA\SpringBoot)
2020-06-03 10:02:00.530  INFO 9544 --- [           main] com.example.demo.DemoApplication         : No active profile set, falling back to default profiles: default
2020-06-03 10:02:01.319  INFO 9544 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port(s): 8080 (http)
2020-06-03 10:02:01.326  INFO 9544 --- [           main] o.apache.catalina.core.StandardService   : Starting service [Tomcat]
2020-06-03 10:02:01.326  INFO 9544 --- [           main] org.apache.catalina.core.StandardEngine  : Starting Servlet engine: [Apache Tomcat/9.0.35]
2020-06-03 10:02:01.405  INFO 9544 --- [           main] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
2020-06-03 10:02:01.405  INFO 9544 --- [           main] o.s.web.context.ContextLoader            : Root WebApplicationContext: initialization completed in 843 ms
2020-06-03 10:02:01.544  INFO 9544 --- [           main] o.s.s.concurrent.ThreadPoolTaskExecutor  : Initializing ExecutorService 'applicationTaskExecutor'
2020-06-03 10:02:01.670  INFO 9544 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8080 (http) with context path ''
2020-06-03 10:02:01.677  INFO 9544 --- [           main] com.example.demo.DemoApplication         : Started DemoApplication in 1.441 seconds (JVM running for 1.986)

在浏览器中输入http://localhost:8080/test/hello,结果如下图所示:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_43894879/article/details/106516449