Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.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 在Spring中是否必须为每个声明的bean指定一个id?_Java_Spring_Spring Mvc - Fatal编程技术网

Java 在Spring中是否必须为每个声明的bean指定一个id?

Java 在Spring中是否必须为每个声明的bean指定一个id?,java,spring,spring-mvc,Java,Spring,Spring Mvc,我正在学习SpringCore认证,我对这个旧的模拟考试中发现的以下问题有些怀疑(这与SpringV3有关,现在有了v4,但我认为许多主题是相同的) 给出以下Spring配置文件,正确答案是什么: <bean class ="com.spring.service.MyServiceImpl"> <property name="repository" ref="jpaDao" /> </bean> <bean class="com.spring.

我正在学习SpringCore认证,我对这个旧的模拟考试中发现的以下问题有些怀疑(这与SpringV3有关,现在有了v4,但我认为许多主题是相同的)

给出以下Spring配置文件,正确答案是什么:

<bean class ="com.spring.service.MyServiceImpl">
    <property name="repository" ref="jpaDao" />
</bean>

<bean class="com.spring.repository.JpaDao"/>

  • 第一个声明的bean MyServiceImpl缺少一个id,该id必须命名为myService

  • 第二个声明的bean JpaDao缺少一个id,该id必须命名为JpaDao

  • 答案1和2都是正确的

  • 答案1和2都错了

  • 我最初的想法是,两个答案都是正确的,因为两个bean都没有指定id,所以如果第二个bean确实需要一个id=jpaDao,因为第一个bean使用它作为引用,我认为第一个bean也需要一个id。否则,如何调用它?(也在工厂代码中?)

    但是,在阅读《安瑟》时,在模拟中发现,正确答案是第二个

    那么这意味着什么呢?在Spring中不是强制为每个bean指定一个id吗?如果这是真的,如果第一个bean没有id,我如何使用工厂引用或实例化它?我错过了什么


    这是一个棘手的问题。Spring知道默认情况下自动创建ID。因此,以下定义是正确的:

    <bean class="com.spring.repository.JpaDao"/> 
    

    这就是为什么只有第二个答案是正确的

    这是一个棘手的问题。Spring知道默认情况下自动创建ID。因此,以下定义是正确的:

    <bean class="com.spring.repository.JpaDao"/> 
    

    这就是为什么只有第二个答案是正确的

    这是一个棘手的问题。Spring知道默认情况下自动创建ID。因此,以下定义是正确的:

    <bean class="com.spring.repository.JpaDao"/> 
    

    这就是为什么只有第二个答案是正确的

    这是一个棘手的问题。Spring知道默认情况下自动创建ID。因此,以下定义是正确的:

    <bean class="com.spring.repository.JpaDao"/> 
    

    这就是为什么只有第二个答案是正确的

    使用Java配置通常比使用XML更方便。只需用
    @Bean
    标记方法,用
    @Configuration
    标记类即可。方法的名称将成为bean名称,除非您通过注释参数重写它。因为无论如何都要命名方法,这使得使用ID与否的选择变得无关紧要。@MichałKosmulski,我非常同意。使用Java配置通常比使用XML更方便。只需用
    @Bean
    标记方法,用
    @Configuration
    标记类即可。方法的名称将成为bean名称,除非您通过注释参数重写它。因为无论如何都要命名方法,这使得使用ID与否的选择变得无关紧要。@MichałKosmulski,我非常同意。使用Java配置通常比使用XML更方便。只需用
    @Bean
    标记方法,用
    @Configuration
    标记类即可。方法的名称将成为bean名称,除非您通过注释参数重写它。因为无论如何都要命名方法,这使得使用ID与否的选择变得无关紧要。@MichałKosmulski,我非常同意。使用Java配置通常比使用XML更方便。只需用
    @Bean
    标记方法,用
    @Configuration
    标记类即可。方法的名称将成为bean名称,除非您通过注释参数重写它。既然你必须命名这个方法,这就使得使用IDs与否的选择变得无关紧要了。@MichałKosmulski,我完全同意。