Spring main方法中如何调用Dao层和Service层的方法

 更新时间:2021年12月03日 11:51:37   作者:青梅竹马丨两小无猜  
这篇文章主要介绍了Spring main方法中调用Dao层和Service层的方法,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

Spring main方法调用Dao层和Service层的方法

在web环境中,一般serviceImpl中的dao之类的数据库连接都由容器启动的时候创建好了,不会报错。

但是在main中,没有这个环境,所以需要获取环境:

ApplicationContext ctx = new FileSystemXmlApplicationContext("src/applicationContext.xml");
        PianoServiceImpl pianoService = (PianoServiceImpl) ctx.getBean("pianoServiceImpl");
//然后再调用方法
        return pianoService.getPriceByBrand(brand);

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

最近遇到一个问题,如何在工具类中去访问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.将所需调用的服务类设置成静态属性,并通过方法直接将服务层设置成工具类自己的属性即可。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Java包装类的概述与应用

    Java包装类的概述与应用

    包装类使用起来非常方便,但是没有对应的方法来操作这些基本数据类型,可以使用一个类,把基本类型的数据装起来,在类中定义一些方法,我们可以使用类中的方法来操作这些基本类型的数据,这篇文章主要给大家介绍了关于Java包装类的相关资料,需要的朋友可以参考下
    2022-04-04
  • Java RocketMQ 路由注册与删除的实现

    Java RocketMQ 路由注册与删除的实现

    这篇文章主要介绍了Java RocketMQ 路由注册与删除的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-11-11
  • SpringBoot设置编码UTF-8的两种方法

    SpringBoot设置编码UTF-8的两种方法

    本文通过两种方式给大家介绍SpringBoot 设置编码UTF-8 ,每种方式通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-11-11
  • SpringBoot配置开发环境的详细步骤(JDK、Maven、IDEA等)

    SpringBoot配置开发环境的详细步骤(JDK、Maven、IDEA等)

    文章介绍了如何配置SpringBoot开发环境,包括安装JDK、Maven和IDEA,并提供了详细的步骤和配置方法,感兴趣的朋友一起看看吧
    2024-12-12
  • Java基于深度优先遍历的随机迷宫生成算法

    Java基于深度优先遍历的随机迷宫生成算法

    今天小编就为大家分享一篇关于Java基于深度优先遍历的随机迷宫生成算法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-02-02
  • 教你用Java在个人电脑上实现微信扫码支付

    教你用Java在个人电脑上实现微信扫码支付

    今天给大家带来的是Java实战的相关知识,文章围绕着Java在个人电脑上实现微信扫码支付展开,文中有非常详细的介绍及代码示例,需要的朋友可以参考下
    2021-06-06
  • java实现的顺时针/逆时针打印矩阵操作示例

    java实现的顺时针/逆时针打印矩阵操作示例

    这篇文章主要介绍了java实现的顺时针/逆时针打印矩阵操作,涉及java基于数组的矩阵存储、遍历、打印输出等相关操作技巧,需要的朋友可以参考下
    2019-12-12
  • 详解Java中“==”与equals()的区别

    详解Java中“==”与equals()的区别

    这篇文章主要介绍了详解Java中“==”与equals()的区别的相关资料,需要的朋友可以参考下
    2017-02-02
  • Maven项目分析剔除无用jar引用的方法步骤

    Maven项目分析剔除无用jar引用的方法步骤

    这篇文章主要介绍了Maven项目分析剔除无用jar引用的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-10-10
  • SpringBoot整合Swagger2的完整过程记录

    SpringBoot整合Swagger2的完整过程记录

    Swagger是一款RESTful接口的文档在线自动生成、功能测试功能框架,这篇文章主要给大家介绍了关于SpringBoot整合Swagger2的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2021-09-09

最新评论