当前位置: 首页 > 知识库问答 >
问题:

java spring如何实现代码干净的写法?

小牛23046
2024-04-08

比如

package com.demo.controller;public class DemoController {    public Object saveWithPost() {        return null;    }    public Object listWithGet() {        return null;    }}

其实相当于

package com.demo.controller;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.PostMapping;import org.springframework.web.bind.annotation.RestController;@RestController@RequestMapping("demo")public class DemoController {    @PostMapping(value = "save")    public Object saveWithPost() {        return null;    }    @GetMapping(value = "list")    public Object listWithGet() {        return null;    }}

代码不需要手动处理就可以执行。

共有2个答案

柳轶
2024-04-08

这个建议你直接使用代码生成器,把一下默认方法直接生成就行了,可以参考一下若依框架的代码生成,这些重复代码直接重复生成就行了

陶法
2024-04-08

在Java Spring框架中,要实现代码干净的写法,可以采用以下一些策略:

  1. 使用注解(Annotations):注解是Spring框架中的一个重要特性,它使得开发者可以以声明式的方式配置Spring应用程序。例如,@RestController@GetMapping@PostMapping等注解可以使你的代码更简洁,更易于阅读和维护。
  2. 依赖注入(Dependency Injection):通过依赖注入,你可以将对象之间的依赖关系从硬编码的类构造器中解耦出来,转移到配置文件中。Spring框架提供了强大的依赖注入支持,这有助于使你的代码更加干净和易于测试。
  3. 服务层(Service Layer):将业务逻辑封装在单独的服务层中,可以使控制器(Controller)的代码更加简洁。服务层通常处理与数据库交互、业务规则实施等复杂任务。
  4. 使用DTO(Data Transfer Object):DTO是一种设计模式,用于在应用程序的不同层之间传输数据。使用DTO可以避免直接在控制器和方法之间传递实体对象,从而使代码更加清晰和易于维护。
  5. 异常处理(Exception Handling):在Spring中,你可以使用@ControllerAdvice@ExceptionHandler注解来全局处理异常。这样可以将错误处理逻辑集中管理,使代码更加干净。
  6. 代码重构(Code Refactoring):不断审查和改进代码,移除重复和冗余的代码,遵循SOLID原则(单一职责原则、开放封闭原则、里氏替换原则、接口隔离原则、依赖倒置原则),可以使代码更加干净和易于维护。

对于你提供的示例,使用Spring的注解可以使代码更加干净和易于阅读。例如,通过使用@RestController@GetMapping@PostMapping注解,你可以明确地定义HTTP请求的类型(GET或POST)和URL路径,而无需手动处理请求和响应。此外,你还可以考虑将业务逻辑移至服务层,并使用DTO来传输数据,以使控制器代码更加简洁。

 类似资料:
  • 问题内容: 我已经开始使用gwt进行一些基本的Java编码,而我有点担心主类的繁重。 例如- 如何分隔密钥处理程序,因为它们触发了UI的许多更改,我如何才能将其移到单独的.class文件中,并且仍然能够访问主类中的所有各种小部件,而不必将所有内容传递给处理程序(即,我在click事件之后处理的所有小部件)。 我已经在Google上搜索过,但是没有遇到任何特别好的例子- 知道我可以阅读的任何易读的代

  • 我有以下课程: 这只是其中一个例子,我有一些类似的其他类,我将它们作为依赖注入到其他类中。但是它使我的SchemaFetcher类像一个单例,我不断地向它的每一个方法传递模式定义。这似乎是非常程序化的,我想实际上使模式定义成为数据库模式获取类的实例变量,但在这种情况下,我将无法将模式获取对象注入到我的验证器类中,相反,我应该这样做 但这使我与fetcher紧密耦合,这就是为什么我想首先使用依赖注入

  • 我能够从赫尔辛基MOOC课程中弄清楚这个项目,但我认为有一种更干净、更容易阅读的方式来写它。目标是打印出:

  • 为提供的会破坏筛选器链,因此我希望通过提供的自定义实现来重写其但是当使用简单的Java配置时,这似乎相当复杂或复杂。 如果需要访问或,则提供不是解决方案。 我设法做到了,但这看起来像一个黑客--有更好的方法吗? 我是这样做的:

  • 我在macOS上多个文件夹中的多个项目中工作。我通常通过运行以下命令开始处理它们: 这总是会打开一个新窗口,显示我在该项目中工作的最后一个文件。我的下一步是关闭所有标签页,如果编辑器被拆分,我必须像拆分编辑器那样做很多次。 有没有一个设置可以让我总是从一个干净的状态开始? 我认为与此问题相关的设置如下: 我尝试,但行为保持不变。 另外,如果可能,此信息存储在哪里(打开给定文件夹的文件)?这是文件夹

  • 问题内容: 一个(很久以前),我写了一个网络蜘蛛,我对该线程进行了多线程处理,以使并发请求能够同时发生。那是我的Python青年时代,在我了解GIL及其为多线程代码造成的相关麻烦之前(IE,大多数时候,这些东西最终都被序列化了!)… 我想对这段代码进行重做,以使其更健壮并性能更好。基本上有两种方法可以执行此操作:我可以使用2.6+中的新多处理模块,也可以使用某种基于反应堆/事件的模型。我宁愿以后再