我到处都在搜寻,但似乎找不到清晰的答案…
服务器(我的问题是glassfish)注入用@Context注释的实际objets的机制是什么?更具体地说,如果我想编写一个类似以下内容的类:
@Path("/")
public class MyResource {
@GET
public String doSomething(@Context MyObject obj) {
// ...
}
}
那我该怎么办呢?实例化MyObject的位置在哪里,由谁执行,如何执行?
编辑:我看过类似以下内容:
在JAX-RS中使用@ Context,@Provider和ContextResolver
http://jersey.576304.n2.nabble.com/ContextResolver-confusion-
td5654154.html
但是,这与我所见不符,例如在org.neo4j.server.rest.web.RestfulGraphDatabase的构造函数中,它具有以下签名:
public RestfulGraphDatabase(
@Context UriInfo uriInfo,
@Context Database database,
@Context InputFormat input,
@Context OutputFormat output,
@Context LeaseManager leaseManager )
您可以编写自己的注入提供程序并将其插入Jersey-查看SingletonTypeInjectableProvider和PerRequestTypeInjectableProvider-扩展这些类之一(取决于您希望注入对象的生命周期),并将实现注册为您的Web应用程序中的提供程序。
例如,如下所示:
@Provider
public class MyObjectProvider extends SingletonTypeInjectableProvider<Context, MyObject> {
public MyObjectProvider() {
// binds MyObject.class to a single MyObject instance
// i.e. the instance of MyObject created bellow will be injected if you use
// @Context MyObject myObject
super(MyObject.class, new MyObject());
}
}
要将提供程序包括在您的Web应用程序中,您可以选择以下几种方式:
当Vert.x提供一个事件的处理程序或调用Verticle的开始或停止的方法,执行与Context相关联。一般Context是event-loop context 绑定特定的事件循环线程。因此,对于这方面的执行总是发生在该完全相同的事件循环线程。在worker verticles和运行内嵌阻止代码worker context的情况下将使用一个线程从worker线程池的执行关联。 若要获得conte
问题内容: 我是JAX-RS的新手,我试图了解注释的工作方式。 在javadoc中有六个等级的列表()。但是,我在网络上找到将this注释与其他类型一起使用的代码,例如: 是否有可以与此注释一起使用的受支持类型的列表?在执行标准之间,此列表是否会更改? 我目前正在试验Jersey,我担心自己写的代码无法移植到其他JAX-RS实现中。 问题答案: 铆接的JAX-RS 规范定义了你可以通过注入的所有标
我是 JAX-RS 的新手,我正在尝试了解注释应该如何工作。 在javadoc中有一个包含六个类的列表(< code >应用程序、< code>UriInfo、< code >请求、< code>HttpHeaders、< code >安全上下文、< code >提供者)。但是,我在网上找到了将this批注用于其他类型的代码,例如: 是否有可用于此批注的支持类型列表?该列表在标准实施期间是否发生变
问题内容: 您是否知道是否有内置函数可以从任意对象构建字典?我想做这样的事情: 注意:它不应包含方法。仅字段。 问题答案: 请注意,Python 2.7中的最佳实践是使用新型类(Python 3不需要),即 同样,“对象”和“类”之间也存在差异。要从任意对象构建字典,只需使用即可。通常,您将在类级别声明方法,并在实例级别声明属性,因此应该没问题。例如: 更好的方法(由robert建议在注释中使用)
问题内容: 是否可以在JAX-RS下以REST方法访问Request对象? 我刚刚发现 问题答案: 在JAX- RS上,必须使用@Context注释Request参数: 您也可以选择注入: UriInfo HttpHeaders 安全上下文 HttpServletRequest
假设我有一个非常大的对象集合(数百万个),这些对象是根据proto-wire格式序列化的。是否可以从文件中流式处理这些项目?我尝试将对象序列化为列表 我怀疑解决方案需要我知道每个序列化项的大小,然后从流中读取该大小,并将该字节跨度传递给protobuf序列化程序进行反序列化。我想确保没有一种更简单的机制来完成这项任务,这种机制不需要了解每个对象实例中可能不同的单个项目的长度。 我的另一个想法是在流