spring-cloud微服务之路(二):Spring Boot

       在上一篇博客  spring-cloud微服务之路(一):基础知识 中我们提到,Spring Cloud 是基于 Spring Boot 实现的微服务架构工具,并且还由于 Spring Boot 的自动化配置、快速开发、轻松部署等,非常适合用作微服务架构中各种具体微服务的开发框架,并且由于它是属于 Spring 全家桶的一员,和其他成员可以无缝对接,所以学习 Spring Cloud 之前必须先学会使用Spring boot 框架。

一:构建Spring Boot 项目

    1.1、构建maven项目,通过官网的快速创建 工具来产生基础项目,填写 Group 和 Artifact 信息,单击 Generate Project 按钮下载项目压缩包,导入到 ide 工具即可。


    1.2、使用 idea 工具快速创建 Spring Boot 项目,单击 File > New > Project... > Spring Initializr,填写 Group和Artifact,这里我们 Group 为 com.company ,Artifact 为 springboot2, 一路next即可。




        搭建好的项目试图如下:如下图所示,Spring Boot 的基础结构主要有三大块

        · src/main/java:主程序入口 Springboot2Application,可以通过直接运行该类来启动 Spring Boot 项目。

        · src/main/resources:配置目录,该目录用来存放应用的一些配置信息,比如应用名、端口、数据库链接等,由于我们引进了 Web 模块,因此产生了 static 目录和 template 目录,前者用于存放静态资源,如图片、CSS、JavaScript 等;后者用于存放 Web 应用的模板文件,我们这里只是演示RESTful Api,这两个目录不会用到。

        · src/test:单元测试目录。

    1.3、maven 配置分析

        打开 pom.xml 文件如下:


        · spring-boot-starter-web:全栈 Web 开发模块,包含内嵌 Tomcat、Spring MVC。

        · spring-boot-starter-test:通用测试模块。

        · spring-boot-maven-plugin:引入了 Spring Boot 的 Maven 插件,通过它我们可以使用 mvn spring-boot:run 就能启动应用。

二:实现 RESTful API

    · 新建 controller packege ,新建 HelloWordController类

package com.company.springboot2.controller;

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

//@RestController相当于@controller+@responsebody的组合注释,代表此action的返回结果都为JSON
@RestController
public class HelloWorldController {

    @RequestMapping(value = "/hello")
    public String hello(){
        return "hello,i am spring boot";
    }
}

    · 启动 SpringbootApplication 类的 main 方法,访问浏览器 http://localhost:8080/hello,我们可以看到浏览器输出:hello,i am spring boot。


    · 启动 Spring Boot 项目方法有好几种:可以运行主类的 main 方法,也可以通过 maven 插件 mvn spring-boot:run 命令启动,也可以先使用 mvn install 将项目打成 jar 包后,使用 cmd 输入命令  java -jar ****.jar 来启动,我们可以在启动的时候自定义端口,例如 java -jar ****.jar --server.port=8088,这样端口就从默认的8080变成8088了,注意:在用命令行方式启动 Spring Boot 项目时,连续的两个减号 -- 就是对 application.properties 中的属性进行赋值的标识,所以以上命令行等同于application.properties 中添加属性 server.port=8088

三:多环境配置

        我们在开发的时候,通常一套程序会被应用和安装到多个不同的环境中,比如开发、测试和生产中,每个环境的端口和数据库链接都不同,如果在为不同环境打包而修改 application.properties 配置文件的话,那必将是个非常繁琐且容易发生错误的事。

        在 Spring Boot 中,多环境配置的文件的命名需要满足 application-{profile}.properties 的格式,其中 {profile} 对应你的环境标识,如下所示:

    · application-dev.properties:开发环境

    · application-test.properties:测试环境

    · application-pro.properties:生产环境

    通过 java -jar  ****.jar --spring.profiles.active={profile} 来激活不同环境的配置。

四:在下一篇文章中我们在介绍如何在Spring Boot 上整合 Spring Cloud Eureka 组件实现服务的注册和发现。

猜你喜欢

转载自blog.csdn.net/white_ice/article/details/80065332