• SpringCloud微服务实战——第二章Springboot


    Spring Boot项目工程

      

      src/main/java:主程序入口HelloApplication,可以通过直接运行该类来启动Spring Boot应用。

      src/main/resources:配置目录,该目录用来存放应用的一些配置,比如应用名,服务端口,数据库链接等。

        由于引入了web模块,由此产生static目录与template目录,static用来存放静态资源,如:图片、css、js。template用来存放Web页面的模板文件。

        由于演示为RESTful API,所以这两个目录暂时不会用到。

      src/test/:单元测试目录,自动生成的Test可以直接运行Spring Boot应用的测试。可以通过它测试RESTful API。

      注:在pom中,Spring Boot的项目默认打成jar包,因为默认的Web模块依赖会包含嵌入式的Tomcat,这样应用jar自身就提供了Web服务的能力。

     


     

    实现RESTful API

      

     

    启动该应用后就可以看到预期返回。

    启动Spring Boot项目

      1)直接运行main函数启动。

      2)通过maven插件执行mvn spring-boot:run命令。

      3)在服务器上部署时,先将应用打成jar包,在通过java -jar xxx.jar来启动

    编写单元测试

      

      @RunWith注解 使测试能够在Spring环境中运行。

      @SpringBootTest,默认指向启动类。

      MockMVC对象:用于模拟向Controller接口发起请求,perform函数执行请求,accept函数用于执行接受的数据类型,andExcept用于判断接口返回的期望值。


     

    配置详解

      配置文件:Spring Boot配置文件的默认地址:src/main/resources/application.properties。

      可以在配置文件中定义:容器端口号、数据库连接信息、日志级别。

      端口号:server.port=8080

      应用名:spring.application.name=hello  注:该名称会被SpringCloud注册为服务名。

      我们还可以在配置文件中使用自定义参数:

      book.name=zhaiyongchao

      book.price=10

      然后在应用中使用@Value将值注入自定义参数

      

      参数引用

      在application.properties中也可以使用${book.name},实现对参数的引用。

      随机数

      使用${random}可以实现随机数

      

      命令行参数

      可以使用命令行启动应用时,修改属性:

      java -jar xxx.jar --server.port=8888

      在使用命令行启动Spring Boot应用时,连续两个减号--是对application.properties的属性进行赋值。

      多环境配置  

      application-{profiles}.properties格式来对应不同的环境标识:

        application-dev.properties:开发环境

        application-test.properties:测试环境

        application-prod.properties:生产环境。

      需要在application.properties中使用spring.profiles.action属性来设置。

      多环境配置使用思路:

        1)在application.properties中配置通用内容,并设置spring.profiles.active=dev,以为默认开发环境

        2)在application-{profile}.properties中配置各个环境不同的内容。

        3)通过命令行方式去激活不同环境的配置。

      加载顺序

        1)在命令行中传入的参数

        2)SPRING_APPLICATION_JSON中的属性。SRPING_APPLICATION_JSON是以JSON格式配置在系统环境变量中的内容。

        3)java:comp/env中的JNDI属性

        4)java的系统属性,可以通过System.getProperties()获得内容。

        5)操作系统的环境变量

        6)通过random.*配置的随机属性

        7)位于当前应用jar包之外,针对不同{profile}环境的配置文件内容。

        8)位于当前应用jar包之内,针对不同{profile}环境的配置文件内容。

        9)位于当前应用jar包之外的application.properties。

        10)位于当前应用jar包之内的application.properties。

        11)在@configuration注解修改的类中,通过@PropertySource注解定义的属性。

        12)应用默认属性,使用SpringApplication.setDefualtProperties定义的内容。

        优先级是由高到低,数字越小优先级越高。

        其中第7、9都是从jar之外读取配置文件,因此指定外部配置文件的加载位置来取代jar包之内的配置内容。

  • 相关阅读:
    软件实现的施密特触发器
    激励
    正式搬家,到博客园
    IAR编译器的常见问题
    记正式开始工作
    调度器的介绍
    atmega8 例程:AD中断方式采集
    【IAR警告】Warning[Pa082]: undefined behavior: the order of volatile accesses is undefined
    AD转换器的参数介绍
    影响LIMIT子句使用的一个mysql配置项
  • 原文地址:https://www.cnblogs.com/lilinzhiyu/p/8203517.html
Copyright © 2020-2023  润新知