精华内容
参与话题
问答
  • service层的作用

    千次阅读 2014-10-12 13:05:02
    Service层是为了处理包含多个POJO对象(即对多个表数据操作)时,进行事务管理(声明式事务管理)。Service层(其接口实现类)被注入多个DAO对象,以完成其数据操作。 2, Service之有无 这一...
    1,dao和service对应

    一般情况下,Hibernate DAO只操作一个POJO对象,因此一个DAO对应一个POJO对象。 Service层是为了处理包含多个POJO对象(即对多个表的数据操作)时,进行事务管理(声明式事务管理)。Service层(其接口的实现类)被注入多个DAO对象,以完成其数据操作。

    2, Service之有无

    这一点我的看法未必正确,我的脑海现在有两种构建业务层的模式:

    模式1是Service + DAO,即DAO中只做CRUD及类似的简单操作(称之为功能点,不包含业务逻辑),Service中通过调用一个或多个DAO中的功能点来组合成为业务逻辑.Service的数量应该由功能模块来决定。

    在这种模型中业务逻辑是放在Service中的,事务的边界也应该在Service中控制. 当然,直接在Service中控制事务会引入非业务逻辑的代码,幸好Spring的AOP可以解决这个问题,这也是引入Spring的原因之一.

    如果说到缺点,就在于对某些对象的操作就是简单的CRUD,Service层显得累赘.


    2:
    从字面的意思上来看,service是业务层,dao是数据访问层。
    记得刚学编程的时候,都是在service里直接调用dao,service里面就new一个dao类对象,调用,其他有意义的事没做,因为也不知道应该在里面写些什么有意义的代码,也不明白有这个有什么用,甚至还觉得不要serivce层不更好,省点功夫,反正它不也就是copy了一次dao层然后改个名字而已么……
    我们都知道,标准主流现在的编程方式都是采用MVC综合设计模式,MVC本身不属于设计模式的一种,它描述的是一种结构,最终目的达到解耦,解耦说的意思是你更改某一层代码,不会影响我其他层代码,如果你会像spring这样的框架,你会了解面向接口编程,表示层调用控制层,控制层调用业务层,业务层调用数据访问层。初期也许都是new对象去调用下一层,比如你在业务层new一个DAO类的对象,调用DAO类方法访问数据库,这样写是不对的,因为在业务层中是不应该含有具体对象,最多只能有引用,如果有具体对象存在,就耦合了。当那个对象不存在,我还要修改业务的代码,这不符合逻辑。好比主板上内存坏了,我换内存,没必要连主板一起换。我不用知道内存是哪家生产,不用知道多大容量,只要是内存都可以插上这个接口使用。这就是MVC的意义。
    接下来说如果现在感觉不到service的存在意义,其实因为现在做东西分层次不是那么严格,在一个你们做东西业务本身也少,举个最简单的例子,你做一个分页的功能,数据1000条,你20条在一个页,你可以把这个功能写成工具类封装起来,然后在业务层里调用这个封装的方法,这才是业务里真正干得事,只要没访问数据库的,都要在业务里写。
    比说你现在用的是SSH框架,做一个用户模块:
    1、假设现在你做这个功能会用到user表和权限表,那么你前台的页面访问action,action再去调用用户模块service,用户模块service判断你是操作user表还是权限表,如果你操作的是user表则service的实现类就去调用userDAO。如果是操作的是权限表则调用权限的DAO
    2、也就是说DAO一定是和数据库的每张表一一对应,而service则不是。明白的没?其实你一个项目一个service和一个DAO其实也一样可以操作数据库,只不过那要是表非常多,出问题了,那找起来多麻烦,而且太乱了
    3、好处就是你的整个项目非常系统化,和数据库的表能一致,而且功能模块化,这样以后维护或者改错比较容易,性能也高一些
    展开全文
  • Service层和DTO层的作用

    千次阅读 2019-01-02 14:22:30
    Service层和DTO层的作用 Service层主要提供的几个作用: 1、将业务逻辑层进行封装,对外提供业务服务调用。...在上面的结构中,我们说了Service层的作用,目前还少加入了一层,DTO(数据传输对象层)...

    Service层和DTO层的作用

    Service层主要提供的几个作用:
    1、将业务逻辑层进行封装,对外提供业务服务调用。
    2、通过外观模式,屏蔽业务逻辑内部方法。
    3、降低业务逻辑层与UI层的依赖,业务逻辑接口或实现的变化不会影像UI层。
    4、降低UI层调用的请求次数及数据往返。

    DTO层主要提供的作用:

    在上面的结构中,我们说了Service层的作用,目前还少加入了一层,DTO(数据传输对象层),该层负责屏蔽后端的实体层,将UI层需要的数据进行重新的定义和封装,在实际的业务场景下,后端实现或存储的数据远比用户需要的数据要庞大和复杂,所以前端需要的数据相对来说要么是组合的,要么是抽取的,不是完整的,因为我们在设计数据存储格式上都会有一些额外的设计和考虑。

    前端的UI层,只是知道DTO的存在,同时前端需要的数据都在一个DTO中,这样,每次调用服务层的时候,只需要调用一次就可以完成所有的业务逻辑操作,而不是原来的直接调用业务逻辑层那样的,需要调用多次,对于分布式场景下,减少服务调用的次数,尤其重要。

    【转载自】https://www.cnblogs.com/chenjinjian/p/4435156.html

    展开全文
  • **2.Service层:**又叫服务层或业务层,封装Dao层的操作,使一个方法对外表现为实现一种功能,例如:网购生成订单时,不仅要插入订单信息记录,还要查询商品库存是否充足,购买是否超过限制等等。 **3.Controller层...

    1.Dao层:全称Data Access Object。Dao层比较底层,负责与数据库打交道具体到对某个表、某个实体的增删改查
    2.Service层:又叫服务层或业务层,封装Dao层的操作,使一个方法对外表现为实现一种功能,例如:网购生成订单时,不仅要插入订单信息记录,还要查询商品库存是否充足,购买是否超过限制等等。
    3.Controller层:业务控制层,负责接收数据和请求,并且调用Service层实现这个业务逻辑。

    Controller层像是一个服务员,他把客人(前端)点的菜(数据、请求的类型等)进行汇总什么口味、咸淡、量的多少,交给厨师长(Service层),厨师长则告诉沾板厨师(Dao 1)、汤料房(Dao 2)、配菜厨师(Dao 3)等(统称Dao层)我需要什么样的半成品,副厨们(Dao层)就负责完成厨师长(Service)交代的任务。不知道这个比喻是否合适。

    展开全文
  • 一、entity 别名: model ,domain 用途: 用于存放我们实体类,与数据库中属性值基本保持一致,实现set和get方法。 例子:user表实体user public class User { /** * 用户id */ @Id @...

    一、entity层

    别名: model层 ,domain层
    用途: 实体层,用于存放我们的实体类,与数据库中的属性值基本保持一致,实现set和get的方法。
    例子:user表的实体User

    public class User {
        /**
         * 用户id
         */
        @Id
        @GeneratedValue(strategy = GenerationType.IDENTITY)
        private Long id;
    
        /**
         * 用户昵称
         */
        private String nick;
    
        /**
         * 手机号
         */
        private String mobile;
    
        /**
         * 头像地址
         */
        @Column(name = "head_image_url")
        private String headImageUrl;
    
      
        /**
         * 获取用户id
         *
         * @return id - 用户id
         */
        public Long getId() {
            return id;
        }
    
        /**
         * 设置用户id
         *
         * @param id 用户id
         */
        public void setId(Long id) {
            this.id = id;
        }
    
        /**
         * 获取用户昵称
         *
         * @return nick - 用户昵称
         */
        public String getNick() {
            return nick;
        }
    
        /**
         * 设置用户昵称
         *
         * @param nick 用户昵称
         */
        public void setNick(String nick) {
            this.nick = nick;
        }
    
        /**
         * 获取手机号
         *
         * @return mobile - 手机号
         */
        public String getMobile() {
            return mobile;
        }
    
        /**
         * 设置手机号
         *
         * @param mobile 手机号
         */
        public void setMobile(String mobile) {
            this.mobile = mobile;
        }
    
        /**
         * 获取头像地址
         *
         * @return head_image_url - 头像地址
         */
        public String getHeadImageUrl() {
            return headImageUrl;
        }
    
        /**
         * 设置头像地址
         *
         * @param headImageUrl 头像地址
         */
        public void setHeadImageUrl(String headImageUrl) {
            this.headImageUrl = headImageUrl;
        }
    
        
    }
    

    二、mapper层

    别名: dao层
    用途: 对数据库进行数据持久化操作,他的方法语句是直接针对数据库操作的,主要实现一些增删改查操作,在mybatis中方法主要与与xxx.xml内相互一一映射。
    示例:userMapper

    public interface userMapper {
        int deleteByPrimaryKey(Long id);
    
        int insert(user record);
    
        int insertSelective(user record);
    
        user selectByPrimaryKey(Long id);
    
        int updateByPrimaryKeySelective(user record);
    
        int updateByPrimaryKey(user record);
    }
    

    三、service层

    用途:业务service层,给controller层的类提供接口进行调用。一般就是自己写的方法封装起来,就是声明一下,具体实现在serviceImpl中。
    示例:UserService

    public interface UserService extends Service<User> {
    
    }
    
    

    四、controller层

    别名:web 层
    用途: 控制层,负责具体模块的业务流程控制,需要调用service逻辑设计层的接口来控制业务流程。因为service中的方法是我们使用到的,controller通过接收前端H5或者App传过来的参数进行业务操作,再将处理结果返回到前端。
    示例:UserController

    @RestController
    @RequestMapping("/user")
    public class UserController {
        @Resource
        private UserService userService;
    
        @PostMapping("/add")
        public Result add(User user) {
            userService.save(user);
            return ResultGenerator.genSuccessResult();
        }
    
        @PostMapping("/delete")
        public Result delete(@RequestParam Integer id) {
            userService.deleteById(id);
            return ResultGenerator.genSuccessResult();
        }
    
        @PostMapping("/update")
        public Result update(User user) {
            userService.update(user);
            return ResultGenerator.genSuccessResult();
        }
    
        @PostMapping("/detail")
        public Result detail(@RequestParam Integer id) {
            User user = userService.findById(id);
            return ResultGenerator.genSuccessResult(user);
        }
    
        @PostMapping("/list")
        public Result list(@RequestParam(defaultValue = "0") Integer page, @RequestParam(defaultValue = "0") Integer size) {
            PageHelper.startPage(page, size);
            List<User> list = userService.findAll();
            PageInfo pageInfo = new PageInfo(list);
            return ResultGenerator.genSuccessResult(pageInfo);
        }
    }
    
    展开全文
  • 错误描述:系统服务错误 原因:主板驱动与Windows10系统存在兼容问题,系统上正在运行某个... 3、卸载蓝屏之前启动那个软件(要确定是这个软件导致蓝屏,重启电脑,再次运行该软件是否蓝屏,若是则卸载该...
  • windows蓝屏显示终止代码:SYSTEM_SERVICE_EXCEPTION 失效操作ComputerZ_x64.sys 主要是CPU_Z出错,卸载重装鲁大师即可。
  • 解决 windows10 system service exception蓝屏

    千次阅读 2017-02-13 23:06:00
    解决方法: WINDOWS/system32/config/RegBack/SYSTEM/* 复制到 WINDOWS/system32/config/*下 转载于:https://www.cnblogs.com/sprinng/p/6395795.html
  • SSM是sping+springMVC+...service层。存放业务逻辑处理,也是一些关于数据库处理操作,但不是直接和数据库打交道,他有接口还有接口实现方法,在接口实现方法中需要导入mapper层,mapper层是直接跟数据库...
  • Service层在分层中的作用

    万次阅读 2014-07-05 23:35:44
    在通用J2EE应用分层结构中,经常发现有一个叫Service分层,那么这个Service层到底是用来做什么呢 ?简单地就字面理解来说, Service,即服务,那我们可以叫它为服务层。既然作为服务层,那么它职责理应是为...
  • 背景:想装一台SAP ECC服务器,先预装XP,在装XP时候就报错:VMware Workstation 未能启动 VMware Authorization Service。您可以尝试手动启动 VMware Authorization Service。如果此问题仍然存在,请联系 VMware ...
  • 一,如果在service层加事务 1.事务一般要放在Service层,放在Controller也可以,。 2.在springmvc配置文件中扫描controller时要忽略service,因为在springmvc配置文件加载service事务不起作用。所以在...
  • 1、java web 中dao 层和service层都使用接口,是否是为使用接口而使用接口? 一个dao或者一个service都是一个接口,然后再一个类去实现,为什么不直接使用一个类呢?在入门级(单表)SSM+maven代码里面,我们甚至...
  • Service层在J2EE分层结构中的作用

    万次阅读 2012-02-23 21:31:00
    在通用J2EE应用分层结构中,经常发现有一个叫Service分层,那么这个Service层到底是用来做什么呢 ?简单地就字面理解来说, Service,即服务,那我们可以叫它为服务层。既然作为服务层,那么它职责理应是为...
  • 07年11月15日 我目前做的项目是采用struts+hibernate+spring框架来做的,这个架构是支持hibernate延迟的,即lazy="true";...关键是看一个配置文件能说明service层的作用.看看配置文件 xml version="1.0" encoding="UT
  • 通常都说service层负责实现业务逻辑,dao封装数据库访问。 但是我在页面实现功能大多数都是按照表单条件查询,插入什么。 实现方法就是在DAO层根据传进来DTO拼装sql进行数据库操作。service层什么也没...
  • controller层说是准备数据用service层是做业务逻辑。 但是我总感觉自己理解不够深入。想了解各层具体都要做什么。 比如controller把所有需要条件传给service,在service在调用各个dao?? 那不...
  • service层。存放业务逻辑处理,也是一些关于数据库处理操作,但不是直接和数据库打交道,他有接口还有接口实现方法,在接口实现方法中需要导入mapper层,mapper层是直接跟数据库打交道...
  • SSM是 Spring + SpringMVC + Mybatis集成框架。 一、entity层 同类: model层 = entity层 = domain层 作用: 用于存放我们实体类,与数据库中属性值基本保持一致。...三、service层 同类: 只有一个 se...
  • controller,service,dao,mapper,model层的作用

    万次阅读 多人点赞 2018-03-24 13:47:04
    这几天在学习springboot+mybatis框架,对于上面几个文件夹中应该存放什么类,这些类有什么功能,还是有些...service接口--&gt;serviceImpl--&gt;dao接口--&gt;daoImpl--&gt;mapper--&gt;db...
  • 这几天在学习springboot+mybatis框架,对于上面几个文件夹中应该存放什么类,这些类有什么功能,还是有些迷糊。...service接口-->serviceImpl-->dao接口-->daoImpl-->mapper-->...
  • view层: 结合control层,显示前台页面。...control层:业务模块流程控制,调用service层接口。 service层:业务操作实现类,调用dao层接口。 dao层: 数据业务处理,持久化操作 model层: pojo,OR maping,...
  • Linux关闭防火墙命令

    万次阅读 多人点赞 2018-02-12 21:08:07
    下面是red hat/CentOs7关闭防火墙命令! 1:查看防火状态 systemctl status firewalld service iptables status 2:暂时关闭防火墙 systemctl stop firewalld service iptables stop 3:永久关...
  • 关于事务作用service或者controller的解释 最近看到有同学将@Transactional 写在dao层的方法上,这就相当于白写了,为什么这么说呢?首先我们先讲一下事务的四大特性。 事务特性 解释 原子性(Atomicity)...
  • 安装虚拟机后,虚拟机内系统无法启动,弹出 “Windows 无法启动 VMware Authorization Service 服务(位于 本地计算机 上),错误 1068: 依赖服务或组无法启动” 提示框。 解决: 1、首先,检查VMware是否以管理员...
  • spring MVC里面service接口类的作用

    千次阅读 2017-11-07 16:37:06
    现在编程是面向接口编程,举个例子,假如我的代码以前是哪mybaties写的,现在我要那hibernate写,我就只用修改service的实现类。我的Control层调用的是service的接口类,所以我就不用修改Control层的内容。
  • 文章目录model层dao层service层controller层 model层 model层即数据库实体层,也被称为entity层,...dao层的作用为访问数据库,向数据库发送sql语句,完成数据的增删改查任务。 service层 service层即业务逻辑层...
  • 有这样的一道面试题:在service层调用别的service层的方法,他们的事务能否生效;如果是在同一个类中调用带有@Transactional注解的方法,此时,他们的事务能否生效? 看了许多大神的blog,今天来做一下总结: 先给...

空空如也

1 2 3 4 5 ... 20
收藏数 407,560
精华内容 163,024
关键字:

service