JHipster
文章平均质量分 56
java_augur
这个作者很懒,什么都没留下…
展开
-
跟着JHipster学做项目 (18) 国际化i18n实现
跟着JHipster学做项目 (18) 国际化i18n实现原创 2022-04-22 13:59:03 · 567 阅读 · 0 评论 -
跟着JHipster学做项目 (17) Spring Boot处理分页和排序
JHipster利用了Spring Boot的Pageable分页机制,前端排序是针对数据库数据,而非当前页面数据,充分满足了实际需求。下面分前端和后端两部分分别介绍一下它的实现方式。前端利用两个辅助函数,向后端传递了分页参数:当前页page,每页条目size,排序属性prop,direction。本文以mongoDB为例。sort函数中接收了排序属性和排序方向,同序情况下以id降序。 public sort(): any { const result = [this.propOrd原创 2022-01-21 18:13:02 · 1321 阅读 · 0 评论 -
跟着JHipster学做项目 (16) Spring Boot在JWT添加userId
Spring boot默认User没有包含userId信息,在通过SecurityUtils获取userId会很不方便,下面介绍一个简便的方式可以在获取当前用户信息时,能够包含userId。JHipster是通过一个实现UserDetailService的接口DomainUserDetailsService类,来对登录信息进行认证。但是在类UserJWTController中,认证的方法如下:Authentication authentication = authenticationManag原创 2021-10-25 20:49:34 · 755 阅读 · 0 评论 -
跟着JHipster学做项目 (15) npm 全局安装不同版本package
在使用JHipster生成代码的过程里,借鉴代码的功能实现方式是一个不错的学习方法,最近JHipster做了一个版本较大的升级,由于Marketplace中的很多blueprint只支持低版本的JHipster,为了生成blueprint代码需要在系统中同时安装一个低版本的JHipster,这时候全局安装的话会和高版本的发生冲突,我们需要对npm进行设置,让低版本的JHipster安装在另一个目录。一个简便易行的方法是把默认的.npmrc文件改变为一个软链接文件,然后通过改变软链接所指向不同的.npmr原创 2021-08-29 09:43:33 · 345 阅读 · 0 评论 -
阿敦软件技术框架-跟着JHipster学做项目专栏
跟着JHipster学做项目(1)- MockMvc用法技巧跟着JHipster学做项目(2) - 使用Swagger2生成API文档 (上)生成swagger的asciidoc文件跟着JHipster学做项目(3) - Maven的使用技巧(上)分离jar和依赖跟着JHipster学做项目(3) - Maven的使用技巧(下)去掉因lifecycle引起的红叉跟着JHipster学做项目 (4)审计功能跟着JHipster学做项目 (5) 异常处理(上)Spring Boot后端跟原创 2021-08-24 17:59:52 · 491 阅读 · 0 评论 -
跟着JHipster学做项目 (14) 账户激活与密码重置
在JHipster项目中,用户使用邮箱进行注册,注册成功后将发送账户激活链接到邮箱,用户点击链接后,激活成功。AccountResource类代码: /** * {@code POST /register} : register the user. * * @param managedUserVM the managed user View Model. * @throws InvalidPasswordException {@code 400 (B原创 2021-07-04 23:36:23 · 377 阅读 · 0 评论 -
跟着JHipster学做项目(2) - 使用Swagger2生成API文档 (下)生成中文html5, PDF文件
上篇已经通过引入springfox-staticdocs成功生成了swagger的asciidoc文件,用浏览器来查看asciidoc文档需要安装插件,通常我们会进一步把asciidoc文件转化为html5, 或者PDF文档。主要的功能由asciidoctor-maven-plugin插件完成:<!-- Run the generated asciidoc through Asciidoctor to generate other documentation原创 2020-10-16 20:10:40 · 419 阅读 · 0 评论 -
跟着JHipster学做项目 (13) 控制Vue前端在完成加载数据后展现页面
对于用Vue开发的前端页面,通常采用Ajax进行数据通讯,页面的控件往往存储在本地。我们直观的感觉是页面组件出现后,数据再显示在组件上,如果网络有延迟,数据滞后显示会更加明显。更严重的情况是上次缓存的数据会出现在页面,对用户造成困扰。下面就讲述一下JHipster的两种方式实现数据加载完成后,再展现页面。利用beforeRouteEnter,代码如下: beforeRouteEnter(to, from, next) { next(vm => { vm.initAu原创 2020-09-26 23:14:22 · 489 阅读 · 0 评论 -
跟着JHipster学做项目 (12) 分页处理(下)前端进行分页及排序查询
JHipster的前端分页组件由两部分组成:分页信息组件,分页加载组件。<div v-show="users && users.length > 0"> <div class="row justify-content-center"> <jhi-item-count :page="page" :total="queryCount" :itemsPerPage="itemsPerPage"&g原创 2020-09-23 18:14:07 · 380 阅读 · 0 评论 -
跟着JHipster学做项目 (12) 分页处理(上)后端利用Pageable进行分页查询
JHipster的后端分页处理最大的特点是保持DTO类不受分页信息污染,不必包含分页相关属性,如页数,总数,排序等。Controller类如下: @GetMapping("/users") public ResponseEntity<List<UserDTO>> getAllUsers(Pageable pageable) { final Page<UserDTO> page = userService.getAllManagedU原创 2020-09-23 13:11:07 · 792 阅读 · 0 评论 -
跟着JHipster学做项目 (11) stream和Optional的使用
JHipster在java代码中大量运用stream和Optional,使得代码简洁,运行效率高,下面总结了一些用例,基本涵盖了我们项目日常遇见的需求。在数据库中查询用户,如果存在,利用数据库查询结果计算并返回,若不存在抛出异常(或返回其它结果)。public UserDetails loadUserByUsername(final String login) { return userRepository.findOneByLogin(lowercaseLogin)原创 2020-09-17 23:31:54 · 376 阅读 · 0 评论 -
跟着JHipster学做项目 (10) 缓存的应用
JHipster对于缓存的应用有两个层级,一种是对于DTO的缓存,另外是Hibernate第二级缓存。本文着重介绍第一种,对于DTO层的缓存。在应用程序中往往需要对登录用户信息进行多次查询,比如验证用户的状态等等,将用户DTO放进缓存,会大大减少对数据库的访问。JHipster支持五种缓存实现: Ehcache, Caffeine, Hazelcast, Infinispan and Memcached。以Ehcache为例,首先引入依赖 <dependency> <原创 2020-09-11 22:16:04 · 579 阅读 · 0 评论 -
跟着JHipster学做项目 (9) 处理用户登录超期
JHipster登录有Remember Me选项,配置项中不勾选session可以保持24小时,勾选则为10天。下面讲述一下JHipster对于登录超期的处理方法,这里登陆超期是指JWT的超期。对于超期有两种情况,一种是对账户进行操作,另一种是非账户操作。前端代码如下: intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> { re原创 2020-09-11 21:12:20 · 341 阅读 · 0 评论 -
跟着JHipster学做项目 (8) 前后端分离项目刷新页面避免出现 white label
前后端分离项目最常见问题就是前端的router和后端的controller path之间的矛盾,这个矛盾在刷新页面时显露出来。通常页面跳转是交给前端router来控制,但是当页面刷新时,前端router的路径请求直接传递给后端,此时后端一定无法处理,因此转到white label报错页面。之前Vue项目部署在Spring Boot出现页面空白问题的解决方案中提到将error page指向Vue的index.html页面,这个方案缺点很明显,NOT_FOUND请求将跳转至index.html, 而不是提供原创 2020-06-26 01:41:00 · 765 阅读 · 0 评论 -
跟着JHipster学做项目 (7) swagger-ui展现
前面讲过使用Swagger2生成API文档,这里是关于直接在浏览器中展示API,并且可以在线测试API。着重从三个方面来概括一下swagger-ui展现:Spring Boot端如何启动swagger, 使后端可以接收/v2/api-docs和/swagger-resources请求,并返回相应的response(swagger.json, {url, name}).swagger-ui的前端代码生成Spring Boot后端和Vue前端如何处理请求的权限JHipster通过引入jhipst原创 2020-06-20 23:44:52 · 1642 阅读 · 0 评论 -
跟着JHipster学做项目 (6) 安全访问控制(下)JWT的Vue前端应用
JHipster前端对JWT处理主要包括两个方面:请求后端授权后对token进行解析。 从localStorage或者sessionStorage中获取token并放入请求报文。JHipster没有采用Spring Boot默认的formData以及/login, 而是json报文,/authenticate,代码如下: public doLogin(): void { const data = { username: this.login, password: this.passw原创 2020-06-04 21:04:56 · 466 阅读 · 0 评论 -
跟着JHipster学做项目 (6) 安全访问控制(上)JWT的Spring Boot应用
通过配置可以生成JHipster运用JWT进行访问控制的一套代码,主要是通过JWTFilter过滤器,并把它置于UsernamePasswordAuthenticationFilter前端对用户进行Authentication(认证)和Authorization(授权)控制,此外对于认证或者授权失败是采用前文提到的异常处理。这里需要引入的依赖如下:<dependency> <groupId>org.springframework.boot</groupId&g原创 2020-06-04 14:27:07 · 1325 阅读 · 0 评论 -
跟着JHipster学做项目 (5) 异常处理(下)Vue前端
JHipster前端处理异常主要包括三个方面,异常获取,异常显示,以及异常信息国际化。异常获取JHipster通常放在组件类中实现,比如register.component.tsthis.registerService() .processRegistration(this.registerAccount) .then(() => { this.success = true; }) .catch(error原创 2020-05-25 16:40:08 · 810 阅读 · 0 评论 -
跟着JHipster学做项目 (5) 异常处理(上)Spring Boot后端
JHipster处理异常的核心模块是zalando,zalando包含两种方式:Spring boot<dependency> <groupId>org.zalando</groupId> <artifactId>problem-spring-web-starter</artifactId> <version>${problem-spring-web.version}</version>&原创 2020-05-25 16:09:56 · 1538 阅读 · 0 评论 -
跟着JHipster学做项目 (4)审计功能
JHipster的基础应用里实现了对用户登录的审计功能,该功能可以控制用户密码输入错误次数的限定。此外,通过扩展模块实现了实体审计功能。实体的审计功能分两个方面:在对实体进行创建或者修改时,自动添加用户和更改日期等信息。 在对实体进行创建或者修改时,系统自动记录每次更改的内容,相当于对实体实现版本记录功能。下面来分别看一下JHipster的具体实现方式。用户登录审计功能:创建自定义repository来实现AuditEventRepository,如下所示:@Repository原创 2020-05-09 16:19:48 · 1094 阅读 · 1 评论 -
跟着JHipster学做项目(2) - 使用Swagger2生成API文档 (上)生成swagger的asciidoc文件
JHipster的提示和技巧页面中第一个技巧就是:Create a static Swagger API documentation 虽然篇头已经提示我们要去看swagger2markup最新模块,不要理会下面的内容,但是看着下面仅仅三步便可以生成API文档还是会想先按照提示尝试一下,于是利用maven引入springfox-staticdocs<dependency>...原创 2020-05-01 21:58:01 · 1100 阅读 · 0 评论 -
跟着JHipster学做项目(1)- MockMvc用法技巧
如何找到项目target路径?1利用Maven的pom.xml文件给出属性 <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</...原创 2020-04-30 16:12:39 · 560 阅读 · 1 评论