• spring cloud教程之使用spring boot创建一个应用


      《7天学会spring cloud》第一天,熟悉spring boot,并使用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 cloud.simple.hello;
    import org.springframework.boot.*;
    import org.springframework.boot.autoconfigure.*;
    import org.springframework.stereotype.*;
    import org.springframework.web.bind.annotation.*;
    
    @Controller
    @SpringBootApplication
    public class SampleController  {
    
        @ResponseBody
        @RequestMapping(value = "/")
        String home() {    
            return "Hello World!";
        }
    
        public static void main(String[] args) throws Exception {
            SpringApplication.run(SampleController.class, args);
        }
    
    }
    

      @SpringBootApplication相当于@Configuration、@EnableAutoConfiguration和  @ComponentScan,你也可以同时使用这3个注解。其中@Configuration、@ComponentScan是spring框架的语法,在spring 3.x就有了,用于代码方式创建配置信息和扫描包。@EnableAutoConfiguration是spring boot语法,表示将使用自动配置。你如果下载了spring boot源码,就会看到spring boot实现了很多starter应用,这些starter就是一些配置信息(有点类似于docker,一组环境一种应用的概念),spring boot看到引入的starter包,就可以计算如果自动配置你的应用。

      2)  配置pom.xml

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

      

    <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>
    	<!-- spring boot基本环境 -->
    	<parent>
    		<groupId>org.springframework.boot</groupId>
    		<artifactId>spring-boot-starter-parent</artifactId>
    		<version>1.3.1.RELEASE</version>
    	</parent>
    
    	<groupId>spring.boot</groupId>
    	<artifactId>cloud-simple-helloword</artifactId>
    	<version>0.0.1</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>
    				<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文件中看到的spring-boot-maven-plugin插件就是打包spring boot应用的。

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

      D:cloud-simple-helloword>mvn package

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

      D:cloud-simple-helloword arget>java -jar cloud-simple-helloword-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,"threshold":10485760}}

      信息包括程序执行状态以及基本的磁盘信息。

  • 相关阅读:
    element-ui分页组件修改当前页current-page后current-change事件不触发
    使用element-ui 的table 组件 表格线条不对齐
    vue 禁止浏览器自带的后退功能
    echart 柱图的(层叠柱图和柱图)label只显示总数 ,折线图的legent上显示总数
    element-ui table组件,分别设置表头和表格内容的居中,自定义渲染
    vue-cli-3+element-ui 按需引入element-ui的配置
    今天使用ElementUI与vue-quill-editor的时候发现,富文本编辑框选项对齐出现了点问题。
    vue-router 切换页面的时候,页面没有请求,
    msvcp140.dll缺失解决办法
    CTF中RSA题目的pem文件处理
  • 原文地址:https://www.cnblogs.com/skyblog/p/5127712.html
Copyright © 2020-2023  润新知