@PostConstruct和afterPropertiesSet方法执行多次的原因
近日,遇到一个问题,@PostConstruct方法会莫名执行多次,单看代码看不出问题,印象中也只会在bean初始化的时候执行一次而已。
然后问AI,问百度,没找到原因。
后面自己猜测(现在都是面向猜测编程),发现是nacos配置变更导致的,nacos配置每次变更之后都会调用@PostConstruct,后来换成afterPropertiesSet也是一样。
所以使用@PostConstruct或者afterPropertiesSet一定要保证幂等性。
不过只有配置类(包括@ConfigurationProperties注解的才会重复调用,其它没验证过)