文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

如何解决SpringMvc中普通类注入Service为null的问题

2023-06-20 16:52

关注

本篇内容介绍了“如何解决SpringMvc中普通类注入Service为null的问题”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

SpringMvc中普通类注入Service为null

场景:

使用Quartz定时器时,普通的java类需要注入spring的service类,在调用时报错!

解决方式:

    @Autowired    protected QuartzGetCourseService quartzGetCourseService = (QuartzGetCourseService) SpringContextUtil            .getBean("quartzGetCourseService");
import org.springframework.beans.BeansException;import org.springframework.beans.factory.NoSuchBeanDefinitionException;import org.springframework.context.ApplicationContext;import org.springframework.context.ApplicationContextAware;import org.springframework.stereotype.Component; @Componentpublic class SpringContextUtil implements ApplicationContextAware {    private static ApplicationContext applicationContext = null;     @Override    public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {        SpringContextUtil.applicationContext = applicationContext;    }     public static ApplicationContext getApplicationContext() {        return applicationContext;    }         public static Object getBean(String name) throws BeansException {        return applicationContext.getBean(name);    }         @SuppressWarnings("unchecked")    public static <T> T getBeanByName(Class<T> clazz) throws BeansException {        try {            char[] cs = clazz.getSimpleName().toCharArray();            cs[0] += 32;// 首字母大写到小写            return (T) applicationContext.getBean(String.valueOf(cs));        }        catch (Exception e) {            e.printStackTrace();            return null;        }    }     public static boolean containsBean(String name) {        return applicationContext.containsBean(name);    }     public static boolean isSingleton(String name) throws NoSuchBeanDefinitionException {        return applicationContext.isSingleton(name);    } }

调用结束,测试可以获取Service.

spring之工具类使用service注入

一般需要在一个工具类中使用@Autowired 注解注入一个service。但是由于工具类方法一般都写成static,所以直接注入就存在问题。

栗子:

@Component  public class SmsController {        private static Logger logger = LoggerFactory.getLogger(SmsController.class);        @Autowired      private MessagesInfoService messagesInfoService;      private static SmsController smsController;               @PostConstruct      public void init() {          smsController = this;          smsController.messagesInfoService = this.messagesInfoService;        }            @RequestMapping(value = "/queryMessage",method = RequestMethod.GET)    public ModelAndView queryMessage{         pager = messagesInfoService.findPager(map,5,pIndex);        ModelAndView modelAndView = new ModelAndView("manage/jgdxgl/jgdx_qm");        List<MessagesInfo> list = pager.getItem();        modelAndView.addObject("pager",pager);        modelAndView.addObject("list",list);        return modelAndView    }      }

“如何解决SpringMvc中普通类注入Service为null的问题”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