转载自:https://blog.youkuaiyun.com/z69183787/article/details/25365873
第一种方法:
@Component
public class UserUtils {
private static UserAccessor userAccessor;
@Autowired(required = true)
public void setUserAccessor(UserAccessor userAccessor) {
UserUtils.userAccessor = userAccessor;
}
public static void deal(){
userAccessor.sys();
}
}
第二种方法:
@Component
public class UserUtils {
private static UserAccessor userAccessor;
@Autowired(required = true)
public UserUtils(UserAccessor userAccessor) {
UserUtils.userAccessor = userAccessor;
}
public static void deal(){
userAccessor.sys();
}
}
第三种方法:
@Component
public class UserUtils {
private static UserUtils userUtils;
@Autowired
private UserAccessor userAccessor;
@PostConstruct
public void init() {
userUtils = this;
userUtils.userAccessor = this.userAccessor;
}
public static void deal(){
userUtils.userAccessor.sys();
}
}
第四种方法:
@Component
public class ContextProvider implements ApplicationContextAware {
private static ApplicationContext CONTEXT;
@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
ContextProvider.CONTEXT = applicationContext;
}
public static <T> T getBean(Class<T> beanClass) {
return ContextProvider.CONTEXT.getBean(beanClass);
}
public static <T> T getBean(String beanName) {
return (T)ContextProvider.CONTEXT.getBean(beanName);
}
}
@Component
public class UserUtils {
private static UserAccessor userAccessor =
ContextProvider.getBean(UserAccessor.class);
public static void deal(){
userAccessor.sys();
}
}