Spring 为什么@Resource可以';你不能在HttpServlet中工作吗?
我是tiro toSpring 为什么@Resource可以';你不能在HttpServlet中工作吗?,spring,servlets,resources,annotations,Spring,Servlets,Resources,Annotations,我是tiro toSpring,希望在我的servlet中使用带有注释的自动连线@Resource。 在服务层和dao层中,此注释运行良好,当我在我的Servlet中使用它时,例外情况出现: com.fruit.action.merchant.MerAdd.service name='merAddService' is an unknown @Resource 如您所见,MerAdd是一个servlet,它扩展了我自己的BaseServlet,扩展了HttpServlet,service是me
Spring
,希望在我的servlet中使用带有注释的自动连线@Resource
。
在服务层
和dao层
中,此注释运行良好,当我在我的Servlet
中使用它时,例外情况出现:
com.fruit.action.merchant.MerAdd.service name='merAddService' is an unknown @Resource
如您所见,MerAdd
是一个servlet,它扩展了我自己的BaseServlet
,扩展了HttpServlet
,service
是meraddservi
的对象,在MerAdd
servlet中:
@Resource(name="merAddService")
private MerAddBusiness service;
public MerAddBusiness getService() {
return service;
}
public void setService(MerAddBusiness service) {
this.service = service;
}
有什么我应该做的来解决这个问题吗,mybe我误解了
@Resource
,你能帮我吗,谢谢很遗憾,你不能在Servlet中使用@Resource注释自动连线。这个春季论坛也讨论了同样的问题 问题:-“这里的问题是某些J2EE组件的依赖项被web容器注入其中。这意味着@Resource()注释将不起作用——容器将尝试将这些依赖项解析到JNDI(或其他地方)。” 可能的解决方法: 因为您可以在servlet中使用@Autowired注释
因此,您可以将请求处理委托给专用bean,该bean将自动连接@resourcebean,也就是说,使您的servlet只是一个符合servlet容器支持的API的入口点。因此,您可以根据需要通过spring配置实际的业务逻辑持有者bean,只需从IoC容器中检索它,并从servlet中调用必要的方法