我是不熟悉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。我按照我的代码示例实例化实体的方式是否正确?
感谢您的协助!
关于这种方法,总是会有UserResourceHelper的新实例吗?
yes. It always creates new instance
建议:
如果要为每个请求创建一个新服务,则可以将其作为服务而不是帮助程序类,并且可以在控制器中自动为其连接。
@Service
public class UserResourceService {
}
和在控制器中
public class someController {
@Autowired
private UserResourceService userResourceService;
}