飞道的博客

SpringBoot 入门(一)

714人阅读  评论(0)

1. SpringBoot 介绍

1.1 什么是 SpringBoot

SpringBoot是由Pivotal团队在2013年开始研发、2014年4月发布第一个版本的全新开源的轻量级框架。它基于Spring4.0设计,不仅继承了Spring框架原有的优秀特性,而且还通过简化配置来进一步简化了Spring应用的整个搭建和开发过程。另外SpringBoot通过集成大量的框架使得依赖包的版本冲突,以及引用的不稳定性等问题得到了很好的解决。

1.2 SpringBoot 的特点

  • 可以创建独立的Spring应用程序,并且基于其Maven或Gradle插件,可以创建可执行的JARs和WARs;
  • 内嵌Tomcat或Jetty等Servlet容器;
  • 提供自动配置的“starter”项目对象模型(POMS)以简化Maven配置;
  • 尽可能自动配置Spring容器;
  • 提供准备好的特性,如指标、健康检查和外部化配置;
  • 绝对没有代码生成,不需要XML配置;

1.3 SpringBoot 两个重要策略

SpringBoot框架中还有两个非常重要的策略:开箱即用和约定优于配置。开箱即用,Outofbox,是指在开发过程中,通过在MAVEN项目的pom文件中添加相关依赖包,然后使用对应注解来代替繁琐的XML配置文件以管理对象的生命周期。这个特点使得开发人员摆脱了复杂的配置工作以及依赖的管理工作,更加专注于业务逻辑。约定优于配置,Convention over configuration,是一种由SpringBoot本身来配置目标结构,由开发者在结构中添加信息的软件设计范式。这一特点虽降低了部分灵活性,增加了BUG定位的复杂性,但减少了开发人员需要做出决定的数量,同时减少了大量的XML配置,并且可以将代码编译、测试和打包等工作自动化。

2. 第一个SpringBoot程序 HelloWorld

2.1 环境

  • jdk:1.8
  • maven:3.3 以上版本
  • IntelliJ IDEA
  • Spring Boot :2.3.0

2.2 创建一个maven项目

2.3 导入SpringBoot 相关依赖

在pom.xml中添加下面依赖

<parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.3.0.RELEASE</version>
    </parent>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>

2.4 编写主程序

package ewen;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class DemoApplication {
    public static void main(String[] args) {
        //启动spring应用
        SpringApplication.run(DemoApplication.class, args);
    }

}

2.5 编写Controller

@Controller
public class HelloController {
    @ResponseBody
    @RequestMapping("/hello")
    public String hello(){
        return "Hello World";
    }
}

2.6 运行主程序中的main方法

只需要运行主程序中的main方法,整个spring程序就启动起来了,不需要其他配置。

在浏览器中输入localhost:8080/hello,就会出现Hello World

2.7 项目部署

在pom.xml中添加这个依赖,可以非常简单的打包项目。

<!--这个插件,可以将应用打包成一个可执行的jar包-->
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

在Terminal 下,输入mvn package命令直接将项目打包成一个可执行的jar包,在控制台中,找到jar包的位置,在命令行窗口,进入jar包所在目录,使用java -jar命令,执行,在浏览器中输入地址就能访问到,jar包中已经有tomcat环境,不用在配置tomcat了。使用ctrl C 结束程序。

3. HelloWorld 探究

3.1 POM 文件

<parent>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-parent</artifactId>
     <version>2.3.0.RELEASE</version>
 </parent>

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-dependencies</artifactId>
    <version>2.3.0.RELEASE</version>
</parent>
    

spring-boot-starter-parent的父项目是spring-boot-dependencies,他来真正管理SpringBoot应用里的所有依赖版本,以后我们导入依赖默认是不需要写版本的。

3.2 启动器

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

spring-boot-starter:spring-boot场景启动器,帮我们导入了web模块正常运行所依赖的组件。SpringBoot将所有的功能场景都抽取出来,做成一个个的starters(启动器),只需在项目里面引入这些starter,相关场景的所有依赖都会导入进来。要用什么功能,就导入什么场景的启动器。

3.3 主程序类

// @SpringBootApplication 来标注一个主程序类,说明这是一个Spring Boot应用 
@SpringBootApplication
public class DemoApplication {
    public static void main(String[] args) {
        //启动spring应用
        SpringApplication.run(DemoApplication.class, args);
    }
}

@SpringBootApplication:这个注解标注在某个类上说明这个类是springBoot的主配置类,SpringBoot就应该运行这个类的main方法来启动SpringBoot应用。这个注解是一个组合注解,源码如下

  • @SpringBootConfiguration: SpringBoot 的配置类,标注在某个类上,表示这是一个SpringBoot的配置类
  • @EnableAutoConfiguration:开启自动配置功能,以前我们需要配置的东西,SpringBoot当我们配置,这个注解告诉SpringBoot开启自动配置功能

4. 快速创建SpringBoot项目

4.1 IDEA: 使用spring Initializer快速创建项目

IDE都支持使用Spring的项目创建向导快速创建一个Spring Boot项目; 选择我们需要的模块,向导会联网创建Spring Boot项目;
默认生成的SpringBoot项目

  • 主程序已经生成好了,我们只需要写我们自己的逻辑
  • resources文件夹中目录结构
    • static:保存所有的静态资源,js css images
    • templates:保存所有的模板页面;(Spring Boot默认jar包使用嵌入式的Tomcat,默认不支持JSP页 面),可以使用模板引擎(freemarker、thymeleaf)
    • application.properties:Spring Boot 应用配置的文件,可以修改一些默认配置

参考
尚硅谷SpringBoot顶尖教程


转载:https://blog.csdn.net/weixin_43691723/article/details/106359251
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场