SpringBoot 代码逻辑分层

本文详细介绍了SpringBoot框架中的分层结构,包括controller层负责数据传递和界面交互,service层处理业务逻辑,dao层进行数据库操作,model层存储实体类。分层设计旨在提高代码清晰度,降低耦合度,支持复用和扩展。

SpringBoot 分为四层:controller层、service层、dao层、model层

controller层:控制层,存放各种控制器,来提供数据或者返回界面,实现对Get和Post的相应,用于前后端交互,service层和前端通过Controller层进行数据交互。导入service层,调用service方法,controller通过接收前端传过来的参数进行业务操作,在返回一个指定的路径或者数据表。表单等交互动作的处理,调到Service,将Service层的数据对象返回到视图层。

service层:业务逻辑层,存放业务逻辑处理,返回数据给控制调用,一般用于调用dao层的接口,实现业务功能,不直接对数据库进行操作,有接口和接口实现类(impl层),提供controller层调用的方法,调用dao层访问数据库。

dao层:mapper层,数据持久层,对数据库进行持久化操作,用于存放sql语句,存放返回数据json的格式样式,在SpringBoot中用注解来为每一个方法注入sql语句。他的方法是针对数据库操作的,基本用到的就是增删改查。它只是个接口,只有方法名字,具体实现在mapper.xml中。

model(entity)层:数据访问层,实体类包,存放各种与数据库对应的实体类。属性值与数据库中的属性值保持一致。 实现set和get方法。

为何分层?

高内聚:分层的设计可以简化系统设计,让不同的层专注做某一模块的事
低耦合:层与层之间通过接口或API来交互,依赖方不用知道被依赖方的细节
复用:分层之后可以做到很高的复用
扩展性:分层架构可以让我们更容易做横向扩展

分层是为了使业务逻辑更加清晰,写代码更加方便,所以有时候也需要根据具体情况来,但是大体的都是这样处理的,因为它其实就是提供一种规则,让你把相同类型的代码放在一起,这样就形成了层次,从而达到分层解耦、复用、便于测试和维护的目的。

各层的相关注解
1.controller 

@Controller // 标记controller类
@RequestMapping("/user") // 接口名

2.service

没有

3.serviceImpl

@Service // 标记这是个servic

4. Dao

@Mapper // 与对应的DaoMapper.xml匹配
@Repository // @Repository注解修饰哪个类,则表明这个类具有对对象进行CRUD(增删改查)的功能,而且@Repository是@Component注解的一个派生品,所以被@Repository注解的类可以自动的被@ComponentScan 通过路径扫描给找到。(这也在一定程度上解释了,为什么被@Repository注解的类也能@Autowired)
 

Spring Boot 配置文件的分层结构和加载逻辑是其配置管理的重要组成部分,确保了应用程序能够在不同环境中灵活地进行配置调整,同时保持代码与配置的分离。 ### 配置文件的分层结构 在 Spring Boot 中,配置文件主要分为两类:`application.properties` 和 `application.yml`。这两种文件格式都支持多环境配置,通过文件名后缀来区分不同的环境,例如 `application-dev.properties`、`application-prod.yml` 等。这种命名约定使得开发者可以轻松地为不同的运行环境(如开发、测试、生产)提供特定的配置信息。 此外,Spring Boot 还支持从外部文件目录加载配置文件,可以通过 `--spring.config.location` 参数指定外部配置文件的位置。例如: ```bash java -jar --spring.config.location=/path/to/config/ myapp.jar ``` 这种方式允许开发者在不修改应用代码的情况下,动态地更改应用的配置[^2]。 ### 配置文件的加载逻辑 Spring Boot 的配置文件加载逻辑遵循一定的优先级顺序,确保了配置信息的灵活性和可覆盖性。通常情况下,配置文件的加载顺序如下: 1. **命令行参数**:可以通过命令行直接传递参数,这些参数会覆盖配置文件中的相同属性。 2. **系统环境变量**:环境变量可以用来设置配置属性,它们的优先级高于配置文件。 3. **JVM 参数**:通过 `-D` 选项传递的 JVM 参数也可以用于设置配置属性。 4. **外部配置文件**:通过 `--spring.config.location` 指定的外部配置文件。 5. **内部配置文件**:项目中的 `application.properties` 或 `application.yml` 文件。 6. **默认配置**:Spring Boot 提供了一些默认配置,这些配置可以在没有显式配置的情况下使用。 这种分层的配置加载机制确保了配置信息的灵活性和可维护性,同时也支持了多环境配置的需求[^1]。 ### 示例代码 以下是一个简单的示例,展示了如何在 Spring Boot 应用中使用 `application.properties` 文件进行配置: ```properties # application.properties spring.application.name=myapp spring.profiles.active=prod ``` 在这个示例中,`spring.application.name` 设置了应用的名称,而 `spring.profiles.active` 指定了当前激活的配置文件为 `prod`,这将导致 Spring Boot 加载 `application-prod.properties` 文件中的配置。 ### 总结 Spring Boot 的配置文件分层结构和加载逻辑为开发者提供了强大的配置管理能力,使得应用能够在不同的环境中灵活地进行配置调整。通过合理利用这些特性,可以有效地提高应用的可维护性和可扩展性。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值