虽然题主你的代码写法各种看起来很诡异(。・∀・)ノ゙(比如有些地方意外的空了两格,以及静态方法中的代码排版炒鸡别扭,最后静态方法名没有驼峰)但只从解决问题角度来说的话,那基本上是因为你的HwUtil没有被注入到Spring容器里嘛,也就是HwUtil还不是一个Bean,那也就基本从你们项目如何注入Bean的方式去检查咯要不然是给HwUtil加@Component注解(前提你们的Bean扫描路径包含在了HwUtil中)要不然是在你们的@Configuration配置文件中去实现基于@Bean注解的HwUtil类型的返回方法要不然就是你们的xml配置文件中去声明关于HwUtil的<bean>标签要不然就是你们通过FactoryBean方式去注入HwUtil要不然就是你们通过@Import注解方式导入HwUtil这个Bean要不然就是你们的ImportSelector实现类返回HwUtil的全类名要不然就是你们的ImportBeanDefinitionRegistrar实现去手动注入HwUtil这个Bean哈哈哈,基本上面这一溜检查一下,应该能找到原因不过如果你真只是想在一个静态方法中去使用HwService,可以尝试去专门做一个BeanFactoryAware实现类去做BeanFactory的静态封装嘛,这样你就不用以后其他地方需要用静态方法中去如你所示这样使用Bean了,然后看着还这么别扭。。。BeanFactory的静态封装大致如下@Component public class BeanUtils implements BeanFactoryAware { private static BeanFactory beanFactory; @Override public void setBeanFactory(BeanFactory beanFactory) { BeanUtils.beanFactory = beanFactory; } /** * 其他你喜欢的方式获取Bean,也可以继续扩展,我只是举了个简单的例子 * @param tClass * @param <T> * @return */ public static <T> T get(Class<T> tClass) { return beanFactory.getBean(tClass); } }那这样之后,你的静态HwUtil静态方法就可以不用注入HwService了,可以简单这么写public static Map getQueuel(Map map) { HwService hwService = BeanUtils.get(HwService.class); System.out.println(hwUtil); return null; }当然你觉得这样BeanUtils很麻烦,只想搞HwService这一个Bean,那你直接按照我BeanUtils中静态注入BeanFactory的方式注入HwService不就得了嘛@Component public class HwUtil { private static HwService hwService; @Autowired public void init(HwService hwService) { HwUtil.hwService = hwService; } public static Map getQueuel(Map map) { System.out.println(); return null; } }当然前提是你得先解决哈你HwUtil没有被注入的问题哈,我这里只是简单用@Component来表示一下,你们项目的具体情况具体分析咯大致这样叭~睡前看这一问,反而精神了~哈哈哈,债见( ̄︶ ̄)↗!
虽然题主你的代码写法各种看起来很诡异(。・∀・)ノ゙(比如有些地方意外的空了两格,以及静态方法中的代码排版炒鸡别扭,最后静态方法名没有驼峰)
但只从解决问题角度来说的话,那基本上是因为你的
HwUtil
没有被注入到Spring
容器里嘛,也就是HwUtil
还不是一个Bean
,那也就基本从你们项目如何注入Bean
的方式去检查咯HwUtil
加@Component
注解(前提你们的Bean
扫描路径包含在了HwUtil
中)@Configuration
配置文件中去实现基于@Bean
注解的HwUtil
类型的返回方法xml
配置文件中去声明关于HwUtil
的<bean>
标签FactoryBean
方式去注入HwUtil
@Import
注解方式导入HwUtil
这个Bean
ImportSelector
实现类返回HwUtil
的全类名ImportBeanDefinitionRegistrar
实现去手动注入HwUtil
这个Bean
哈哈哈,基本上面这一溜检查一下,应该能找到原因
不过如果你真只是想在一个静态方法中去使用
HwService
,可以尝试去专门做一个BeanFactoryAware
实现类去做BeanFactory
的静态封装嘛,这样你就不用以后其他地方需要用静态方法中去如你所示这样使用Bean
了,然后看着还这么别扭。。。BeanFactory
的静态封装大致如下那这样之后,你的静态
HwUtil
静态方法就可以不用注入HwService
了,可以简单这么写当然你觉得这样
BeanUtils
很麻烦,只想搞HwService
这一个Bean
,那你直接按照我BeanUtils
中静态注入BeanFactory
的方式注入HwService
不就得了嘛当然前提是你得先解决哈你
HwUtil
没有被注入的问题哈,我这里只是简单用@Component
来表示一下,你们项目的具体情况具体分析咯大致这样叭~睡前看这一问,反而精神了~哈哈哈,债见( ̄︶ ̄)↗!