小编Ser*_*hin的帖子

如何覆盖ApplicationTagLib#createLink和g:link的标准行为?

背景:我有grails 1.3.7应用程序,它使用g:createLinkg:link在许多页面上.

最近我决定对url映射进行大的改动 - 引入前面的路径元素.

  • 目前我有: /$controller/$action?/$id?
  • 但是想拥有: /$regionId/$controller/$action?/$id?

更改urlMappings很容易,但我无法弄清楚如何轻松更改应用程序中链接的构建方式.

基本上,我不想浏览每个页面并更改链接.但是想在一个地方做这件事.

问题 如何覆盖ApplicationTagLib#createLink功能,因此grails将使用此实现而无需使用此标记(或函数)的更改页面?

任何帮助大大恭敬!

grails

11
推荐指数
2
解决办法
4026
查看次数

Java + Spring5:处理文件上传非阻塞

我想使用Java和Spring 5创建一个Web应用程序,它能够以非阻塞的方式处理文件上传.

有关如何以非阻塞方式处理常规请求的大量文档和示例,但我找不到关于如何处理文件上载的简洁示例.

我发现了一些或多或少与此相关的东西,但它看起来太精巧了:

有更好的方法吗?

java spring spring-mvc

6
推荐指数
0
解决办法
305
查看次数

如何根据Java Spring中的当前用户角色修剪Swagger文档?

我正在使用 Spring Boot 开发应用程序,并使用 Swagger 自动生成 API 文档,并且还用于swagger-ui.html与这些 API 进行交互。

我也启用了 Spring Security,并且我有具有不同角色的用户。不同的角色可以使用不同的 REST API。

问题:如何配置 Swagger 以尊重 Spring@Secured显示的注释和修剪操作,swagger-ui.html以便仅对当前用户可用的操作可用?

即想象以下控制器

@RestController
@Secured(ROLE_USER)
public void SomeRestController {
  @GetMapping
  @Secured(ROLE_USER_TOP_MANAGER)
  public String getInfoForTopManager() { /*...*/ }

  @GetMapping
  @Secured(ROLE_USER_MIDDLE_MANAGER)
  public String getInfoForMiddleManager() { /*...*/ }

  @GetMapping
  public String getInfoForAnyUser() { /*...*/ }
}
Run Code Online (Sandbox Code Playgroud)

Swagger 将显示这两种操作getInfoForTopManagergetInfoForMiddleManager无论当前用户角色如何。如果当前经过身份验证的用户角色是ROLE_USER_MIDDLE_MANAGER,我只想在 Swagger 中使用getInfoForMiddleManager和操作。getInfoForAnyUser

java spring swagger spring-boot

5
推荐指数
1
解决办法
1889
查看次数

限制运行特定方法的线程数的最佳方法是什么?

情况

  • 我有网络应用程序
  • 我上课做复杂的数学计算
  • 方程式可以不时地发生,具体取决于请求
  • 有时许多线程同时启动此计算
  • 当计算开始太多时,计算机将被挂起(完全冻结= 99 CPU使用率)

我的目标是

我的目标是避免悬挂/冻结.

我的猜测是可以通过限制同时计算的数量来完成(可能是NUMBER_OF_CPU_CORES - 1)

问题是

实现这一目标的最佳方式是什么?

我知道有java.util.concurrent.Semaphore,但也许有更好的方法?

java concurrency multithreading

3
推荐指数
1
解决办法
4725
查看次数

如何在g中调用自定义函数:if test ="..."而不向模型提供它(或对象实例)?

背景是:

  1. 我有布局页面main.gsp
  2. 我需要有条件地显示或隐藏菜单项
  3. 通过查询数据库完成条件评估
  4. 我不想扩充每个控制器,因此它会评估这个条件并将结果放到模型中

问题是:我正在尝试做类似的事情

<g:if test="${checkCondition()}"> some html here </g:if>
Run Code Online (Sandbox Code Playgroud)

但它没有说未定义的checkCondition.

但这很完美:

<mytaglib:checkCondition />
Run Code Online (Sandbox Code Playgroud)

问题是:我该怎么办才能调用我的功能

<g:if test="${ expression }">
Run Code Online (Sandbox Code Playgroud)

grails

2
推荐指数
1
解决办法
1033
查看次数