Springboot 入门(1):Hello SpringBoot


Springboot是基于Spring的开源的、开箱即用的web开发框架,它使用“习惯优于配置”的理念(项目中存在大量的配置,开发者可以不用或者少量的Spring配置)。使用Springboot很容易创建一个独立运行(运行jar,内嵌Servlet容器)、准生产级的Spring项目。

1.创建Springboot工程

构建一个Springboot的Maven项目,推荐使用Spring Initializer,从本质上来说就是构建一个Web应用程序,它能生成Springboot项目结构。
Spring Initilizer生成主要有两种方法:

  • 通过IntelliJ IDEA方法
  • WEB页面

1)通过IntelliJ IDEA方法(最常用)

IDEA是目前最常用的IDE(个人使用过eclipse和IDEA,觉得IDEA更好用)。
创建SpringBoot操作步骤如下:
Springboot 入门(1):Hello SpringBoot
注:在公司内网可能无法连接https://start.spring.io
Springboot 入门(1):Hello SpringBoot
Springboot 入门(1):Hello SpringBoot
该步骤主要添加需要加载的模块。Web模块提供了Spring MVC和tomcat等web应用servlet;MySQL模块提供了MySQL JDBC连接器。
根据上面的操作就初始化了一个Springboot的框架了,项目结构如下:
Springboot 入门(1):Hello SpringBoot

2)Web界面

  1. 访问:https://start.spring.io 选择构建工具Maven

  2. Project、Springboot版本以及构建工程的信息,例如:
    Springboot 入门(1):Hello SpringBoot

  3. 点击Generate Project下载项目压缩包

  4. 导入到IDE中

2.POM文件配置

Maven的POM配置文件主要由:<parent></parent><properties></properties><dependencies></dependencies><build></build>等部分组成。每部分的解释如下:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <!--Springboot的父级依赖,主要配置Springboot的版本,spring-boot各模块的artifactId-->
    <!--都是以Spring-boot-starter-*开头,spring-boot-starter-parent是一个特殊的starter,-->
    <!--它用来提供相关的Maven依赖,使用它之后,常用的包依赖可以省去version标签。-->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.3.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.ross.it</groupId>
    <artifactId>chapter1</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>chapter1</name>
    <description>Demo project for Spring Boot</description>

     <!--依赖项的版本-->
   <properties>
        <java.version>1.8</java.version>
    </properties>

    <!--依赖管理-->
    <dependencies>
        <!--web应用的maven依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <!--MySQL依赖-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <!--Springboot maven插件-->
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
</project>

3.认识启动类

Springboot使用一个主类xxxApplication来加载整个web工程,该类必须位于src/main/java目录下的包中。
主类代码如下:

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

@SpringBootApplication
public class Chapter1Application {

    public static void main(String[] args) {
        SpringApplication.run(Chapter1Application.class, args);
    }
}
  1. @SpringBootApplication
    @SpringBootApplication是一个复合注解,包括@ComponentScan、@SpringBootConfiguration和@EnableAutoConfiguration,主要用来表示该类为启动类,该注解根据maven依赖的jar来自动猜测完成正确的spring的对应配置,只要引入了spring-boot-starter-web的依赖,默认会自动配置Spring MVC和tomcat容器
    关于该注解的详解参照:https://www.cnblogs.com/duanxz/p/3756364.html

  2. main方法
    main方法是一个标准的Java应用的main方法,主要作用是作为项目启动的入口

4.添加Controller

在web开发中,控制层主要处理客户端的请求。
新建controller文件夹,并创建HelloController类,具体代码如下:

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

@RestController
public class HelloController {

    @RequestMapping(value = "hello")
    public String getHello(){
        return "Hello Springboot";
    }
}

注解含义:

  • @RestController:等价于@[email protected]的复合用法,在返回时会自动将返回对象转换成json格式。
  • @RequestMapping:可以在控制器类的级别和/或其中的方法的级别上使用,value的值表示请求该方法的请求路径。上例中客户端的请求路径为:/hello;若控制器类上添加了@RequestMapping("/home"),则请求的路径为:/home/hello。

5.运行

运行Chapter1Application类,控制台打印如下日志表示启动成功:
Springboot 入门(1):Hello SpringBoot
从运行日志中可以看出,springboot启动了内嵌的tomcat,并且默认端口为:8080.

访问http://localhost:8080/hello
Springboot 入门(1):Hello SpringBoot
到此,就完成最简单版本的springboot应用的搭建

6.总结

  • 与SSM框架相比,使用Springboot上手更简单,并且省去了繁琐的配置;
  • 使用Springboot能够更优雅地开发Restful API,能够更好地适应前后端分离的场景;
  • 使用场景广,Springboot与Spring cloud相结合,目前广泛地应用于云环境下微服务开发。

注:作为非科班Java新手,若有不对之处,请多多指教!!