Java Jersey配置未标识服务和dao类
这是我的课程Java Jersey配置未标识服务和dao类,java,spring,dependency-injection,jersey,Java,Spring,Dependency Injection,Jersey,这是我的课程 @ApplicationPath("services") public class JerseyApplication extends ResourceConfig{ public JerseyApplication() { packages("com.ems"); register(EmployeeService.class); } } 这里,employeeService的自动连线给出
@ApplicationPath("services")
public class JerseyApplication extends ResourceConfig{
public JerseyApplication() {
packages("com.ems");
register(EmployeeService.class);
}
}
这里,employeeService的自动连线给出了一个空指针异常
@Path("/ems")
@Component
public class EmployeeRestController {
@Autowired
private EmployeeService employeeService;
@GET
@Path("/employees")
@Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
public List<Employee> getEmployees() {
return employeeService.getEmployees();
}
}
我什么都试过了
在我的employeeServiceImpl中,我有@service注释
但是,它仍然不起作用 您应该注册控制器而不是服务类。
要使用内置DI框架HK2配置依赖项注入,应该使用AbstractBinder,如中的一些答案所述 其次,您不使用@Autowired注释。此注释专门用于Spring。对于Jersey的标准注入,只需使用@Inject注释。还要删除@Component注释,因为这也是Spring的注释
另外,如果你真的想把Spring和Jersey结合起来,你应该阅读。它将分解您需要了解的关于集成这两个框架的内容。您了解注入吗?因为问题在于它没有执行依赖项的注入
@ApplicationPath("services")
public class JerseyApplication extends ResourceConfig{
public JerseyApplication() {
packages("com.ems");
register(EmployeeRestController.class);
}
}
@ApplicationPath("services")
public class JerseyApplication extends ResourceConfig {
public JerseyApplication() {
packages("com.ems");
register(new AbstractBinder() {
@Override
protected void configure() {
bind(EmployeeService.class)
.to(EmployeeService.class)
.in(Singleton.class);
}
});
}
}