Java Rest最佳实践
我是RESTWebService的新手,有一个新手“q”。我创建了一个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
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,而不是手动实例化