您的位置:首页 > 编程语言 > Java开发

spring cloud 的学习过程 (一)

2018-01-05 09:15 369 查看

什么是spring cloud

这里是spring cloud的中文官方文档 

           按照官方的话说:Spring Cloud 为开发者提供了在分布式系统(如配置管理、服务发现、断路 器、智能路由、微代理、控制总线、一次性 Token、全局锁、决策竞选、分布式会话和集群状态) 操作的开发工具。最关键的是它足够简单,一般的开发人员只需要几天时间就可以学会它的基本用 法。

使用spring boot 创建一个应用

 Spring Boot 是 Spring 团队推出的新框架,它所使用的核心技术还是 Spring 框架,主要是 Spring 4.x,所以如果熟悉 spring 4 的人,能够更快的接受和学会这个框架。Spring boot 可以看做 是在 spring 框架基础上再包了一层,这一层包含方便开发者进行配置管理和快速开发的模块,以及 提供了一些开箱即用的工具,比如监控等。

  Spring Boot 官方文档有中文翻译版:

  https://github.com/qibaoguang/Spring-Boot-Reference-Guide
  要实现一个 spring boot 开发环境和传统的应用没有区别,这里用的是:

  IDE:myeclipse 10

  JDK:jdk1.7

  WINDOWS:mvn 3

  在桌面 windows 环境里需要单独安装方便我们使用命令行进行打包和操作。Eclipse 环境里也 需要安装 mvn 插件,当然如果使用的是 myeclipse,那么自带的 mvn 环境就足够了。以下是建立 spring boot helloworld 应用的步骤。注意这是一个 web 应用,使用了嵌入式的 tomcat。



  1)  首选建立一个最简单的 maven 工程,

如下图:
 

  这个应用只有一个类,编写代码如下:

package com.simple.cloud;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;@Controller
@SpringBootApplication
public class SimpleCloudController {
    /**
     * @SpringBootApplication 相当于@Configuration、@EnableAutoConfiguration 和  @ComponentScan,你也可以同时使用这 3 个注解。
     * 其中@Configuration、 @ComponentScan 是 spring 框架的语法,在 spring 3.x 就有了,用于代码方式创建配置信息和扫 描包。
     * @EnableAutoConfiguration 是 spring boot 语法,表示将使用自动配置。
     * 你如果下载了 spring boot 源码,就会看到 spring boot实现了很多 starter 应用,这些 starter 就是一些配置信息 (有点类似于 docker,一组环境一种应 用的概念),
     * spring boot 看到引入的 starter 包,就可以计 算如果自动配置你的应用。
     * @return
     */
    @ResponseBody
    @RequestMapping(value="/")
   String home() {
       return "hello world!";
   }
    public static void main(String[] args) throws Exception {
        SpringApplication.run(SimpleCloudController.class, args);
    }}

 2)  配置 pom.xml

  这个应用不需要配置文件,写完 class 后就可以直接配置 pom.xml 文件了,当然先配置 pom.xml 也一样。Pom 文件配置如下:

  

<modelVersion>4.0.0</modelVersion>

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

<groupId>Cloud-simple</groupId>
<artifactId>maven-cloud-1</artifactId>
<version>0.0.1-SNAPSHOT</version>

<packaging>jar</packaging>
<name>cloud-simple-helloword</name>
<dependencies>
<!--web 应用基本环境配置 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<!--
用于打包spring boot应用
提供的一些开箱即用的应用
-->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>

</project>


      pom 文件配置完,你就可以运行应用了,点击 F11,或者在 SampleController 类右键“Run Java Application”就可以看到应用启动并运行了。

此时在浏览器输入 http://localhost:8080/,你会看到 helloworld 字样,这是一个 web 应用,使用了 嵌入式的 tomcat。

         在 pom 配置中我们仅仅使用了 spring-boot-starter-web 依赖,spring boot 会根据此依赖下载 相关 jar 包并初始化基本的运行环境,比如说绑定端口 8080 等。

spring boot 封装所有配置信息为键值类型,你想改变默认配置,只需要向应用传入这个键值对就可 以,比如我们想改变绑定端口为 8081,那么你在 main 方法里传入“—server.port=8081”即可,或 者干脆使用:

  SpringApplication.run(SampleController.class, "--server.port=8081");

  3) 部署 spring boot 应用

  要部署运行 spring boot 应用,首选要打包 spring boot 应用,你在 pom文件中看到的 springboot-maven-plugin 插件就是打包 spring boot 应用的。

进入工程目录运行 mvn package,如:

  D:\maven-cloud-1>mvn package

  打包过后就可以进入 target 目录使用 java 原生命令执行这个应用了。

  D:\maven-cloud-1\target>java -jar maven-cloud-1-0.0.1.jar -server.port=8081

  如此,你就看到一个基于 jar 包的 web 应用启动了。

  Spring boot 提供的一些开箱即用的应用非常容易使用,比如监控,你只需要在 pom 文件中引 入:

  <dependency>   

          <groupId>org.springframework.boot</groupId>

             <artifactId>spring-boot-starter-actuator</artifactId>

   </dependency>

    引入之后,spring boot 是默认开启监控的,运行应用你可以在浏览器中输入:

         http://localhost:8080/health
  就可以看到默认的监控信息了:

   {"status":"UP","diskSpace":{"status":"UP","total":161067397120,"free":91618398208,"thresh old":10485760}}

  信息包括程序执行状态以及基本的磁盘信息。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: