我在使用自动装配时遇到了一些问题
首先我创建一个嵌入式服务器
主.java
Server server = new Server(8080);
CXFNonSpringServlet cxf = new CXFNonSpringJaxrsServlet();
ServletHolder servlet = new ServletHolder(cxf);
servlet.setInitParameter("javax.ws.rs.Application", "com.asd.dispatcher.rest.testApplication");
servlet.setName("services");
servlet.setForcedPath("services");
ServletContextHandler context = new ServletContextHandler(ServletContextHandler.SESSIONS);
context.setContextPath("/hello");
server.setHandler(context);
context.addServlet(servlet, "/*");
server.start();
测试应用程序.java
public class testApplication extends Application {
@Override
public Set<Class<?>> getClasses() {
Set<Class<?>> classes = new HashSet<Class<?>>();
classes.add(testServlet.class);
return classes;
}
}
testServlet.java
@Path("/people")
@Component
@Scope("prototype")
public class testServlet {
@Autowired
private StatsService statsService;
@Produces({ "application/json" })
@GET
public String getPeople(@QueryParam("page") @DefaultValue("1") final int page) {
System.out.println("======= getPeople");
//statsService.printStats();
return "Hello World";
}
}
现在我的问题是我的 statsService 没有在 testServlet.java 中自动装配,但我可以将它自动装配到另一个用 @Service 注释的类中,
这是因为我使用了 CXFNonSpringServlet 吗?还是因为我尝试自动接线的方式?