项目中apollo热更新没有成功
[Apollo-Config-2] c.l.d.c.ApolloConfigRefreshConfiguration : **************刷新Apollo配置:ConfigChange{namespace='application', propertyName='framework.datacheck.batchSize', oldValue='1004', newValue='1002', changeType=MODIFIED}**************
[Apollo-Config-1] c.f.a.s.p.AutoUpdateConfigChangeListener : Auto update apollo changed value successfully, new value: 1004, key: framework.datacheck.batchSize, beanName: checkDataJob, field: com.liubike.datacheck.job.CheckDataJob.batchSize
在引入apollo-client包时,同时引入了jasypt加密库,导致了冲突。目前只支持,1.16版本。
将jasypt版本调整为1.16即可。jasypt-spring-boot-starter可能有兼容问题。
<dependency>
<groupId>com.github.ulisesbocchio</groupId>
<artifactId>jasypt-spring-boot</artifactId>
<version>1.16</version>
</dependency>
为了让大家更快的上手了解Apollo配置中心,我们这里准备了一个快速入门,能够在几分钟内在本地环境中部署,启动Apollo配置中心。
考虑到Docker的便捷性,我们还提供了Quick Start的Docker版本,如果你对Docker比较熟悉的话,可以参考通过Docker快速部署Apollo。
不过这里需要注意的是,快速入门只针对本地测试使用,如果要部署到生产环境,还请补充参考。
注:Quick Start需要有bash环境,Windows用户请安装 ,或者也可以直接通过IDE环境启动,详见。
一,准备工作
1.1 Java
阿波罗服务端:1.8+
Apollo客户端:1.7+
由于Quick Start会在本地同时启动服务端和客户端,所以需要在本地安装Java 1.8+。
在配置好后,可以通过如下命令检查:
java -version
样例输出:
java version "
springboot版本2.6.13,jasypt版本3.0.5,启动报unable to bind properties xxxx,后面是数据库配置参数,我本地无法解密原因是用了openjdk,换成oracle jdk重新跑就可以了。
提取阿波罗查询的实用程序
使用apollo客户端显示列表确实很常见,但是很难用新数据更新这些列表或从中检索数据。 我们希望能够显示始终与服务器同步的数据,即使列表具有参数也是如此。
npm i @habx/apollo-refetch
用上下文提供程序包装您的应用程序
< RefetchProvider>
{ children }
< / RefetchProvider>
首先注册您的查询
const { refetch , ... } = useQuery < contacts> ( contactsQuery , {
variables : {
filters : state . filters ,
paginate : state . paginate ,
标题jasypt-spring-boot-starter跟nacos热加载冲突
用jasypt-spring-boot-starter3.0.2后部署到生产环境启动会出现下面情况,当版本超过 2.0.0 就无法刷新,具体什么原因还未找到,更换版本未2.0.0时就解决了
<dependency>
<groupId>com.github.ulisesbocchio</groupId>
<artifactId>jasypt-spring-boot-star
1.项目中关于数据库密码等信息想要进行加密处理,所以引入了jasypt-spring-boot-starter,版本3.0.3
2.后来项目接入了apollo的动态配置中心
3.此时发现@Value的值,不能进行动态刷新,当发布新配置时,apollo会进行更新操作,可是程序里仍旧是旧值
4.通过查看文件,可以看到本地拉下来的配置文件中,值已经同步成和apollo配置中心一样。
这块我理解的还不够透彻,大家可以看一下apollo的这个issues,等我研究明白了我再写,先看这
EncryptablePropertySourceConver封装服务中各种的PropertySource, 当服务查询配置的值时,如果配置需要解密的话,可以实现解密。这个方法比较简单,循环变更的key, 第一步校验变更的key确实是bean中的属性,第二步校验确实需要热更新bean中属性值,第三步是真正的热更新。中获取,而此类中有一个cache, apollo配置变更时,此cache中存的仍是旧配置。
在引入jasypt-spring-boot-starter之后,发现application.yml与application-{profile}.yml没有生效,在网上查询了一下,,禁用对boostrap配置文件的加密支持,就可以解决application.yml与application-{profile}.yml失效的问题。参考这位大佬说的,引发的原因是当jasypt和springcloud一起使用时,bootstrap的配置会失效。...
springboot使用jasypt加密数据库用户密码时,在pom.xml中引入jasypt-spring-boot-starter时,与原有logback整合kafka日志部分冲突,启动报错如下:
java.lang.IllegalStateException: Logback configuration error detected:
ERROR in ch.qos.logba...
IntelliJ idea 打包时由于注释掉 build.gradle 中的一些相关配置,会导致打包的时候将本地的配置文件包含到 jar 包中,当部署的时候会优先读取 jar 包中的配置文件,然后才会读取配置中心中的配置文件。从而会使得配置中心中新增的配置无法读取,因为会与 jar 包中的配置文件发生冲突。eclipse 则不同,eclipse 打包的时候无需管 build.gradle 中...
apollo-github
apollo-github-issues
apollo 集成springMVC jasypt提供了EncryptablePropertySourcesPlaceholderConfigurer对加密信息进行解密 ,
在apollo 客户端中使用了PropertySourcesPlaceholderConfigurer,这是两个placeholder 那么apollo 的配置
最近,由于公司使用了Apollo配置中心用于管理配置文件信息,所以渐渐的也就得心应手了。
然而在一次新的项目中使用Apollo配置中心时,以往每次百试百灵的动态刷新配置却失效了,不仅ConfigurationProperties无法动态刷新,就连@Value 中的参数也无法动态刷新。然后我便开始了我的问题排查之旅,首先从Apollo配置开始查起是否,配置不对,给的端口不对? 发现并没有什么问题...
1.问题的出现
项目使用的是springboot2.1.6.RELEASE版本,使用了jasypt-spring-boot-starter 3.0.3来进行对配置文件进行加密操作,在压测过程中使用JProfiler发现
RefreshScopeRefreshedEventListener中的调用ClassUtils.forName占用不少的cpu
jasypt-spring-boot-starter 3.0.3使用了jasypt的CachingConfiguration用于做配置...