直接注入通过@AutoWired
@Component
public class User {
@Autowired
private ApplicationContext applicationContext;
}
手动构建类实现接口
Spring的ApplicationContext的持有者,可以用静态方法的方式获取spring容器中的bean
@Component
public class ApplicationContextUtils implements ApplicationContextAware {
private static ApplicationContext context;
@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
context = applicationContext;
}
public static Object getBean(String name) {
return context.getBean(name);
}
public static <T> T getBean(Class<T> clazz) {
return context.getBean(clazz);
}
public static <T> T getBean(String name, Class<T> clazz) {
return context.getBean(name, clazz);
}
}