我使用带有redis的spring boot作为缓存,通过减少查询RDBMS系统来提高应用程序性能。 它可以正常工作,因为它可以准确地缓存另一个控制器的方法,但它不会缓存下面的控制器:
@RequestMapping(method = RequestMethod.GET)
@Cacheable("findByTaxOfficeId")
private TaxPayerNameResponse findByTaxOfficeId(@RequestParam(required = true, value = "uid") String taxOfficeId) {
StampDutyOffice stampDutyOffice = null;
对于工作弹簧启动控制器,配置看起来相同。 可以在下面找到正常工作的缓存Controller方法的示例:
@RequestMapping(value = "/stampdutyoffice", method = RequestMethod.GET)
@Cacheable("getTaxPayerNameByTinIdOrJtbIdReqParam2")
public TaxPayerNameResponse2 getTaxPayerNameByTinIdOrJtbIdReqParam2(@RequestParam(required = true, value = "uid") String tinIdOrJtbIdStampDutyOffice) {
return getTaxPayerNameByTinIdOrJtbId2(tinIdOrJtbIdStampDutyOffice);
}
请问有什么问题? 在此先感谢您的帮助。
答案 0 :(得分:5)
对于某些Spring注释,您应遵守注释方法的两条规则,以确保它有效:
与@Async相同的情况,例如
答案 1 :(得分:2)
您的findByTaxOfficeId方法私有,将其设为 public