使用JHipster的几点心得

7 篇文章 0 订阅

最近复习项目架构,钟情于Jhipster已经构建好的监控页面和接口文档等等,决定还是使用Jhipster来构建项目。不出所料,每一次尝试构建都有一大堆的问题。由于每一次都要安装npm包,非常耗费时间,因此前前后后弄了三四天,不断修改代码,切换版本。总算有了一点小结论。

我的欲求无非是以下几点。

1. 正常注册,能够监控,能够多实例部署和自动路由,负载均衡;

2. 接口文档能够正常显示,接口可以正常测试;

3. 用户授权和权限验证能够正常工作;

4. 可以嵌入业务模块。

我提前安装好了所需要的环境,nodejs、npm、yarn、yo、jhipster等等。相关版本如下:

<maven.version>3.6.0</maven.version>
<java.version>1.8</java.version>
<node.version>v12.16.1</node.version>
<npm.version>6.13.4</npm.version>
<yarn.version>v1.22.10</yarn.version>

以下是遇到的坑。

Jhipstery registry使用最新的6.7.1,发现编译不了,提示maven-compiler-plugin:3.8.1的一个错误,改版本也不起作用,反复多次。后来想起曾经改过JDK的版本,恍然大悟,原来这些最新的版本都是用JDK11来构建的,我一直使用的是JDK1.8,所以一直无法构建。由于我没有打算使用jdk11,所以决定不再去触碰高级版本。经过检查,发现Jhipster Registry 6.0.0以下的版本使用JDK1.8构建的,以上的版本都是用JDK11构建的,于是我决定使用6.0.0的注册中心来构建。

不过在使用过程中,发现这个版本在gateway、uaa查看接口文档的时候有时候不能自动携带id_token,造成数据请求失败,接口文档不能显示,于是放弃。经反复测试发现5.0.0版的注册中心没有上述一些问题,便将注册中心确定为Jhipster Registry 5.0.0。

我的构建主要有四大件,除了注册中心,还有gateway、uaa和一个负责具体业务的微服务msdemo,经常出现的问题有两个,一是gateway,在使用/oauth/token请求访问令牌的时候,总是提示不支持POST,经过测试除了OPTION之外都不支持,这有什么用呢?查资料有人说Security新版本默认开启csrf对POST的拦截,也提到了使用http.csrf().disable()可以关闭,但是尝试了多次问题依旧,而不通过网关直接访问uaa则是可以的。看来Security新版本目前还搞不定,到底是那个版本也不太清楚。

另外一个问题出在接口访问权限上,加了@Secured注解的方法即使有权限也无法访问,提示授权对象在安全上下文中没有找到。反复多次,问题依旧。

经过多次测试和思考,记得以前也经常成功构建,出现问题的原因除了自己对一些新版组件不熟悉之外,Jhipster在构建上也和原来的旧版本不一样了。我考虑jhipster是否也可以指定安装版本。经查阅,还真可以。

我电脑上有以前的旧项目,通过readme.md看得出版本号是4.x,而我现在用的最新的版本号则是6.x,差距太大了,于是我删除了当前的jhipster,重新安装了jhipster官网上一个较旧的版本5.7.0.

npm install -g generator-jhipster@5.7.0

一番细节修改之后,配合5.0.0的注册中心跑起来,顺畅多了。只是crsf的问题还是出现了。果断到gateway中关掉,问题解决了。

总结:这样的工具盲目追新是比较浪费时间的,坑很多,还是追求稳定省事。采用注册中心5.0.0和使用Jhipster5.7.0来构建项目就是我最近几天架构设计的一个标准。将代码打包存起来,以后起项目工程修修改改就好了。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值