Spring main方法中如何调用Dao层和Service层的方法
目录
- Spring main方法调用Dao层和Service层的方法
- 如何在普通类中直接访问service层或dao层
- 第一种方案
- 第二种方案
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.将所需调用的服务类设置成静态属性,并通过方法直接将服务层设置成工具类自己的属性即可。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
springBoot controller,service,dao,mapper,model层的作用说明
目录 零.业务逻辑 一.Dao(Data Access Object):数据存储对象 二.Service:服务 三.Controller:控制器 四.model:模型 五.View层 六.它们之间的关系 DAO层.Service层和Controller层的区别 1.dao层:数据访问层 2.service层:服务层 3.controller层 关系 零.业务逻辑 Controller-->service接口-->serviceImpl-->dao接口-->daoImpl-->
-
springmvc 中dao层和service层的区别说明
springmvc dao层和service层的区别 首先解释面上意思,service是业务层,dao是数据访问层 这个问题我曾经也有过,记得以前刚学编程的时候,都是在service里直接调用dao,service里面就new一个dao类对象,调用,其他有意义的事没做,也不明白有这个有什么用,参加工作久了以后就会知道,业务才是工作中的重中之重. 我们都知道,标准主流现在的编程方式都是采用MVC综合设计模式,MVC本身不属于设计模式的一种,它描述的是一种结构,最终目的达到解耦,解耦说的意思是你更改
-
SpringBoot Service和Dao的编写详解
本文主要介绍了SpringBoot Service和Dao的编写详解,分享给大家,具体如下: 效果图 配置环境 创建数据库 数据库中文编码 建表 create table `student` ( `id` int(11) Not NULL AUTO_INCREMENT COMMENT '主键自增id', `name` varchar(250) NOT NULL DEFAULT ' ' COMMENT '姓名', PRIMARY KEY(`id`) )ENGINE=INNODB DEFAULT C
-
Spring main方法中如何调用Dao层和Service层的方法
目录 Spring main方法调用Dao层和Service层的方法 如何在普通类中直接访问service层或dao层 第一种方案 第二种方案 Spring main方法调用Dao层和Service层的方法 在web环境中,一般serviceImpl中的dao之类的数据库连接都由容器启动的时候创建好了,不会报错. 但是在main中,没有这个环境,所以需要获取环境: ApplicationContext ctx = new FileSystemXmlApplicationContext("src/
-
Spring事务传播中嵌套调用实现方法详细介绍
目录 前言 7种传播方式 注解式事务 事务的方法之间的调用 注意事项 前言 最近在使用Spring框架时遇到了一些问题,主要是Spring的事务传播问题,一个不带事务的方法调用带事务的方法,有时候会出现不回滚的情况,所以写了这篇文章来记录一下. 7种传播方式 我们先来看Spring事务的7中传播方式以及对应的描述 属性名称 值 描述 PROPAGATION__REQUIRED REQUIRED 表示的是当前这个方法必须运行在一个事务环境中,如果当前方法已经处于事务环境中,就可以直接使用该方法,否
-
Java多线程run方法中直接调用service业务类应注意的问题及解决
目录 多线程run方法中直接调用service业务类应注意 图解如下 多线程知识点 线程启动的四种方式 使用@Aysnc注解实现多线程 用户线程与守护线程的区别 线程的六种状态 Java锁的可重入性 线程池的四种拒绝策略 sleep和wait的区别 为什么wait(),notify(),notifyAll()在对象中,而不在Thread类中 多线程run方法中直接调用service业务类应注意 Java多线程run方法里边使用service业务类会产生java.lang.NullPointerE
-
关于MVC的dao层、service层和controller层详解
目录 MVC的dao层.service层和controller层 1.dao层 2.service层 3.controller层 4.view层 5.它们之间的关系 关于dao层/mapper层的一些笔记 1.BaseMapper 2.@mapper MVC的dao层.service层和controller层 1.dao层 dao层主要做数据持久层的工作,负责与数据库进行联络的一些任务都封装在此,dao层的设计首先是设计dao层的接口,然后在Spring的配置文件中定义此接口的实现类,然后就可以
-
Mybatis-Plus实体类注解方法与mapper层和service层的CRUD方法
目录 1 注解 1.1 @TableName 1.2 @TableId 1.3 @TableField 1.4 @TableLogic 2 mapper层的CRUD方法 2.1 增(insert) 2.2 删(delete) 2.3 改(update) 2.4 查(select) 3 service层的CRUD方法 3.1 批量添加或者更新 3.2 查询表中总记录数 1 注解 1.1 @TableName 之前在入门案例中我们分析过:使用mp底层方法生成的SQL语句中,表名为mapper或者
-
关于Controller层和Service层的类报错问题及解决方案
目录 Controller层和Service层的类报错 Controller层和Service层的作用 1.在controller和service里都写那些代码? 2.在整个项目中什么时候加异常?异常怎么处理? Controller层和Service层的类报错 当出现以下这种情况的时候,可以看看pom.xml文件中是否少了jar包. 当我出现这种情况的时候,我去看pom.xml包发现,如不其然我少了一个jar包 这就是我少了的那个jar包(spring-web),把这个加上之后就可以了. <!-
-
Spring Cloud Ribbon 中的 7 种负载均衡策略的实现方法
目录 Ribbon介绍 负载均衡设置 7种负载均衡策略 1.轮询策略 2.权重策略 3.随机策略 4.最小连接数策略 5.重试策略 6.可用性敏感策略 7.区域敏感策略 项目源码 总结 负载均衡通器常有两种实现手段,一种是服务端负载均衡器,另一种是客户端负载均衡器,而我们今天的主角 Ribbon 就属于后者——客户端负载均衡器. 服务端负载均衡器的问题是,它提供了更强的流量控制权,但无法满足不同的消费者希望使用不同负载均衡策略的需求,而使用不同负载均衡策略的场景确实是存在的,所以客户端负载均衡就
-
浅析jquery ajax异步调用方法中不能给全局变量赋值的原因及解决方法
在调用一个jquery的ajax方法时我们有时会需要该方法返回一个值或者给某个全局变量赋值,可是我们发现程序执行完后并没有获取到我们想要的值,这时很有可能是因为你用的是ajax的异步调用async:true(默认情况),如: 复制代码 代码如下: function ManageCommentText(text) {var result = text;$.ajax({data: "get",url: "GetComments.aspx",data: "typ
-
spring在service层的方法报错事务不会回滚的解决
目录 spring在service层方法报错事务不会回滚 解决方法 service手动回滚问题 spring在service层方法报错事务不会回滚 @Transactional(rollbackFor = {Exception.class}) public void insertData() throws Exception { // 业务代码1 business1(); // 业务代码2 business2(); // 业务代码3
随机推荐
- php使用正则验证中文
- PowerShell中使用PrintManagement管理打印机示例
- JavaScript模块化开发之SeaJS
- 使用.NET命令行编译器编译项目(如ASP.NET、C#等)
- js实现网页右上角滑出会自动消失大幅广告的方法
- Apache, PHP在Windows 9x/NT下的安装与配置 (一)
- PHP备份数据库生成SQL文件并下载的函数代码
- Android实现多线程下载文件的方法
- asp实现截取字符串函数
- Android引导页面的简单实现
- Android动画之渐变动画(Tween Animation)详解 (渐变、缩放、位移、旋转)
- 正则验证小数点后面只能有两位数的方法
- jQuery UI 应用不同Theme的办法
- 鼠标跟随的文字变动效果
- 一个域名查询的程序
- serv_u 简易教程
- win2003负载均衡设置方法(比较详细)
- PHP+Ajax实现无刷新分页实例详解(附demo源码下载)
- 克隆系统 Ghost常用参数大揭秘
- php取出数组单个值的方法