【发布时间】:2018-05-30 14:01:10
【问题描述】:
目前在我的基于 spring mvc 的应用程序中,我也在实现 Servlet(这是一个运行状况检查 servlet)。 我正在尝试使用 @Autowire 注释在这个 servlet 中注入一个类的依赖项,但是这个类没有实例化。
请考虑下面的代码。
@WebServlet(name = "myServlet", urlPatterns = "/app2")
public class HealthCheckController extends HealthCheckServlet{
/** The Constant serialVersionUID. */
private static final long serialVersionUID = 1L;
@Autowire
private MyService service;
/**
* method to check healthiness.
*
* @return true, if is healthy
* @throws HealthCheckException the health check exception
*/
@Override
public boolean isHealthy() throws HealthCheckException {
try {
service.showDetails("12", false,null);
System.out.println("True");
return true;
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return false;
}
您能否建议我如何提供 MyService 类的依赖项?
提前致谢。
【问题讨论】:
-
您在哪里提供了 myServlet?在调度程序 servlet 中还是在应用程序上下文中?如果是在disptcher-servlet中,则必须在webservlet中添加@Component,并在disptcher servlet中添加
和webservlet的包 -
myServlet 是名称本身
-
如果您使用 XML,您还应该提供 MyService 类的代码和 beans 配置文件。
标签: java spring spring-mvc dependency-injection