当前位置: 首页 > article >正文

java项目结构说明

controller、service、serviceImpl、(DAO)Mapper、Xml

1. 表现层:controller(Handler)

Controller层负责具体的业务模块的流程控制,供前端调用的API

1.调用Service层的接口来控制业务逻辑

2.针对具体的业务流程会有不同的控制器,设计过程中可以将流程进行抽象归纳,设计出可以重复利用的子单元流程模块,这样不仅使得结构变得清晰,也大大减少了代码量

//    通过用户编号和工作单位编号查询宠物
    @RequestMapping(method = RequestMethod.POST,value = "/selectAllPetByWorkPlaceId")
    public BaseResponseDTO selectAllPetByUserIdAndWorkPlaceId(@RequestBody JSONObject params){
        Integer workPlaceId=params.getInteger("workPlaceId");
        List<Pet> petList=petService.selectAllPetByWorkPlaceId(workPlaceId);
        BaseResponseDTO baseResponseDTO = new BaseResponseDTO(BaseResponseDTO.SUCCESS);
        baseResponseDTO.setData(petList);
        return baseResponseDTO;
    }

2. 业务层:service

Service层主要负责业务木块的逻辑应用设计。

1.设计接口

2.封装Service层的业务逻辑有利于通用的业务逻辑的独立性和重复利用性,程序显得非常简洁。

List<Pet> selectAllPetByWorkPlaceId(Integer workPlaceId);


3. 业务层实现:serviceImpl

serviceImpl层主要是用来实现业务层的接口

1.实现业务层的接口

2.调用DAO层的接口

(需要添加@Service注解)

@Override
public List<Pet> selectAllPetByWorkPlaceId(Integer workPlaceId) {
    return petMapper.selectAllPetByWorkPlaceId(workPlaceId);
}

4. 持久层:(DAO)Mapper

DAO层主要做的数据持久层的工作,负责数据库进行联络的一些任务都封装在此

1.首先设计接口,再设计其实现的类

2.在spring的配置文件中定义此接口的实现类

3.在模块中调用此接口来进行数据业务的处理,而不用关心此接口的具体实现类是哪个类

4.DAO层的数据源的配置以及数据库的连接

List<Pet> selectAllPetByWorkPlaceId(Integer workPlaceId);

5. 持久层的配置:Xml    (resources.mapper.*.xml)

xml层主要是写sql语句,用来查询数据库的资料

1.配置别名:用于批量扫描Pojo包

2.不需要配置mappers标签,但一定要保证mapper.java文件与mapper.xml文件同名。

<!--查询宠物通过工作单位-->
<select id="selectAllPetByWorkPlaceId" resultMap="BaseResultMap" >
  SELECT
  <include refid="Base_Column_List" />
  from pet WHERE pet_id=ANY(
  SELECT pet_id FROM pet__all WHERE workplace_id=#{workPlaceId,jdbcType=INTEGER})
</select>

6. 模型层:Entity(model)

1.模型层是数据模型层,例如与数据库的哪个表相关联,类中可以封装getter,setter,toString等方法

2.dto是数据传输对象(Data Transfer Object)的缩写,不是model,model属于po持久对象

总结

1.DAO层和Service层可以单位进行开发,互相的耦合度很低,完全可以独立进行

2.Controller,View层因为耦合度比较高,因而要结合在一起开发,但是也可以看作一个整体独立于前两个层进行开发。这样,在层与层之前我们只需要知道接口的定义,调用接口即可完成所需要的逻辑单元应用,一切显得非常清晰简单。

3.Service层是建立在DAO层之上的,建立了DAO层后才可以建立Service层,而Service层又是在Controller层之下的,因而Service层应该既调用DAO层的接口,又要提供接口给Controller层的类来进行调用,它刚好处于一个中间层的位置。每个模型都有一个Service接口,每个接口分别封装各自的业务处理方法。


http://www.kler.cn/news/362003.html

相关文章:

  • 大厂面试真题-了解云原生吗,简单说一下docker和k8s
  • 嵌套div导致子区域margin失效问题解决
  • 理解JVM里的栈信息
  • leetcode day3 1+14+15
  • 九种排序,一次满足
  • ElementPlus中时间选择器配置
  • scrapy的xpath在控制台可以匹配,但是到了代码无法匹配(无法匹配tbody标签)
  • 金融行业:办公安全防护专属攻略
  • 三、MyBatis实践(2):MyBatis基本使用
  • 中国云厂出海:如何绕过暗礁,找到宝藏?
  • 10·24程序员节的思考:代码编织梦想,技术点亮未来
  • HBuilder X 中Vue.js基础使用1(三)
  • Vue学习一
  • 萤石云服务支持云端视频AI自动剪辑生成
  • 前端-基础CSS总结常用
  • LTE 基于快速hadamard变换FHT SSS辅同步信号检测之--M序列与hadamard变换的关系
  • uniapp修改input中placeholder样式
  • 学习笔记——交换——STP(生成树)桥协议数据单元(BPDU)
  • HTTPS关键考点(HTTPS Key Exam Points)
  • VOIDMAW:一种可用于绕过内存扫描器的新技术
  • [单调栈] 统计点数
  • 如何使用 matplotlib 在 Python 3 中绘制数据
  • 定制开发 AI 智能名片 S2B2C 商城系统小程序:选择靠谱第三方开发商的重要性
  • 给el-dialog的整体加动态class
  • Hadoop 3.4.0 安装与WordCount示例
  • 重学SpringBoot3-Reactive-Streams规范