转载自:https://blog.csdn.net/z69183787/article/details/25365873
第一种方法:
1 2 3 4 5 6 7 8 9 10 11 12 13
| @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(); } }
|
第二种方法:
1 2 3 4 5 6 7 8 9 10 11 12 13
| @Component public class UserUtils { private static UserAccessor userAccessor;
@Autowired(required = true) public UserUtils(UserAccessor userAccessor) { UserUtils.userAccessor = userAccessor; }
public static void deal(){ userAccessor.sys(); } }
|
第三种方法:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| @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(); } }
|
第四种方法:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| @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); } }
|
1 2 3 4 5 6 7 8 9
| @Component public class UserUtils { private static UserAccessor userAccessor = ContextProvider.getBean(UserAccessor.class);
public static void deal(){ userAccessor.sys(); } }
|