javaspringboot+rediscache+@Cacheable适用于某些方法,而不适用于其他方法
我使用SpringBoot和redis作为缓存,通过减少对RDBMS系统的查询来提高应用程序性能。 它可以工作,因为它可以准确地缓存另一个控制器的方法,但不会缓存下面的控制器:
@RequestMapping(method = RequestMethod.GET)
@Cacheable("findByTaxOfficeId")
private TaxPayerNameResponse findByTaxOfficeId(@RequestParam(required = true, value = "uid") String taxOfficeId) {
StampDutyOffice stampDutyOffice = null;
工作的spring引导控制器的配置看起来相同。 可以在下面找到正常工作的缓存控制器方法的示例:
@RequestMapping(value = "/stampdutyoffice", method = RequestMethod.GET)
@Cacheable("getTaxPayerNameByTinIdOrJtbIdReqParam2")
public TaxPayerNameResponse2 getTaxPayerNameByTinIdOrJtbIdReqParam2(@RequestParam(required = true, value = "uid") String tinIdOrJtbIdStampDutyOffice) {
return getTaxPayerNameByTinIdOrJtbId2(tinIdOrJtbIdStampDutyOffice);
}
请问有什么问题? 提前谢谢你的帮助
# 1 楼答案
对于某些Spring注释,您应该遵守注释方法的两条规则,以确保其正常工作:
以@Async为例,情况也一样
# 2 楼答案
您的findByTaxOfficeId方法是私有,请将其设置为公共