Java Rest最佳实践

Java Rest最佳实践,java,rest,helper,Java,Rest,Helper,我是RESTWebService的新手,有一个新手“q”。我创建了一个rest类,并希望使用帮助器类来处理某些操作。例如,我创建了以下服务: import statements... @Path("/UserResources") public class UserResource { //Create Spring application context static ClassPathXmlApplicationContext ctx = new C

我是RESTWebService的新手,有一个新手“q”。我创建了一个rest类,并希望使用帮助器类来处理某些操作。例如,我创建了以下服务:

   import statements...
   @Path("/UserResources")
   public class UserResource {
   //Create Spring application context
    static ClassPathXmlApplicationContext ctx = new 
    ClassPathXmlApplicationContext("classpath:/spring.xml");
    private UserResourceHelper urh = new UserResourceHelper(); // this is the helper 
    class UserProfileService userProfileService = ctx.getBean(UserProfileService.class);

    @POST
    @Path("/createUser")
    @Consumes(MediaType.APPLICATION_JSON)
    public Response createUser(@Context HttpServletRequest request, Object object) { 
      StringBuffer sb = new StringBuffer();
      User user = userProfileService.findByPrimaryKey(object); 
      sb.append(urh.createUser(object)); 
      return 
      Response.status(Status.CREATED.getStatusCode()).entity(result.toString()).build(); } }
关于这种方法,我有几个问题:

这是实例化helper类的正确方法吗?或者我应该创建一个构造函数并在那里实例化类?例如:

    public UserResource (){
     urh = new UserResourceHelper();
    }
在这种方法中,是否总是会有UserResourceHelper的新实例

如果是这样的话,那就意味着不会有并发问题了,对吗?例如,2个请求同时进入,createUser方法接收到的第一个对象会突然被突然进入的第二个对象替换

我正在使用Hibernate进行ORM。按照我的代码示例实例化实体的方式正确吗


谢谢你的帮助

在这种方法中,是否始终会有UserResourceHelper的新实例?

是。它总是创建新实例

建议:

如果要为每个请求创建新服务,可以将其作为服务而不是帮助器类,并且可以在控制器中自动连接该服务

@Service
public class UserResourceService {

 }
在控制器中

public class someController {

    @Autowired
    private UserResourceService userResourceService;

}


您可以在spring boot中使用@Autowire注释,它将自动创建类的实例

@Autowire
UserResourceHelper userResourceHelper;

我看到您正在使用spring,所以您可以将所有内容委托给spring,而不是手动实例化