关于Controller层和Service层的类报错问题及解决方案

目录
  • Controller层和Service层的类报错
  • Controller层和Service层的作用
    • 1.在controller和service里都写那些代码?
    • 2.在整个项目中什么时候加异常?异常怎么处理?

Controller层和Service层的类报错

当出现以下这种情况的时候,可以看看pom.xml文件中是否少了jar包。

当我出现这种情况的时候,我去看pom.xml包发现,如不其然我少了一个jar包

这就是我少了的那个jar包(spring-web),把这个加上之后就可以了。

<!-- https://mvnrepository.com/artifact/org.springframework/spring-web -->
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-web</artifactId>
			<version>4.3.18.RELEASE</version>
		</dependency>

Controller层和Service层的作用

1.在controller和service里都写那些代码?

Controller,从字面上理解是控制器,所以它是负责业务调度的,所以在这一层应写一些业务的调度代码,而具体的业务处理应放在service中去写,而且service不单纯是对于dao的增删改查的调用,service是业务层,所以应该更切近于具体业务功能要求,所以在这一层,一个方法所体现的是一个可以对外提供的功能,比如购物商城中的生成订单方法,这里面就不简单是增加个订单记录那么简单,我们需要查询库存,核对商品等一系列实际业务逻辑的处理;

2.在整个项目中什么时候加异常?异常怎么处理?

说到异常,我们应该回想下我们学习异常这一模块时,异常到底是什么有什么用?一直以来都觉得如果代码出现了异常是件让我悲伤的事,因为它意味着我哪里写错了,但是现在回想最初的认识都觉得有点好笑,"人,孰能无过",我所理解的异常只是我自己认为造成的错误,但殊不知实际中的异常情况是很多的,除了自身造成问题之外,服务器down了,或者数据状态发生改变,甚至断网都可能造成异常,所以从另一方面,异常是服务于我们的,是为了我们更好的发现问题解决问题而存在的,在这里,真的由衷的敬佩创造异常机制的前辈,他们过人的智慧真让人望尘莫及~

回到话题上,那么实际中我们该怎么做呢?

个人觉得我们应该从底层的dao一直到action,应对每一层的代码进行基本的try-catch,有时根据业务需求可能要进行多个catch,由上至下依次捕获从小到大的各种异常,一般对底层的异常应该往出抛,目的是要通知上一层也就是调用者出现了什么问题,但是对于和用户直接交互的前台让用户看到后台的这些异常信息可是不妥的,所以我们需要将异常信息转换常用的友好提示给用户,而对于异常信息应记录到日志以便对问题进行分析解决。

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

(0)

相关推荐

  • SpringMVC项目访问controller时候报404的解决

    目录 SpringMVC访问controller时候报404 在网上搜各种方法都没有解决 终于解决 SpringMVC 无法访问到controller的可能原因 从网上查的资料 SpringMVC访问controller时候报404 自己写的SpringMVC项目,突然发现访问controller路径的时候页面显示404,看控制台也没有报严重错误,只是说该路径找不到,并且单独访问jsp也能正常访问. 控制台报这种错误 No mapping found for HTTP request with

  • 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-->

  • DTO 实现 service 和 controller 之间值传递的操作

    概念 DTO( Data Transfer Object): 数据传输对象,Service 或 Manager 向外传输的对象. BO:business object 业务对象.主要作用是把业务逻辑封装为一个对象.这个对象可以包括一个或多个其它的对象.比如一个简历,有教育经历.工作经历.社会关系等等.我们可以把教育经历对应一个 PO,工作经历对应一个 PO,社会关系对应一个 PO.建立一个对应简历的 BO 对象处理简历,每个 BO 包含这些 PO.这样处理业务逻辑时,我们就可以针对 BO 去处理

  • 关于Controller层和Service层的类报错问题及解决方案

    目录 Controller层和Service层的类报错 Controller层和Service层的作用 1.在controller和service里都写那些代码? 2.在整个项目中什么时候加异常?异常怎么处理? Controller层和Service层的类报错 当出现以下这种情况的时候,可以看看pom.xml文件中是否少了jar包. 当我出现这种情况的时候,我去看pom.xml包发现,如不其然我少了一个jar包 这就是我少了的那个jar包(spring-web),把这个加上之后就可以了. <!-

  • 关于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或者

  • springmvc 中dao层和service层的区别说明

    springmvc dao层和service层的区别 首先解释面上意思,service是业务层,dao是数据访问层 这个问题我曾经也有过,记得以前刚学编程的时候,都是在service里直接调用dao,service里面就new一个dao类对象,调用,其他有意义的事没做,也不明白有这个有什么用,参加工作久了以后就会知道,业务才是工作中的重中之重. 我们都知道,标准主流现在的编程方式都是采用MVC综合设计模式,MVC本身不属于设计模式的一种,它描述的是一种结构,最终目的达到解耦,解耦说的意思是你更改

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

    目录 Spring main方法调用Dao层和Service层的方法 如何在普通类中直接访问service层或dao层 第一种方案 第二种方案 Spring main方法调用Dao层和Service层的方法 在web环境中,一般serviceImpl中的dao之类的数据库连接都由容器启动的时候创建好了,不会报错. 但是在main中,没有这个环境,所以需要获取环境: ApplicationContext ctx = new FileSystemXmlApplicationContext("src/

  • SpringBoot高版本修改为低版本时测试类报错的解决方案

    目录 高版本改低版本时测试类报错 比如在创建项目时默认的版本为2.2.2版本 然后我们修改为1.5.10的低版本 此时可以做如下修改 1.删除高版本默认导入的org.junit.jupiter.api.Test类 2.在类上添加注释@RunWith(SpringRunner.class) 3.将测试类和测试方法都修改为public 4.最后修改的测试类如下所示 高版本改低版本时测试类报错 有时在使用idea通过Spring Initailizr创建项目时,默认只能创建最近的版本的SpringBo

  • 关于controller的异常处理及service层的事务控制方式

    目录 controller异常处理及service层的事务控制 controller层Exception异常事务回滚失效问题 Spring的@Transactional源码中写道 测试① 测试② 测试③ 测试④ controller异常处理及service层的事务控制 最近写代码涉及到一些事务,上午终于把代码给理顺了,之前不太清楚在哪里做异常处理,导致代码遍地try-catch,相当难看. 还是基于controller-service-dao三层来写代码,从入口开始,controller层的方法

  • Java service层获取HttpServletRequest工具类的方法

    大家都知道 能在Controller/action层获取HttpServletRequest ,但是这里给大家备份的是从代码内部service层获取HttpServletRequest工具类. 具体如下: package com.base.common.sessionutils; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; import org.springframewo

  • SpringBoot在自定义类中调用service层等Spring其他层操作

    背景: 做了一个TCP服务器来接入智能设备,然后需要将设备实时发送的定位等关键信息存储到数据库. 为了考虑将来可能对外提供rest接口,采用将TCP服务器集成到SpringBoot框架,当然,也是为了能最快利用mybatis框架实现数据访问,然后依次解决了如何启动,如何注销等各种问题,然后在TCP服务器消息处理时,需要写数据库,直接调用DAO层,编译报错. 改为调用Service层,编译正常,运行到调用的地方,报空指针异常,跟踪到异常位置,发现service为空,也就是按照之前controlle

  • springboot实现在工具类(util)中调用注入service层方法

    一.新建BeanUtil类 import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeansException; import org.springframework.beans.factory.DisposableBean; import org.springframework.context.ApplicationContext; import org.springframework.context.Applic

随机推荐