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 - 博客园
**jndi 把这些问题交给j2ee容器(比方weblogic)来配置和管理,程序猿仅仅须要对这些配置和管理进行引用就可以。 是为了解耦,是为了开发出更加可维护、可扩展。
j2ee 规范要求全部 j2ee 容器都要提供 jndi 规范的实现。
推荐阅读
-
实战SpringCloud响应式微服务系列教程(第九章)使用Spring WebFlux构建响应式RESTful服务
-
SpringCloud Alibaba微服务实战 - 基础环境准备
-
SpringCloud学习(SPRINGCLOUD微服务实战)一
-
实战SpringCloud响应式微服务系列教程(第十章)响应式RESTful服务完整代码示例
-
实战SpringCloud响应式微服务系列教程(第一章)
-
SpringCloud微服务实战:一、Eureka注册中心服务端
-
SpringCloud微服务(06):Config组件,实现配置统一管理
-
SpringCloud第二代实战系列:一文搞定Nacos实现服务注册与发现
-
新手学习微服务SpringCloud项目架构搭建方法
-
实战SpringCloud响应式微服务系列教程(第四章)