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

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

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

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


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

       第一种:写个方法  implements ApplicationContextAware 接口如何在普通类中直接访问service层或dao层

然后在你的工具类中

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

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

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

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