我试图在我的休息控制器中自动装配服务,如下所示:
休息控制器:
@ApplicationPath("/greetings")
@Component(immediate = true, service = Application.class)
public class RestControllerApplication extends Application {
@Autowired
private MyService myService;
public Set<Object> getSingletons() {
return Collections.<Object>singleton(this);
}
@POST
@Path("/getUploadType")
@Produces("application/json")
public JsonObject getUploadType() {
...
myService.findUploadTypes();
...
}
}
服务:
@Component
public class UploadService {
private static final Logger log = Logger.getLogger(UploadService.class);
@Autowired
private OneDAO oneDAO;
@Autowired
private TwoDAO twoDAO;
...
}
但在我的休息控制器中,uploade服务为空。为什么呢?
答案 0 :(得分:0)
答案 1 :(得分:0)
我可以使用以下几行代码访问我的bean:
WebApplicationContext context = ContextLoader.getCurrentWebApplicationContext();
MyService myService = context.getBean(MyService.class);
答案 2 :(得分:0)
您宣布UploadService
为@Component
,但在您的控制器中尝试自动装配 MyService
个实例...
有两种选择:您可以在控制器中声明正确的服务类型,也可以UploadService
继承MyService
。