spring作为目前Java领域最流行的框架几乎是每个Java程序员必备的知识点了,基于spring的springboot和springcloud微服务近年使用的人也越来越多,在使用过程中难免会有各式各样的问题。
今天我们讨论的这个问题是关于项目引入spring生态或者外部的开源项目时找不到配置参数怎么办,很多java程序员在使用springboot或者springcloud的时候引入了一些依赖项目时不知道有哪些参数可以进行配置,网上文档又千篇一律或者少的可怜没有办法解决你的问题,那么你可以尝试下我的这种方法看看是否能帮助到你。
springboot yml配置文件
我们以引入redis缓存为例来看看是怎么查看有哪些配置的。
首先我们在pom文件引入spring-boot-starter-data-redis依赖。
org.springframework.boot
spring-boot-starter-data-redis
下一步就是配置参数了。我们当前springboot项目的yml配置文件是这样的。
spring:
profiles: dev
application:
name: order-service
server:
port: 8093
既然引入了redis,那么肯定要配置redis的服务器地址、端口等信息。我们现在只引入了依赖,要配置哪些参数我们也不知道,那么如何查看有哪些参数可以配置呢?
当然了,你可以直接百度啥的,官方文档如果有当然最好springboot配置文件,如果没有的话我们继续往下看。
一、找到springboot的配置依赖项目org.springframework.boot.autoconfigure
一般开发编辑器都会有显示你引入的依赖,我这里是idea intellij。autoconfigure依赖会显示大部分的springboot生态的项目配置信息。
acf850480d9dcf8b7fa1f2177bcf1200
展开依赖列表
d020979e665a42e5956d55a8e7a12061
org.springframework.boot.autoconfigure依赖
二、找到spring-boot-starter-data-redis的配置参数文件
我们引入了spring-boot-starter-data-redis,属于spring data模块下,我们在autoconfigure项目中找找看可能会在哪个包下。
11baffb949aaf5e4cd0646d212bcea10
可以看到autoconfigure项目中有很多的模块配置信息springboot配置文件,比如aop、elasticsearch、freemarker等等,我们找到data这个包(这个就需要你根据引入的内容自己判断可能在哪个包下),再找到redis包。
9ab51defe5c0d8f670394d01ff5ba74a
可以看到有一个RedisProperties类,一般所有的参数配置类名都以Properties结尾。是在哪里定义了使用这个RedisProperties类呢。可以看看RedisAutoConfiguration这个类,一般类名以Configuration结尾的类是配置类,该类使用@EnableConfigurationProperties({RedisProperties.class})注解指定配置参数类。
@EnableConfigurationProperties
三、查看配置参数信息
打开RedisProperties类可以看到类有@ConfigurationProperties(prefix = “spring.redis”) 注解,如果你下载源码还能看到各个属性的注释助于理解。
prefix = “spring.redis”代表你在yml文件里配置项都要在spring.redis之下,那么我们的最终配置如下
spring:
profiles: dev
application:
name: order-service
redis:
host: 192.168.67.129
# password: 123456
port: 6379
jedis:
pool:
max-active: 100 #最大连接数
max-wait: 30000 #最大阻塞等待时间(负数代表没有限制)
max-idle: 20 #最大空闲连接数
min-idle: 0 #最小空闲连接数
timeout: 3000 #连接超时
server:
port: 8093
如果你引入的是spring其他的开源项目,那么按照这个思路就能找到配置信息。如果你引入的不是spring生态的项目,那么可以在你引入的项目依赖中查找Configuration结尾的类和其引入的Properties类。
希望对你有帮助,有问题可以评论区留言,给个关注和赞吧。