如何在spring boot

时间:2017-05-26 11:39:19

标签: spring rest spring-boot spring-restcontroller

我有一个用户的RestController,还有另一个用于公司。

CompanyController:使用服务和回购级别将公司信息提取并存储到公司表。

UsersController:它获取并存储用户。

关系:每个用户都与公司(User hasOne company)相关联。

问题是新用户何时注册,我们需要通过ID获取公司信息并与用户个人资料相关联。

为此,我在CompanyController(getCompanyInfo)中有一个api。我必须在保存用户个人资料时将该api称为取消公司

问题:如何在春季启动时从同一个应用程序调用另一个api

1 个答案:

答案 0 :(得分:2)

为什么不直接呼叫公司服务(如果两个控制器都存在于同一个应用程序中)?它会比呼叫公司控制器更快。

您的控制器将如下所示:

@RestController
public class UsersController {
    @Autowired
    private CompanyService companySerivce;

    @RequestMapping("/register")
    public ResponseEntity<User> registerUser(){
        //Do whatever you want
        CompanyInfo companyInfo = companyService.getCompanyInfo();
       //Do whatever you want
    }
}

如果您仍想直接致电公司控制人员,那么您可以这样做:

@RestController
public class UsersController {
    @Autowired
    private RestTemplate template;

    @RequestMapping("/register")
    public ResponseEntity<User> registerUser(){
        ResponseEntity<CompanyInfo> companyInfoResponse = template.getForObject("Url for getCompanyInfo() method", CompanyInfo.class);
        CompanyInfo companyInfo = companyInfoResponse.getBody();
        //Do whatever you want
    }
}