Java Rest最佳实践

问题描述 投票:0回答:1

我是不熟悉Web服务的新手,并且有新手q'。我已经创建了一个rest类,并希望使用helper类来处理某些操作。因此,例如,我创建了以下服务:

   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(); } }

我对此方法有两个问题:

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

    public UserResource (){
     urh = new UserResourceHelper();
    }

在这种方法下,将始终有UserResourceHelper的新实例吗?

如果是这样,则意味着并发正确不会有问题吗?即。 2个请求同时进入,并且createUser方法接收到的第一个对象会突然被突然出现的第二个对象代替?

我正在将Hibernate用于ORM。我按照我的代码示例实例化实体的方式是否正确?

感谢您的协助!

java rest helper
1个回答
0
投票

关于这种方法,总是会有UserResourceHelper的新实例吗?

yes. It always creates new instance

建议:

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

@Service
public class UserResourceService {

 }

和在控制器中

public class someController {

    @Autowired
    private UserResourceService userResourceService;

}

© www.soinside.com 2019 - 2024. All rights reserved.