最后
各位读者,由于本篇幅度过长,为了避免影响阅读体验,下面我就大概概括了整理了
@EnableConfigServer
@SpringBootApplication
public class Application {
public static void main(String[] args) {
new SpringApplicationBuilder(Application.class).
web(true).run(args);
}
}
最后,设置属性文件的位置。Spring Cloud Config提供本地存储配置的方式。在bootstrap启动属性文件中,设置属性spring.profiles.active=native,并且设置属性文件所在的位置,如下所示:
server:
port: 7788 #配置中心端口
spring:
application:
name: config-server #服务名称
profiles:
active: native #设置读取本地配置文件
cloud:
config:
server: native:
searchLocations: classpath:config/ #声明本地配置文件的存放位置
配置说明:
(1)spring.profiles.active=native,表示读取本地配置,而不是从Git读取配置。
(2)search-locations=classpath:config/,表示查找文件的路径,在类路径的config下。
服务端的配置文件放置规则:在配置路径下,以{label}/{application}-{profile}.properties的命令规范放置对应的配置文件。上面的实例放置了以下配置文件:
/dev/crazymaker-common.yml
/dev/crazymaker-db.yml
/dev/crazymaker-redis.yml
以上文件分别对通用(common)、数据库(db)、缓存(redis)的相关属性进行设置。作为示例,缓存(redis)的配置如下:
spring:
redis:
blockWhenExhausted: true #链接耗尽时是否阻塞
database: 0 #指定Redis数据库
host: ${SCAFFOLD_REDIS_HOST:localhost} #Redis主机IP
maxIdle: 100 #最大空闲连接数
maxTotal: 2000 #最大连接数
maxWaitMillis: 60000 #获取链接最大等待毫秒数
minEvictableIdleTimeMillis: 1800000 #最小空闲时间
numTestsPerEvictionRun: 1024 #每次释放链接的最大数目
password: ${SCAFFOLD_REDIS_PSW:123456} #密码,如果没有设置密码,这个配置就可以不设置
port: 6379 #Redis端口
softMinEvictableIdleTimeMillis: 10000 #链接空闲多久后释放
testOnBorrow: false #在使用时检查有效性
testWhileIdle: true #获取链接时检查有效性
timeBetweenEvictionRunsMillis: 30000 #释放链接的扫描间隔(毫秒)
connTimeout: 6000 #链接超时毫秒数
readTimeout: 6000 #读取超时毫秒数
Config配置中心启动之后,可以使用以下地址格式直接访问加载好的配置属性:
http://${CONFIG-HOST}: ${CONFIG-PORT}/{application}/{profile}[/{label}]
例如,通过地址
http://192.168.233.128:7788/crazymaker/redis/dev访问示例中配置的缓存的相关属性,如图2-11所示。
图2-11 返回的配置信息
特别说明:Spring Cloud Config-Server支持多种配置方式,比如Git、Native、SVN等。虽然官方建议使用Git方式进行配置,但是这里没有重点介绍Git方式,而是使用了本地文件的方式,有以下3个原因:
(1)对于学习或者一般的开发来说,本地文件的配置方式更简化。
(2)生产环境建议使用Nacos,其具备注册中心和配置中心相结合的功能,更加方便与简单。
(3)掌握了Native的配置方式之后,对于Git的配置方式就能触类旁通。
config-client客户端组件
==================
客户端config-client同config-server一样,需要新增springcloud-starter-eureka的依赖用来注册服务,然后增加spring-cloudstarter-config依赖引入配置相关的JAR包。
最后
每年转战互联网行业的人很多,说白了也是冲着高薪去的,不管你是即将步入这个行业还是想转行,学习是必不可少的。作为一个Java开发,学习成了日常生活的一部分,不学习你就会被这个行业淘汰,这也是这个行业残酷的现实。
如果你对Java感兴趣,想要转行改变自己,那就要趁着机遇行动起来。或许,这份限量版的Java零基础宝典能够对你有所帮助。