Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在@Component中自动连接@Bean_Java_Spring_Autowired - Fatal编程技术网

Java 在@Component中自动连接@Bean

Java 在@Component中自动连接@Bean,java,spring,autowired,Java,Spring,Autowired,我可以在xml中实现以下目标: <bean id="bean1" class="com.test.Class1"/> <bean id="bean2" class="com.test.Class2"> <property name="bean1" ref="bean1"/> <bean/> 但是,我不确定这是否正确 最好知道如何在@Component中实现它。用@Configuration替换@Component,并确保通过组件扫描拾取

我可以在xml中实现以下目标:

<bean id="bean1" class="com.test.Class1"/>

<bean id="bean2" class="com.test.Class2">
    <property name="bean1" ref="bean1"/>
<bean/>
但是,我不确定这是否正确


最好知道如何在@Component中实现它。

@Configuration
替换
@Component
,并确保通过组件扫描拾取配置类

您的xml中是否有
?或者如何使用您的
通用类
?一般来说,不建议在
@组件
中使用
@Bean
,这是
@配置
的责任,尽管它可以工作。如果您有正确的环境,请考虑通过@Configuration创建我的应用程序上下文。因此,我可以将下面的bean移动到它。但是,我仍然不确定:1)这样的自动布线是否正确:“newclass2(class1());”。2) 在下面的例子中,我们应该创建class1作为bean,还是可以简单地创建class2.setBean1(newclass1());谢谢。这取决于您的组件,如果
Class1
确实必须是一个bean,并且它可能可用于其他bean(通过注入),那么将其配置为
@bean
。当然,否则,您可以在任何地方
newclass1()。
@Component
class GeneralClass{

@Bean
    public Class1 class1() {
        return new Class1();
    }

@Bean
    public Class2 class2() {
        return new Class2(class1());
    }
}