SpringBoot 1.x 之入门

1 SpringBoot简介

  • SpringBoot简化Spring应用开发,约定大于配置,去繁从简,just run就能创建一个独立的,产品级别的应用。
  • 背景:
    • J2EE笨重的开发、繁多的配置、低下的开发效率、复杂的部署流程、第三方技术集成难度大。
  • 解决:
    • “Spring全家桶”时代。
    • SpringBoot-->J2EE一站式解决方案。
    • SpringCloud-->分布式整体解决方案。  
  • 优点:
    • 快速创建独立运行的Spring项目以及与主流框架集成。
    • 使用嵌入式的Servlet容器,应用无需打成war包。
    • starters自动依赖和版本控制。
    • 大量的自动配置,简化开发,也可以修改默认值。
    • 无需配置XML,无代码生成,开箱即用。
    • 准生产环境的运行时应用监控。
    • 与云计算的天然集成。  

2 微服务简介

  • 2014年,Martin Fowler与James Lewis共同提出。
  • 微服务是一种架构风格(服务微化)。
  • 一个应用应该是一组小型服务,可以通过HTTP的方式进行互通。
  • 单体应用:ALL IN ONE。
  • 微服务:每一个功能元素最终都是一个可独立替换和独立升级的软件单元。

3 环境准备

  • JDK1.8。
  • Maven 3.x。
  • IntelliJ IDEA 2019.3。
  • SpringBoot 1.5.9.RELEASE。
  • Maven设置:
  • 给maven的settings.xml配置文件的profiles标签添加如下信息:
<profile> 
  <id>jdk‐1.8</id>  
  <activation> 
    <activeByDefault>true</activeByDefault>  
    <jdk>1.8</jdk> 
  </activation>  
  <properties> 
    <maven.compiler.source>1.8</maven.compiler.source>  
    <maven.compiler.target>1.8</maven.compiler.target>  
    <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion> 
  </properties> 
</profile>

4 SpringBoot-HelloWorld

4.1 创建Maven项目

  • 略。

 

4.2 导入SpringBoot相关的依赖

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

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

4.3 编写主程序,用来启动SpringBoot应用

  • 示例:
  • HelloWorldMainApplication.java
package com.sunxiaping;

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

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

4.3 编写相关的Controller

  • 示例:
  • HelloWorldController.java
package com.sunxiaping.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
public class HelloWorldController {

    @RequestMapping(value = "/hello")
    @ResponseBody
    public String hello() {
        return "helloWorld";
    }

}

4.4 运行主程序测试

  • 略。

4.5 简化部署

  • 在当前项目的pom.xml中添加如下的配置:
<!-- 这个插件,可以将应用打包成一个可执行的jar包-->
<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>
  • 将这个应用打成jar包,然后通过java -jar xxx.jar的命令进行执行。

5 HelloWorld探究

5.1 pom文件

5.1.1 父项目

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

其父项目是

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

它是真正管理SpringBoot应用中的所有依赖版本,可以称之为SpringBoot的版本仲裁中心。
所以以后我们导入依赖默认是不需要写版本的,但是如果版本仲裁中心没有的,当然需要写版本号了。

5.1.2 启动器

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

  

猜你喜欢

转载自www.cnblogs.com/xuweiweiwoaini/p/12057716.html