如何在普通类中直接访问service层或dao层

2022-06-24 10:47:48

1、最近遇到一个问题,如何在工具类中去访问dao层与service层的方法,因为可能本人底子比较薄弱,一开始未想到错误点在哪,后来debug才发现我的service或 dao 都是空的。

         因为平时在调用service层时都是在controller中,有配置扫描注入,spring会根据配置自动注入所依赖的服务层。

         但因我们写的工具类不属于controller层,所以当所写接口需要调用服务层是,常常会为NULL。


   下面 我直接来分享自己的解决方案:

       第一种:写个方法  implementsApplicationContextAware 接口

然后在你的工具类中

ApplicationContextappCtx= SpringContextUtil.getApplicationContext();
StatusMapperstatusMapper= (StatusMapper)appCtx.getBean(StatusMapper.class);这样直接调用就好

第二种方案:网上看到的,未验证过
1.将此工具类加上@Component注解

2.将所需调用的服务类设置成静态属性,并通过方法直接将服务层设置成工具类自己的属性即可。



  • 作者:vicvik
  • 原文链接:https://blog.csdn.net/HL_smile90/article/details/76566286
    更新时间:2022-06-24 10:47:48