寻常的@Autowired,@Resource或者@RequiredArgsConstructor注入都不能实现静态调用,否则会出现空指针。
以下例子实现静态调用⬇️核心在init()这个方法
@Component
public class Demo {
@Resource
private GitEAYamlConfig gitEAYamlConfig;
private static GitEAYamlConfig gitEAStaConfig;
@PostConstruct
public void init(){
gitEAStaConfig = gitEAYamlConfig;
}
/**
* 调用
*/
public static void createUser() {
gitEAStaConfig.getUserId();
。。。我是代码。。。
}
}
文章介绍了在JavaSpring框架中,由于@Autowired、@Resource等注解不支持静态方法的注入,导致静态调用时可能出现空指针异常。通过创建一个@Component实例,并在@PostConstruct初始化方法中将非静态变量赋值给静态变量,从而实现了静态方法对依赖对象的调用。示例中,gitEAYamlConfig实例在init()方法中被赋值给静态变量gitEAStaConfig,以便在createUser()静态方法中使用。
1073

被折叠的 条评论
为什么被折叠?



