我在使用RESTEasy设计REST微服务时遇到了问题。我正在尝试使用嵌入式jetty服务器创建应用程序以降低部署复杂性。因此,我有一个创建jetty服务器的main方法。我需要在服务器的引导程序之前注入一些对象。
我的主要看起来像这样:
func myRequest(
method: Alamofire.Method,
_ URLString: URLStringConvertible,
parameters: [String: AnyObject]? = nil,
encoding: ParameterEncoding = .URL,
headers: [String: String]? = nil,
requestReady: ((Request) -> Void)?) {
pendingRequestsQueue.addOperationWithBlock { [weak self] in
if let strongSelf = self {
let request = strongSelf.request(method, URLString, parameters: parameters, encoding: encoding, headers: headers)
if let requestReady = requestReady {
requestReady(request)
}
request.resume()
}
}
}
如何获取Injector单例实例以便我可以注入我的app对象?
答案 0 :(得分:0)
也将App的创建委托给了注入器。并将args传递给模块的构造函数。像这样:
class App {
@Inject
public App(@Named("args") String[] args, Server jettyServer) {
//...
}
}
class MyModule extends AbstractModule {
private final String[] args;
public MyModule(String[] args) {
this.args = args;
}
@Override
protected void configure() {
bind(String[].class).annotatedWith(Names.named("args")).toInstance(args);
}
}
main(String[] args) {
App app = Guice.createInjector(new MyModule(args)).getInstance(App.class);
}