@Resource static RedisTemplate redisTemplate;这样写能注入吗
时间: 2023-07-20 12:09:35 浏览: 48
`@Resource` 注解可以用来进行依赖注入,但是对于静态字段,它是不起作用的。因为静态字段属于类,而不是属于对象实例,所以 Spring 无法将其注入到对象实例中。
如果您要在 Spring 中注入 RedisTemplate 对象,可以考虑使用 `@Autowired` 或 `@Inject` 注解来注入实例字段。例如:
```
@Autowired
private RedisTemplate redisTemplate;
```
或者:
```
@Inject
private RedisTemplate redisTemplate;
```
这两个注解都可以用来实现依赖注入,但是 `@Autowired` 是 Spring 提供的,而 `@Inject` 是 Java EE 提供的。
相关问题
@Resource private RedisTemplate<String,Object> redisTemplate;redisTemplate为空
有可能是因为没有正确配置RedisTemplate。请确保在Spring配置文件中正确地配置了RedisTemplate,并且已经注入到需要使用它的类中。另外,还需要确保Redis服务器已经启动,并且配置信息正确无误。如果以上都没有问题,可以尝试重新启动应用程序或者检查Redis服务器日志以找到更多的信息。
@Component public class CceedAccessControlEntity extends AccessControlEntity { @Resource private RedisTemplate redisTemplate; @Value("${auth.enable:true}") private boolean enableAuth; }
根据你提供的代码,你继承了一个名为 `AccessControlEntity` 的类,并在子类 `CceedAccessControlEntity` 中添加了一些新的成员变量。从代码中看,你使用了 `@Component` 注解来标识 `CceedAccessControlEntity` 类作为一个 Spring Bean。
根据你的描述,问题可能出现在子类中的重写代码上。如果你在子类中重写了父类的方法,但重写的代码不生效,有几个可能的原因:
1. 确保你在子类中正确地重写了父类的方法。在你提供的代码中,并没有看到你重写父类方法的部分。请确保你使用相同的方法名和签名来重写父类的方法。
2. 检查父类方法的访问修饰符。如果父类中被重写的方法的访问修饰符是 `private`,那么子类是无法重写该方法的。请确保父类方法的访问修饰符是 `protected` 或 `public`。
3. 确保重写的方法被正确调用。如果你在其他地方调用了该方法,确保调用的是子类中重写的方法,而不是父类中原有的方法。
如果以上解决方案都不能解决问题,请提供更多关于你重写代码以及哪些功能不生效的信息,以便我更好地帮助你解决问题。