SpringBoot(一)—— HelloWorld

2020-04-03

一、Spring Boot简介

简化Spring应用开发的一个框架;

整个Spring技术栈的大整合;

J2EE开发的一站式解决方案;

image.png

背景

  • J2EE笨重的开发、繁多的配置、低下的开发效率、复杂的部署流程、第三方技术集成难度大。

解决

  • “Spring全家桶”时代
  • Spring Boot → J2EE一站式解决方案
  • Spring Cloud → 分布式整体解决方案

优点

  • 快速创建独立运行的Spring项目以及主流框架集成
  • 使用嵌入式的Servlet容器,应用无需打成war包
  • starters自动依赖与版本控制
  • 大量的自动配置,简化开发,也可以修改默认值
  • 无需配置XML,无代码生成,开箱即用
  • 准生产环境的运行时应用监控
  • 与云计算的天然集成

二、微服务

2014,martin fowler

微服务:架构风格

一个应用应该是一组小型服务;可以通过HTTP的方式进行互通

单体应用:ALL IN ONE

微服务:每一个功能元素最终都是一个可独立替换和独立升级的软件单元

详情参见微服务文档

单体应用

image.png

微服务

image.png

三、HelloWorld

开发环境

JDK 1.8、Maven 3.6.3、IDEA 2019.3.3、Spring Boot 2.2.6

Maven配置参考

3.1 需求分析

  • 浏览器发送hello请求,服务器接收请求并处理,响应Hello World字符串

3.2 项目创建

  1. 创建一个Maven工程(jar)

    image.png

  2. 导入Spring Boot相关依赖

    <?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>
    
        <groupId>com.cherishvii</groupId>
        <artifactId>spring-boot-01-helloworld</artifactId>
        <version>1.0-SNAPSHOT</version>
    
        <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>2.2.6.RELEASE</version>
            <relativePath/> <!-- lookup parent from repository -->
        </parent>
    
        <properties>
            <java.version>1.8</java.version>
        </properties>
    
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-test</artifactId>
                <scope>test</scope>
                <exclusions>
                    <exclusion>
                        <groupId>org.junit.vintage</groupId>
                        <artifactId>junit-vintage-engine</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
            </dependency>
        </dependencies>
    
    </project>
    
  3. 编写一个主程序,启动Spring Boot应用

    package com.cherishvii;
    
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    
    /**
     * //@SpringBootApplication 来标注一个主程序类,说明这是一个Spring Boot应用
     *
     * @author CHERISHVII
     * @author www.cherishvii.com
     * @version V1.0
     * @date 2020/4/3 14:28
     */
    @SpringBootApplication
    public class HelloWorldMainApplication {
    
        public static void main(String[] args) {
            //Spring应用启动起来
            SpringApplication.run(HelloWorldMainApplication.class, args);
        }
    }
    
  4. 编写相关Controller、service

    package com.cherishvii.controller;
    
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.ResponseBody;
    
    /**
     * @author CHERISHVII
     * @author www.cherishvii.com
     * @version V1.0
     * @date 2020/4/3 14:32
     */
    @Controller
    public class HelloController {
    
        @ResponseBody
        @RequestMapping("/hello")
        public String hello(){
            return "Hello World!";
        }
    }
    
  5. 运行主程序测试

    image.png

  6. 简化部署

    1. 导入依赖

      <build>
          <plugins>
              <plugin>
                  <groupId>org.springframework.boot</groupId>
                  <artifactId>spring-boot-maven-plugin</artifactId>
              </plugin>
          </plugins>
      </build>
      

      这个插件可以将应用打包成一个可执行jar包

    2. 打包

      mvn package

      image.png

四、使用Spring Initializer快速创建Spring Boot项目

  1. 新建工程,选择Spring Initializer

    image.png

  2. 更改项目基本信息

    image.png

  3. 选择所需依赖模块

    image.png

  4. 选择保存路径、完成

    image.png

目录结构

src

main

java —— java代码

resources —— 资源目录

static —— 静态资源(js、css、images)

templates —— 保存所有的模板页面(Spring Boot默认jar包使用嵌入式的Tomcat,默认不支持JSP页面),可以使用模板引擎(freemarker、thymeleaf)


标题:SpringBoot(一)—— HelloWorld
作者:CherishVII
地址:https://cherishvii.com/articles/2020/04/03/1585928083684.html

评论
发表评论