小编Som*_*omu的帖子

什么是OncePerRequestFilter?

文档说org.springframework.web.filter.OncePerRequestFilter" 保证每次请求只执行一次 ".在什么情况下,每个请求可能会多次执行过滤器?

spring

54
推荐指数
3
解决办法
3万
查看次数

拆分字符串并修剪每个元素

是否有任何库API或正则表达式模式在一些分隔符上拆分String并自动修剪每个元素的前导和尾随空格而不必循环元素?

例如,在分割" A B # C#D# E # "#期望的输出是[A B,C,D,E]

我得到的最接近的是str.split("\\s*#\\s*")给出的[ A B, C, D, E]

java

36
推荐指数
2
解决办法
6万
查看次数

用于非 CRUD 操作的 REST API 设计,例如保存、部署、执行代码

我的 REST API 上下文中的资源是用某种编程语言编写的应用程序代码。可以轻松映射到 HTTP 动词的 CRUD 操作是保存/编辑/删除代码。难以映射到 HTTP 方法的非 CRUD 操作是在服务器上部署代码、执行代码和取消部署。

我在 SO 中遇到的常见建议是:

  1. 重构动作使其看起来像一个资源的字段,例如,如果您的动作是激活引擎,请设计 URI: PATCH engines/123, body:{"status":"active"}
  2. 将动作视为子资源,例如PUT engines/123/active没有主体
  3. 使用查询参数,例如 PUT engines/123?activate=true
  4. 务实,使用非 RESTful、RPC 风格的 URL,例如 PUT engines/activate?id=123

我绝对不能够适应deploy/ undeploy/execute代码行动,以资源为#1和#2建议。您能否分享您的意见,我们如何才能最好地为这些操作设计 API?

rest

14
推荐指数
2
解决办法
8050
查看次数

查找从给定客户端IP创建的活动会话数

有没有办法确定从给定客户端IP地址创建的活动会话数?

java session servlets ip-address

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

设计模式选择困境

控制器从用户接收几个水果的列表.控制器需要从这些水果制作果汁.一个榨汁机可以用橙子和葡萄柚制作果汁; 另一个榨汁机知道用苹果,香蕉和木瓜制作果汁; 等等.每个榨汁机都可以一次接受多种水果,它只能加工它能够的水果,而忽略其他未受影响的水果.请为此问题建议合适的设计.我一直在考虑以下选项:

  1. 控制器呼叫MasterJuicer.juice(List<Fruit> fruits).MasterJuicer反过来打电话CitrusJuicer.juice(fruits)PulpyJuicer.juice(fruits).
  2. 责任链似乎不对.调用榨汁机的顺序无关紧要.
  3. 厂?控制器呼叫JuicerFactory.getJuicers(List<Fruit> fruits)得到一个List<Juicer>.控制器然后循环通过每个榨汁机并打电话Juicer.juice(fruits).Factory返回实例列表是否常见?
  4. 维护水果与榨汁机的注册表Map?控制器调用FruitsRegistry.getJuicer(Fruit fruit)每个水果,然后循环调用每个榨汁机.

java design-patterns

6
推荐指数
1
解决办法
531
查看次数

ShallowEtagHeaderFilter在WAS8应用服务器下无法运行

org.springframework.web.filter.ShallowEtagHeaderFilter无法在WAS8应用程序服务器下设置响应标头,指出" 警告:无法设置标头.响应已提交 ".但是,在Tomcat服务器下测试时,此工作正常.ShallowEtagHeaderFilter确实包含了原始响应以延迟响应体的写入,但仍然响应在过滤器链执行后提交.这是一个可能的websphere错误吗?任何克服这个问题的建议/解决方法都是受欢迎的.

java websphere spring spring-mvc websphere-8

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

如何在VelocityContext中循环所有变量?

在我的Velocity模板(.vm文件)中,如何循环遍历所有变量或属性VelocityContext?在参考下面的代码时,我希望模板能够写出在上下文中传递的所有结果的名称和计数.

Map<String, Object> attribues = ...;
attribues.put("apple", "5");
attribues.put("banana", "2");
attribues.put("orange", "3");

VelocityContext velocityContext = new VelocityContext(attribues);
velocityEngine.mergeTemplate(templateLocation, encoding, velocityContext, writer);
Run Code Online (Sandbox Code Playgroud)

java velocity

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

替换已弃用的 Spring Security JwtHelper

我使用org.springframework.security.jwt.JwtHelperfromorg.springframework.security:spring-security-jwt:1.1.0.RELEASE来解码 JWT 令牌,例如

Jwt jwt = JwtHelper.decode(accessToken);
String claims = jwt.getClaims();
Run Code Online (Sandbox Code Playgroud)

上述类已弃用,弃用注释指向Spring Security OAuth 2.0 迁移指南

本指南不讨论JwtHelper.

我找到JwtDecodersJwtDecoder在新spring-security-oauth2项目中创建 a的类。但JwtDecoders需要issuer通过。

由于我不想验证令牌,是否有简单的替代方法可用?否则,我可以对.令牌进行拆分和 base64 解码,并使用任何 JSON 库进行解析。

spring-security jwt

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

具有可选多边界的泛型,例如List <?extends Integer OR String>

我有一个方法应该只接受Map其键的类型String和类型的值,Integer 或者 String,但不是,例如,Boolean.

例如,

map.put("prop1", 1); // allowed
map.put("prop2", "value"); // allowed
map.put("prop3", true); // compile time error
Run Code Online (Sandbox Code Playgroud)

无法在下面声明Map(以强制执行编译时检查).

void setProperties(Map<String, ? extends Integer || String> properties)
Run Code Online (Sandbox Code Playgroud)

什么是最好的替代比声明值类型为其他unbounded wildcard和验证的IntegerString在运行时?

void setProperties(Map<String, ?> properties)
Run Code Online (Sandbox Code Playgroud)

此方法接受一组属性以配置基础服务实体.实体支持类型StringInteger单独的属性值.例如,属性maxLength=2有效,defaultTimezone=UTC也有效,但allowDuplicate=false无效.

java generics unbounded-wildcard

0
推荐指数
1
解决办法
575
查看次数