Spring中在普通类调用Service

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

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

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

接下来,直接上代码,推荐大家写成接口的形式,这里就当练手吧。

@Component
public class DataValidation {

    // 错误:在工具类中不允许直接调用Service类

    // @Autowired
    // AppKeyService appKeyService;

    private static ClassPathXmlApplicationContext ctx;

    public ValidationBackInfo getValidation(JSONObject requestJson) {
        ...

        // 获取Service
        ctx = new ClassPathXmlApplicationContext(new String[] { "classpath:/*.xml" });

        AppKeyService appKeyServiceImpl = ctx.getBean(AppKeyService.class);

        ...

        appKeyServiceImpl.insertAccessLog(accessLogModel);

        return vbi;
    }

}

转载声明:本站文章无特别说明皆为原创,转载请注明:辛娜的个人博客原文链接

发表评论

电子邮件地址不会被公开。 必填项已用*标注