Java 在应用程序上下文中声明@Autowired和声明bean之间有什么区别

Java 在应用程序上下文中声明@Autowired和声明bean之间有什么区别,java,spring,spring-mvc,Java,Spring,Spring Mvc,我将模块1的spring项目1构建为一个jar文件,然后在项目2的另一个模块2中添加这个jar文件依赖项,然后在项目3中添加模块2。现在,在启动tomcat服务时,将错误作为Module1类对象的NoSuchBeanDefinitionException 在检查module2代码时,发现注入的module1类对象使用@Autowired注释,方法是在xml中包含bean声明(。问题已得到解决。但我无法找到根本原因,即bean功能如何不同?您可能缺少给定包的@ComponentScan。@proj

我将模块1的spring项目1构建为一个jar文件,然后在项目2的另一个模块2中添加这个jar文件依赖项,然后在项目3中添加模块2。现在,在启动tomcat服务时,将错误作为Module1类对象的NoSuchBeanDefinitionException


在检查module2代码时,发现注入的module1类对象使用@Autowired注释,方法是在xml中包含bean声明(
。问题已得到解决。但我无法找到根本原因,即bean功能如何不同?

您可能缺少给定包的@ComponentScan。@project3应用程序上下文中包含EpicPandaForce,但它不起作用。使用Autowired和注入bean在功能上有什么区别吗在xml中。据我所知,Autowired将自动创建bean,为什么它在project3中不受影响,但它在project2中的影响..xxx必须是定义自动连接组件(例如com.myprojet.submodule.Module1Bean)的完整包名(例如com.myprojet.submodule.Module1Bean).@JihedAmine com.myprojet.submodule的意思是?.Example:我将project1包的模块1设置为“org.Example.com.project1.module1.sampleClassPackage”。现在,我应该在project3中包含哪些组件扫描。这一个不适用于project3,但适用于project2.correct。可能它适用于project2,因为project2的注入类位于org.example.com.project1.module1.sampleClassPackage中。因此,您必须添加另一个。假设在module3中注入的module2组件是define在org.example.com.project1.module2.sampleClassPackage下编辑