java springboot 目录组织架构介绍

推荐的package组织方式

com
  +- example
    +- myproject  // root package=com.example.myproject,所有的类和其他package都在root package之下。
      +- Application.java // 应用主类
      +- domain // 用于定义实体映射关系与数据访问相关的接口和实现
      |  +- Customer.java
      |  +- CustomerRepository.java
      +- service // 用于编写业务逻辑相关的接口与实现
      |  +- CustomerService.java
      +- web // 用于编写Web层相关的实现,比如:Spring MVC的Controller等
      |  +- CustomerController.java

项目分层

  • View -> Controller -> Service -> Dao/Mapper -> Entity/Model
  • View层(视图层) 前台jsp页面表示
  • Controller(控制层) 负责具体的业务模块流程控制
  • Service(业务层) 负责业务模块逻辑应用设计; 有利于业务逻辑的独立性和重复利用性
  • Dao/Mapper(持久层) 数据持久化,数据库CRUD接口,封装了对数据库持久化操作。
  • Entity/Model(实体层) 也称为pojo层,定义与数据库对象应的属性以及属性get/set方法的类
  • Config(配置层) 用于存放springboot相关的配置类。
  • Dto(数据传输层) Data Transfer Object; 用于前后端数据交互

为什么要定义 UserServier UserServiceImpl 2个?

  • 原因:可能有不同数据库, Service类设计成一个接口,使控制层只依赖这个接口;
  • 这样,当某天这个应用要跑在其它数据库上时,就而只需要增加一个serviceImpl类。

你可能感兴趣的:(java,java,spring,boot,架构)