ApplicationContextUtil.getBean
时间: 2024-04-30 17:24:22 浏览: 114
ApplicationContext.getBean 是一个静态方法,用于获取 Spring 容器中指定名称的 Bean 实例。该方法通常用于在非 Spring 管理的类中获取 Spring 管理的 Bean 实例。
下面是一个示例:
```java
@Service
public class UserService {
public void login() {
// ...
}
}
public class LoginController {
public void handleLogin() {
UserService userService = ApplicationContextUtil.getBean("userService", UserService.class);
userService.login();
}
}
public class ApplicationContextUtil implements ApplicationContextAware {
private static ApplicationContext context;
@Override
public void setApplicationContext(ApplicationContext context) throws BeansException {
ApplicationContextUtil.context = context;
}
public static <T> T getBean(String name, Class<T> clazz) {
return context.getBean(name, clazz);
}
}
```
在上面的代码中,LoginController 类不是 Spring 管理的 Bean,但是它需要使用 UserService 类,因此使用 ApplicationContextUtil.getBean 方法获取 UserService 的实例。注意,ApplicationContextUtil 类需要实现 ApplicationContextAware 接口,并在 setApplicationContext 方法中保存 ApplicationContext 实例,以便后续使用。
阅读全文