使用RESTful框架jdk1.8树脂应用如下, 只能执行到http://x.x.x.x/ws/example/subpath1 没有其他方法可以调用Subpath1Resource 那么,Subpath1Resource类中的HashMap或字符串会不安全吗?

@Path("/example")
public class ExampleResource {

    @Path("subpath1")
    public Subpath1Resource getSubpath1Resource() {
        return new Subpath1Resource();
    }
}

public class Subpath1Resource {
    private HashMap<String, String> dataHead;
    private String p_no;
    private String p_name;
    @GET
    @Produces(MediaType.TEXT_PLAIN)
    public Response createOrder(String param) {
        dataHead = new HashMap<>();
        String[] aParam = param.split("/");
        p_no= aParam[0];
        p_name=aParam[1];
        dataHead.put("p_no",aParam[0]);
        dataHead.put("p_name",aParam[1]);
        processOrder(); 
        return Response.ok(currentOrder).build();
    }

    private void processOrder() {
    String _p_no = dataHead.get("p_no");
    String _p_name = dataHead.get("p_name");
         // ...
    }
}

推荐答案

当请求到达服务器以访问REST风格的资源时,将创建一个线程.因此,多个请求将创建多个线程.现在,HashMap不是线程安全的. 因此,对于使用REST风格的资源来说,ConCurentHashMap是正确的实现.

Java相关问答推荐

是否可以从@ TrustMapping中删除特定方法的基路径?

将linkedHashMap扩展到Java中的POJO类

如何转换Tue Feb 27 2024 16:35:30 GMT +0800 String至ZonedDateTime类型""

使用Java Streams API比较两个不同的Java集合对象和一个公共属性

Apache POI:使用反射获取zoom 级别

Spring Boot 3.2.2中的@Inject和@Resource Remove

我无法获取我的Java Spring应用程序的Logback跟踪日志(log)输出

CompleteableFuture是否运行在不同的内核上?

由于我在Main方法中关闭了 scanner ,但在该方法中创建了一个新的 scanner ,因此出现了错误

无法使用ApacheSpark依赖项构建JavaFX应用程序

Spring和可编辑";where";@Query

更新AWS凭据

测试何时使用Mockito强制转换对象会导致ClassCastException

Java构造函数分支

基于配置switch 的@Controller的条件摄取

是否有一个Java Future实现可以在池繁忙时在调用者线程中执行?

在Spring Boot JPA for MySQL中为我的所有类创建Bean时出错?

如何使用外部函数从Java中获取C++ struct 的返回值&;内存API

如何使JOOQ渐变脚本不重新创建表未更改的类?

如何正确使用java.time类?