我是靠谱客的博主 怕孤独大树,这篇文章主要介绍11、springboot整合spring-data-jpa案例:写业务层、持久层、表现层(控制器)用户的业务层接口用户的业务层实现类 用户的持久层接口用户的控制器(表现层),现在分享给大家,希望可以做个参考。

目录

用户的业务层接口

用户的业务层实现类

用户的持久层接口

用户的控制器(表现层)


用户的业务层接口

Service层的作用

用途:Service层主要负责业务模块的逻辑应用设计

1.封装的具体业务实现方法,来提高业务复用性

2.负责将参与本次业务实现的Dao层中事务进行管理

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
package com.example.demo.service; import com.example.demo.bean.User; import java.util.List; /** * 用户的业务层接口 * @author yyh */ public interface IUserService { /** * 查询所有用户 * @return */ List<User> findAllUser(); }

用户的业务层实现类

业务实现:具体要调用到已经定义的DAO接口,封装Service层的业务逻辑有利于业务逻辑的独立性和重复利用性,程序显得简洁。

不过其实有一个很有疑问的点就是Service层是不是可有可无,其实作为我个人观点来说的话,小型项目,业务逻辑不复杂的情况下,不用Service层其实并没有什么关系,毕竟Dao层实现了和数据库的交互,Controller层则实现了与前端的交互,这样已经基本打通了前后端,但是遇到大型项目的前提下,还是需要Service层去进行逻辑处理的,确实是需要分情况而言。再退一步想,毕竟这是N多前辈一直延用至今的模式,如果真的没必要存在,那么早就被淘汰了。但是就我个人对Service层的理解:我觉得Service层最大的作用在于规范了代码的开发,实现了业务层与持久层的隔离开发,controller、service、dao每一层都应该有它的边界,来达到解耦的目的,方便代码的复用和扩展。不过我觉得,随着我工作经验和项目经验的累积,我对于MVC的架构分层,以后应该会有进一步的提升,到时候我会继续更文谈谈更深层次的理解。

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
package com.example.demo.service.impl; import com.example.demo.bean.User; import com.example.demo.dao.IUserDao; import com.example.demo.service.IUserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; /** * 用户的业务层实现类 * @author yyh */ @Service("userService") public class UserServiceImpl implements IUserService { @Autowired private IUserDao userDao; @Override public List<User> findAllUser() { return userDao.findAll(); } }


用户的持久层接口

持久层:DAO层(Data Access Object)即数据访问对象(=Mapper层)

用途:DAO层主要是做数据持久层的工作,负责与数据库进行联络的一些任务都封装在该层。

  1. 设计DAO的接口
  2. 在Spring的配置文件中定义此接口的实现类
  3. 在模块中调用这个接口来进行数据业务的处理
  4. DAO层的数据源配置,以及有关的数据库连接的参数都在Spring的配置文件中进行配置。
  5. 现在用mybatis逆向工程生成的mapper层,其实就是dao层。对数据库进行数据持久化操作,它的方法语句是直接针对数据库操作的,而service层是针对我们controller,也就是针对我们使用者。service的impl是把mapper和service进行整合的文件。
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
package com.example.demo.dao; import com.example.demo.bean.User; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.stereotype.Repository; import java.util.List; /** * 用户的持久层接口 * @author yyh * * JpaRepository<User,Long>: * 两个泛型是指 1、你要操作那个类 2、你的实体类主键的数据类型 * * @Repository 没有持久层,持久层是继承的,所以加此注解即可 */ @Repository("userDao") public interface IUserDao extends JpaRepository<User,Long> { /** * 查询所有用户 * 如果用的是spring data jpa,然后也不想写这些方法, * 这个时候我们可以选择,让spring data jpa来帮我们实现, * 我们可以继承 JpaRepository<User,Long> * @return */ //public List<User> findAll(); }

用户的控制器(表现层)

表现层:Controller层

用途:Controller层主要负责具体的业务模块流程的控制

  1. 在该层中需要调用Service层的接口来控制业务流程,控制的配置也同样是在Spring的配置文件中进行的,针对具体业务流程会有不同的控制器。
  2. controller通过接收前端传过来的参数进行业务操作,在返回一个指定的路径或者数据表。
  3. 在具体设计过程中可以将流程进行抽象归纳,设计出可以重复利用的子单元流程模块,可使得程序结构清晰,大大减少代码量。
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
package com.example.demo.web.controller; import com.example.demo.bean.User; import com.example.demo.service.IUserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.util.List; /** * 用户的控制器(表现层) * @author yyh */ @RestController @RequestMapping("/user") public class UserController { @Autowired private IUserService userService; //http://localhost:8080/user/findAll @RequestMapping("/findAll") public List<User> findAllUser(){ return userService.findAllUser();//业务层调用持久层去查询 } }

最后

以上就是怕孤独大树最近收集整理的关于11、springboot整合spring-data-jpa案例:写业务层、持久层、表现层(控制器)用户的业务层接口用户的业务层实现类 用户的持久层接口用户的控制器(表现层)的全部内容,更多相关11、springboot整合spring-data-jpa案例:写业务层、持久层、表现层(控制器)用户的业务层接口用户的业务层实现类内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(57)

评论列表共有 0 条评论

立即
投稿
返回
顶部