alibaba / jetcache

JetCache is a Java cache framework.
Apache License 2.0
5.08k stars 1.05k forks source link

自定义项目my-jetcache-starter包后,jetcache无法使用starter包中的默认配置进行初始化 #853

Open teqing6chu opened 8 months ago

teqing6chu commented 8 months ago

您好,项目中有多个工程需要使用jetcache,所以抽取了 my-starter-jetcache包,并再start包中指定了默认jetcache配置文件但是不生效还需要各个项目单独配置,请问如何解决

@Configuration @EnableMethodCache(basePackages = "com.xxx") @EnableCreateCacheAnnotation @PropertySource(factory = YamlPropertySourceFactory.class, value = "classpath:xx-jetcache.yml") public class JetCacheConfiguration { public JetCacheConfiguration() { System.out.println("JetCacheConfiguration容器启动初始化244。。。"); } } debug代码看start包中的配置未被获取到,导致下边import未被初始化

@Import({RedisAutoConfiguration.class, CaffeineAutoConfiguration.class, MockRemoteCacheAutoConfiguration.class, LinkedHashMapAutoConfiguration.class, RedisLettuceAutoConfiguration.class, RedisSpringDataAutoConfiguration.class, RedissonAutoConfiguration.class}) 20240118161127

areyouok commented 8 months ago

starter是通过jetcache-autoconfigure/src/main/resources/META-INF下面的配置文件找到JetCacheAutoConfiguration的,不同的spring版本要的文件不一样,你自己看一下吧

你也可以不用starter,看下文档

teqing6chu commented 8 months ago

大佬我可能没有描述清楚,我是要自己做一个自定义的【my-starter-jetcache】,这样其他项目只要引入我的start包就有jetcache的功能了,不用再配配置文件了,不是您的jetcache-starter包,类似于下边这个项目 微信截图_20240118171321

areyouok commented 8 months ago

我不能帮你做这个,但是在2楼我已经告诉你要点了,有两种办法。 用类似starter的方式参考jetcache-autoconfigure;或者不用starter的方式自己组装配置,参考下文档里面的“快速入门”。

teqing6chu commented 8 months ago

我自己封装了【my-starter-jetcache】 问题是【my-starter-jetcache】配置的yml文件 jetcacheAutoconfigure获取不到,导致jetcache没有正确初始化无法使用

快速入门是每个spring boot项目配置到application.yml中,这么配是没有问题的

wwding commented 1 month ago

大佬后面问题解决了没

wwding commented 1 month ago

@Import(CacheConfiguration.class) 加了一个这个注解,好像现在可以了