Spring Boot 应用程序中模型属性的默认值应该在哪里设置:控制器层、服务层还是模型层?

问题描述 投票:0回答:1

在 Spring Boot 应用程序中,我想为模型中的某些属性或列设置默认值。为了干净、可维护和可扩展的代码,我正在尝试找出处理此问题的最佳层。

  1. 处理请求时是否应该在控制器级别设置默认值?
  2. 或者在通常放置业务逻辑的服务层中处理这个问题是否更有意义?
  3. 或者,应该直接在模型本身内设置默认值吗?

我主要关心的是随着应用程序的增长保持干净、可扩展且易于维护的代码。

每种方法的最佳实践和潜在影响是什么?

java spring-boot model-view-controller
1个回答
-1
投票

列的默认值是什么意思? 如果您询问数据库列的默认值,您应该对其进行约束。

CREATE TABLE DUMMY_DATA
(
COL_NAME VARCHAR(255) NOT NULL,
IS_TEST_COLUMN INTEGER NOT NULL DEFAULT 0
);

INSERT INTO DUMMY_DATA(COL_NAME) VALUES('TEST');

SELECT * FROM DUMMY_DATA;

在上面的例子中,如果您只是在

col_name
列中插入数据,那么
is_test_column
将自动为0。您还可以为
col_name

设置默认值

尽管如果您不想使用这种方式设置默认值,那么在服务层设置默认值是有意义的。 服务层设置值 -> 值转到 DAO 层 -> 填充模型并在 DAO 层上提交事务。即使您询问 DTO 的属性/字段,服务层仍然更有意义。您的 Bean、DTO 或任何刚刚填充在服务层上的内容,控制器只会将响应从服务层转发到客户端。

© www.soinside.com 2019 - 2024. All rights reserved.