如何在Jhipster中配置热重载?

时间:2019-02-07 08:43:22

标签: java angular spring-boot jhipster jhipster-registry

我正在为现有项目使用Jhipster(Angular + Springboot)应用程序。

除了jhiptser已经生成的控制器(使用.jh文件)之外,我设法手动创建了一个控制器(app.resource)以实现文件下载功能。

因此,当我们启动服务器时,我们通常会启动两个服务器,即gradlewnpm start。第二个运行在端口9000上,该端口最终支持热重载功能。(前端开发)

所以问题是,我能够从在标准8000端口上运行的服务器访问那些端点。但是,该方法从作为proxy(9000)的端口返回了404。

我试图多次清理构建应用程序。

注意:新控制器上的@RequestMapping值不同于已经存在的值。

这与弹簧安全性有关系吗?

谢谢。

这是先前的控制器:

@RestController
@RequestMapping("/api")
public class FGAppDiagramResource {
@GetMapping(value = "/fg-app-diagram-downloadFile")
    public void getImage(String fileName,String folderName, HttpServletResponse 
    response){
    // Some Code
}
}

这是我的新控制器:

@RestController
@RequestMapping("/fileDownload")
public class DownloadFileController {

private final Logger log = 
LoggerFactory.getLogger(DownloadFileController.class);


public DownloadFileController() {
    super();
}

@Autowired
private ApplicationProperties applicationProperties; 

@GetMapping(value = "/fg-app-diagram-downloadFile/{fileName}/{folderName}")
public void getImage(@PathVariable String fileName,@PathVariable String folderName, HttpServletResponse response) {
// Some Code
}
}

1 个答案:

答案 0 :(得分:1)

您的新控制器未使用/api,因此您必须将端点URL /fileDownload添加到webpack/webpack.dev.js中的webpack开发服务器的代理配置中

    proxy: [{
        context: [
            /* jhipster-needle-add-entity-to-webpack - JHipster will add entity api paths here */
            '/api',
            '/fileDownload',

您可能要使用/api/fileDownload来避免更改代理配置,并且因为/api对于许多其他方面(例如安全性)很有用,并且还可以在Angular中使用HTML5 URL路由策略来摆脱{{1 }}在客户端路由中(请参见https://github.com/jhipster/generator-jhipster/pull/9098)。

#/api是避免路由冲突的名称空间,因此通常将它们用于新端点是明智的。