我有四个包裹:
-
com.spring.org
Files: HomeController.java
-
com.spring.org.dao
Files: SubscriberDao.java
, SubscriberDaoImpl.java
-
com.spring.org.model
Files: Subscriber.java
-
com.spring.org.service
Files: SubscriberService.java
, SubscriberServiceImpl.java
我将所有控制器类放入com.spring.org包和其他包根据其类型位于不同的包中。如果我运行我的应用程序,我会收到此错误消息:
HTTP 状态 500 - Servlet appServlet 的 Servlet.init() 引发异常
没有找到 [com.spring.org.service.SubscriberService] 类型的合格 bean 进行依赖项:预计至少有 1 个有资格作为此依赖项的自动装配候选者的 bean...
仅供参考:我在控制器中使用自动装配注释,如下所示:
@Autowired
private SubscriberService subService;
但是如果我把所有的类和接口放入com.spring.org包然后我的应用程序完美运行。
我尝试在 servlet-context.xml 文件中使用这些标签来解决问题,但仍然不起作用:
<annotation-driven />
<context:annotation-config />
<context:component-scan base-package="com.spring.org.**" />
<context:component-scan base-package="com.spring.org.dao" />
<context:component-scan base-package="com.spring.org.model" />
<context:component-scan base-package="com.spring.org.service" />
我也只尝试过这个:
<context:component-scan base-package="com.spring.org" />
您可以在此处查看我的 servlet-context.xml 文件的代码http://postimg.org/image/s6bnjccrn/ http://postimg.org/image/s6bnjccrn/
你能告诉我如何解决这个问题吗?
如果您需要查看任何其他文件,请告诉我。
Update
我的 SubscriberService 代码:
@Service
public interface SubscriberService {
public void addSubscriber(Subscriber subscriber);
public void updateSubscriber(Subscriber subscriber);
public Subscriber getSubscriberById(int subId);
public List<Subscriber> listSubs();
public int removeSubscriber(int subId);
}
根本原因
org.springframework.beans.factory.BeanCreationException:创建名称为“homeController”的bean时出错:自动装配依赖项注入失败;嵌套异常是 org.springframework.beans.factory.BeanCreationException: 无法自动装配字段: private com.spring.service.SubscriberService com.spring.org.HomeController.subService;嵌套异常是 org.springframework.beans.factory.NoSuchBeanDefinitionException:没有找到依赖项 [com.spring.service.SubscriberService] 类型的合格 bean:预计至少有 1 个有资格作为此依赖项的自动装配候选者的 bean。依赖注解:{@org.springframework.beans.factory.annotation.Autowired(required=true), @org.springframework.beans.factory.annotation.Qualifier(value=)}
org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:292)
Files
如果我将所有代码粘贴到这里,将很难理解,所以我在这里上传了整个项目https://www.mediafire.com/?crxe7vt7uwyqwtl https://www.mediafire.com/?crxe7vt7uwyqwtl。我正在使用 Eclipse IDE。