SpringCloud学习(SPRINGCLOUD微服务实战)

springboot入门

1.配置文件

1.1可以自定义参数并在程序中使用

注解@component

@value

例如

若配置文件为application-dat.yml


book.name = spring
book.author = abc
@Component
@PropertySource(value = "classpath:/application-dat.yml")
public class Book{
@value("${book.name}")
private String bookName
   @value("${book.author}")
private String bookAuthor
}

也可以用直接配置前半段配置字符。

@Component
@PropertySource(value = "classpath:/application-dat.yml")
@ConfigurationProperties(prefix = "book")  

public class Book{

private String name
private String author
}

此两种方配置相同。

在配置文件中还以引用参数

book.name = spring
book.info = ${book.name} chubenshe

那么book.info 就等于 spring chubanshe

可以使用随机数

book.page = ${random,value}

由此可见springboot可以用在配置中使用一些固定的函数

1.2多环境配置

因为开发环境中需要开发, 测试,uat测试,生产各个环境运行并查问题

因此在多套环境的情况下,springboot支持配置多个文件,然后指定生效一个配置文件

例如

在资源下面写多个yaml文件

application-dat.yml 生产环境配置文件

application-self.yml;自己开发环境文件

application-test.yml;测试环境配置文件

然后在写一个总的yml 配置文件让他们生效

spring.progiles.active = dat //则你项目启动的时候使用的时候生产配置文件

1.3yaml的格式要求及格

(a)在配置文件中多一个空格都不行

(b)在冒号后面就要跟一个 空格

2.springboot 启动与测试

2.1启动

(a) springboot项目用maven install 打成jar包之后 可以用 Java -jar ***.jar的命令直接启动;

因为springboot里自带tomact。

(b)使用命令行启动,在启动时可以配置修改属性

例如

java -jar ***.jar --book.name = spring cloud

2.2测试

@RunWith(SpringJUnit4ClassRunner.class)//引入Spring对JUnit4的支

@SpringApplicationConfiguration(classes=HelloApplicationc1ass)//指定SpringBoot的启动类。

@WebAppConfiguration//开启Web应用的配置,用于模拟Servletcontext

MockMvC对象:
用于模拟调用Controller的接口发起请求,在eest定义的helo
测试用例中,perforn函数执行一次请求调用,accept用于执行接收的数据类型,
andExpect用于判断接口返回的期望值。

@Before:JUnit中定义在测试用例aret内容执行前预加载的内容,这里用来初
始化对HelloController的模拟。

注意引入下面的静态引用,让status、content、equa1To函数可用

2.3springboot数据文件加载机制

1.命令行参数

2.来自SPRING_APPLICATION_JSON的属性

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

4.Java系统环境变量

5.操作系统环境变量

