SpringCloud学习(SPRINGCLOUD微服务实战)
springboot入门
1.配置文件
1.1可以自定义参数并在程序中使用
注解@component
@value
例如
若配置文件为application-dat.yml
?
book.name=spring
book.author=abc
@Component
@PropertySource(value="classpath:/application-dat.yml")
publicclassBook{
@value("${book.name}")
privateStringbookName
@value("${book.author}")
privateStringbookAuthor
}
也可以用直接配置前半段配置字符。
@Component
@PropertySource(value="classpath:/application-dat.yml")
@ConfigurationProperties(prefix="book")
?
publicclassBook{
?
privateStringname
privateStringauthor
}
?
此两种方配置相同。
在配置文件中还以引用参数
book.name=spring
book.info=${book.name}chubenshe
那么book.info就等于springchubanshe
可以使用随机数
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项目用maveninstall打成jar包之后可以用Java-jar***.jar的命令直接启动;
因为springboot里自带tomact。
(b)使用命令行启动,在启动时可以配置修改属性
例如
java-jar***.jar--book.name=springcloud
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.监控与管理
下次继续。。。
如需转载,请注明文章出处和来源网址:http://www.divcss5.com/html/h56840.shtml