Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}

注:Maven单工程的小伙伴,就不用向下看了,本案例适合Maven多工程出错的小伙伴,本案例仅提供参考(一种解决思路,可能某个步骤对你有所启发)。

环境:jdk 1.7 maven-3.2.3  用Spring 注解时,一直报标题错误。

究其原因:依赖的工程没有被导入。

一:主工程Controller层代码

Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}_第1张图片

二:打开Tomcat,展开,发现Service层的工程包没有被引入进来。后面的步骤,围绕这个问题依次展开!

Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}_第2张图片

三:

Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}_第3张图片Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}_第4张图片

四:绝招

Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}_第5张图片

Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}_第6张图片

 移除该工程,不是删除,下面是从新导入该工程哦。

Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}_第7张图片

五:如步骤2所示,点击右边的Add按钮,把该工程重新添加进来,重复发布工程至Tomcat。

六:问题到此解决。 


回顾:问题出现原因,如果是单工程,不会出现这样的问题。由于本项目是多工程 controller层 和 持久层 以及 接口层 完全分离,不在同一个工程下。发布到Tomcat后,如果某个工程因某种原因,没有以jar/war包的方式没引用到主工程,那么Spring注解就会发生此类错误。

原因很简单:下面代码本身没有问题,问题出在LxbxCxService是一个接口,它需要自动装配他的实现类LxbxCxServiceImpl,而实现类在另一个工程(hnsi-jmyb-service)里没有被以jar包的方式引入进来,当然就要报错了。

@Autowired

private LxbxCxService lxbxCxService; 

你可能感兴趣的:(Maven,Sping)