首页 > 解决方案 > SpringBoot 2.x @Inject DTO 在控制器内

问题描述

我正在使用SpringBoot 2.2.6,我想知道我Inject的. 它是一个 DTO,其信息来自各种实体。DTOController

例如,我有一个构建这个 DTO 的服务:

@Service
public class SomeService() {
  public ThisDTO getThisDTO() {
    Entity entity = repository.findBySome();
    return transformToDto(entity);
  }
}

现在假设我有一个Controller这样的:

@RestController
@RequestMapping(value = "/api/v1/Test")
public void TestController {

}

我想ThisDTO在上述所有方法中使用,Controller但我不想做类似的事情:

@RestController
@RequestMapping(value = "/api/v1/Test")
public void TestController {
  @Autowired
  SomeService someService;

  @GetMapping
  public void method1() {
    ThisDTO thisDTO = someService.getThisDTO();
  }

  @GetMapping
  public void method2() {
    ThisDTO thisDTO = someService.getThisDTO();
  }

  ...
  ...

}

但我想知道是否有办法做类似的事情:

@RestController
@RequestMapping(value = "/api/v1/Test")
public void TestController {
  
   @Inject // or something else
   ThisDTO thisDto;

   ...
   ...

}

谢谢你们!

标签: spring-bootdependency-injectioninversion-of-controlautowired

解决方案


推荐阅读