原因: 我是通过配置文件来注入bean对象的,而启动时扫描配置文件是有顺序的,当service层的对象已经初始化之后,而cacheManager对象还没有初始化时,这时service对象只是普通的bean对象,而不是代理对象,因此不能AOP,即缓存失效。 解决方法: 配置文件顺序改变一下,先让cacheManager对象初始化,这时再初始化service层对象时就会包装成代理对象,就可以在service层使用缓存了。