ApplicationContextAware获取serivce
时间: 2023-07-18 13:41:21 浏览: 111
您可以使用如下代码获取Spring容器中的service:
```java
@Component
public class ServiceHolder implements ApplicationContextAware {
private static ApplicationContext applicationContext;
@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
ServiceHolder.applicationContext = applicationContext;
}
public static <T> T getService(Class<T> clazz) {
return applicationContext.getBean(clazz);
}
}
```
在上面的代码中,我们首先实现了ApplicationContextAware接口,并重写了setApplicationContext方法,这个方法会在Spring容器初始化后自动调用,我们可以在这个方法中获取到ApplicationContext实例。
然后,我们定义了一个静态方法getService,用于获取某个service的实例。这个方法接收一个Class类型的参数,表示要获取的service的类型。
这样,我们就可以在其他地方通过ServiceHolder.getService方法获取到Spring容器中的service实例,从而实现对service的操作。
阅读全文