@Autowired 导致空指针报错 解决方式

报错

Exception in thread "restartedMain" java.lang.reflect.InvocationTargetException
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:49)
Caused by: java.lang.NullPointerException

我的B类中,对A类型的变量加上了注解@Autowired,查到的解决方法大概有两种方式,通常可以由上下文获取类进行解决,于是我在B中由工具获取到A的类,并使用A的方法,还是空指针错误。

SpringBoot使用@Autowired注入静态变量报空指针异常_BBQ__XB的博客-CSDN博客

解决方法:

由于B类是在main 中以示例的方式声明的,那么由B的实例b去使用A的方法一定是错误的。

通过工具类在main中获取B的方式,就不会报错了。

Java变量的初始化顺序为:

静态变量或静态语句块–>实例变量或初始化语句块–>构造方法–>@Autowired

main方法里使用@Autowired注解报空指针错误_码农BookSea的博客-CSDN博客_main方法调用autowiredhttps://blog.csdn.net/bookssea/article/details/109196195?ops_request_misc=&request_id=&biz_id=102&utm_term=autowired%E6%B3%A8%E8%A7%A3%E6%8A%A5%E7%A9%BA%E6%8C%87%E9%92%88&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-3-109196195.nonecase&spm=1018.2226.3001.4187

工具类

@AUTOWIRED注解注入为空指针的原因及解决方法_洛禾符的博客-CSDN博客_autowired空指针@AUTOWIRED注解注入为空指针的原因及解决方法https://blog.csdn.net/luohefu1/article/details/122535100?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_utm_term~default-0-122535100-blog-109196195.pc_relevant_multi_platform_whitelistv2_exp180w&spm=1001.2101.3001.4242.1&utm_relevant_index=2

你可能感兴趣的:(java,java,spring)