6.RandomValuePropertySource,随机值,使用random.*` 来定义

7.jar 包外的 Profile 配置文件,如 application-{profile}.properties 和 YAML 文件

8.jar 包内的 Profile 配置文件,如 application-{profile}.properties 和 YAML 文件

9.jar 包外的 Application 配置,如 application.properties 和 application.yml 文件

10.jar 包内的 Application 配置,如 application.properties 和 application.yml 文件

11.在@configuation注解修改的类中,通过@propertyssource 注解定义属性

12.应用默认属性,使用springAppliaction.setDefaultPropeorties定义的内容

数字越小,优先级越高。

此段中需要学习的额外知识

JNDI 的理解 - zhchoutai - 博客园 https://www.cnblogs.com/zhchoutai/p/7389089.html

**JNDI 把这些问题交给J2EE容器(比方weblogic)来配置和管理,程序猿仅仅须要对这些配置和管理进行引用就可以。 是为了解耦,是为了开发出更加可维护、可扩展。

J2EE 规范要求全部 J2EE 容器都要提供 JNDI 规范的实现。

3.监控与管理

下次继续。。。

SpringCloud学习(SPRINGCLOUD微服务实战)一的更多相关文章

  1. springcloud微服务实战--笔记

    目前对Springcloud对了解仅限于:“用[注册服务.配置服务]来统一管理其他微服务” 这个水平.有待提高 Springcloud微服务实战这本书是翟永超2017年5月写的,时间已经过去了两年,略 ...

  2. SpringCloud Alibaba微服务实战 - 基础环境准备

    Springcloud Aibaba现在这么火,我一直想写个基于Springcloud Alibaba一步一步构建微服务架构的系列博客,终于下定决心从今天开始本系列文章的第一篇 - 基础环境准备. 该 ...

  3. SpringCloud Alibaba微服务实战三 - 服务调用

    导读:通过前面两篇文章我们准备好了微服务的基础环境并让accout-service 和 product-service对外提供了增删改查的能力,本篇我们的内容是让order-service作为消费者远 ...

  4. Spring Cloud微服务实战阅读笔记(一) 基础知识

    本文系<Spring Cloud微服务实战>作者:翟永超,一书的阅读笔记. 一:基础知识   1:什么是微服务架构     是一种架构设计风格,主旨是将一个原本独立的系统拆分成多个小型服务 ...

  5. ASP.NET Core微服务实战系列

    希望给你3-5分钟的碎片化学习,可能是坐地铁.等公交,积少成多,水滴石穿,码字辛苦,如果你吃了蛋觉得味道不错,希望点个赞,谢谢关注. 前言 这里记录的是个人奋斗和成长的地方,该篇只是一个系列目录和构想 ...

  6. 微服务实战(二):使用API Gateway - DockOne.io

    原文:微服务实战(二):使用API Gateway - DockOne.io [编者的话]本系列的第一篇介绍了微服务架构模式.它讨论了采用微服务的优点和缺点,除了一些复杂的微服务,这种模式还是复杂应用 ...

  7. Spring Cloud 微服务实战笔记

    Spring Cloud 微服务实战笔记 微服务知识 传统开发所有业务逻辑都在一个应用中, 开发,测试,部署随着需求增加会不断为单个项目增加不同业务模块:前端展现也不局限于html视图模板的形式,后端 ...

  8. go-zero微服务实战系列(十一、大结局)

    本篇是整个系列的最后一篇了,本来打算在系列的最后一两篇写一下关于k8s部署相关的内容,在构思的过程中觉得自己对k8s知识的掌握还很不足,在自己没有理解掌握的前提下我觉得也很难写出自己满意的文章,大家看 ...

  9. 微服务实战系列--Nginx官网发布(转)

    这是Nginx官网写的一个系列,共七篇文章,如下 Introduction to Microservices (this article) Building Microservices: Using ...

随机推荐

  1. Verilog状态机使用技巧

    “没有什么难处是通过增加一个状态机不能够解决的,如果不行,那就俩..” 在实现某种功能时,若感觉该功能的各种可能状态间的切换太绕了,此时,增加一个状态机往往能使思路变得清晰,功能的实现也就简单明了了. ...

  2. 面试必会之ArrayList源码分析&手写ArrayList

    简介 ArrayList是我们开发中非常常用的数据存储容器之一,其底层是数组实现的,我们可以在集合中存储任意类型的数据,ArrayList是线程不安全的,非常适合用于对元素进行查找,效率非常高. 线程 ...

  3. virtualBox中有线和无线两种情况下centos虚拟机和本地机互ping的方案

    之前写微信点餐系统的时候,刚开始是无线连接,然后每次进去虚拟机ip和本地ip都会改变,所以每次都需要配置一下nginx,还有本地的路径.之后换有线连接,就研究了一下桥接模式有线情况下虚拟机静态ip设置 ...

  4. 逆向bfs搜索打表+康拓判重

    HDU 1043八数码问题 八数码,就是1~8加上一个空格的九宫格,这道题以及这个游戏的目标就是把九宫格还原到从左到右从上到下是1~8然后最后是空格. 没了解康托展开之前,这道题怎么想都觉得很棘手,直 ...

  5. mac使用php-version切换PHP版本

    在开发过程中,有时候我们的程序对某个php版本有着极为重要的限制,特别是大型项目. 因此,我们就需要切换多个php版本来满足我们的需求. 我们使用php-version来达到这个目的. 首先我们先使用 ...

  6. 转:获取时间点前后一定间隔的时间 __timeShift()

    接口获取时间点前后一定间隔的时间函数: __timeShift(时间格式, 特定时间点(缺省当前时间),时间间隔,地区格式(默认),变量名( 可不填,填写后其他地方用${变量名}引用 )) 举例: 1 ...

  7. Python字典元素的增加删除和取出字典所有的键和值

    一.增加一个或多个元素 d = {'a': 1} d.update(b=2) #也可以 d.update({‘b’: 2}) print(d) # {'a': 1, 'b': 2} d['e'] = ...

  8. shell脚本中根据端口号kill对应的应用进程

    一.使用情景 在Jenkins的自动部署中,每次重新部署我们都需要先关闭原先的应用进程,然后重新部署启动.在使用tomcat时,我们可以通过startup.sh和shutdown.sh进行对应操作.但 ...

  9. TCP报头格式

    1.端口号:用来标识同一台计算机的不同的应用进程.     1)源端口:源端口和IP地址的作用是标识报文的返回地址.     2)目的端口:端口指明接收方计算机上的应用程序接口. TCP报头中的源端口 ...

  10. MySQL所谓的脏页和“抖”一下是什么联系?

    在我们平时经常用到的sql更新语句,之前是认为只要sql执行,当前sql的操作会立马执行到服务器磁盘上并返回,但是后来我才知道,事实并非如此,在了解事实之前,首先可能需要先了解什么是redo log, ...