Java 从业务层使用jersey进行基本依赖项注入
我正在从事一个使用RESTful服务的项目。我有web层、业务层等模块。我添加了基本api层(使用jersey)并获得get请求的基本响应。现在我必须将它连接到业务层。我在谷歌上搜索过,但我不知道如何为我的项目实施每个解决方案 这是我的旅行资源类:Java 从业务层使用jersey进行基本依赖项注入,java,rest,maven,dependency-injection,jersey,Java,Rest,Maven,Dependency Injection,Jersey,我正在从事一个使用RESTful服务的项目。我有web层、业务层等模块。我添加了基本api层(使用jersey)并获得get请求的基本响应。现在我必须将它连接到业务层。我在谷歌上搜索过,但我不知道如何为我的项目实施每个解决方案 这是我的旅行资源类: @Path("trip") public class TripResource { @Context private UriInfo context; @Inject private AdminService adm
@Path("trip")
public class TripResource {
@Context
private UriInfo context;
@Inject
private AdminService adminService;
public TripResource() {
}
@GET
@Produces("text/plain")
public List<TripDTO> getText() {
return adminService.listAllTrips();
}
}
现在我被卡住了
如何将此活页夹添加到配置类?
在不使用任何其他技术的情况下,最简单的实现是什么?这也花费了我很多时间 请尝试以下操作:
<servlet>
<servlet-name>om.example.package.to.your.config.ApplicationConfig</servlet-name>
<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>javax.ws.rs.Application</param-name>
<param-value>com.example.package.to.your.config.ApplicationConfig</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
om.example.package.to.your.config.ApplicationConfig
org.glassfish.jersey.servlet.ServletContainer
javax.ws.rs.Application
com.example.package.to.your.config.ApplicationConfig
1.
希望这会有所帮助;)
问候
本
现在发现了一个类似的帖子:
您需要向Jersey注册资源类。因此,如果您的应用程序名为
MyApplication
,那么您可以
public class MyApplication extends ResourceConfig {
/*Register JAX-RS application components.*/
public MyApplication () {
register(TripResource.class);
}
}
同样在web.xml
文件中,将MyApplication
添加到servlet容器中:
<servlet>
<servlet-name>SpringApplication</servlet-name>
<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>javax.ws.rs.Application</param-name>
<param-value>mypackage.MyApplication</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
SpringApplication
org.glassfish.jersey.servlet.ServletContainer
javax.ws.rs.Application
mypackage.MyApplication
1.
可以找到一个将Jersey与Spring DI结合使用的简单示例
public class MyBinder extends AbstractBinder {
@Override
protected void configure() {
// request scope binding
bind(MyInjectablePerRequest.class)
.to(MyInjectablePerRequest.class)
.in(RequestScope.class);
// singleton binding
bind(MyInjectableSingleton.class).in(Singleton.class);
// singleton instance binding
bind(new MyInjectableSingleton()).to(MyInjectableSingleton.class);
}
}
/**
* Application config
*/
public class ApplicationConfig extends ResourceConfig {
public ApplicationConfig() {
register(SomeResources.class, SomeProviders.class);
// Register different Binders
addBinders(new MyBinder());
}
}
<servlet>
<servlet-name>om.example.package.to.your.config.ApplicationConfig</servlet-name>
<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>javax.ws.rs.Application</param-name>
<param-value>com.example.package.to.your.config.ApplicationConfig</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
public class MyApplication extends ResourceConfig {
/*Register JAX-RS application components.*/
public MyApplication () {
register(TripResource.class);
}
}
<servlet>
<servlet-name>SpringApplication</servlet-name>
<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>javax.ws.rs.Application</param-name>
<param-value>mypackage.MyApplication</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>