如何在普通类中直接访问service层或dao层
1、最近遇到一个问题,如何在工具类中去访问dao层与service层的方法,因为可能本人底子比较薄弱,一开始未想到错误点在哪,后来debug才发现我的service或 dao 都是空的。
因为平时在调用service层时都是在controller中,有配置扫描注入,spring会根据配置自动注入所依赖的服务层。
但因我们写的工具类不属于controller层,所以当所写接口需要调用服务层是,常常会为NULL。
下面 我直接来分享自己的解决方案:
第一种:写个方法 implements
ApplicationContextAware 接口
然后在你的工具类中
ApplicationContext appCtx = SpringContextUtil.getApplicationContext(); StatusMapper statusMapper = (StatusMapper)appCtx.getBean(StatusMapper.class);这样直接调用就好 第二种方案:网上看到的,未验证过 1.将此工具类加上@Component注解
2.将所需调用的服务类设置成静态属性,并通过方法直接将服务层设置成工具类自己的属性即可。