当@RestController Bean已存在时,使用@Bean创建的Bean不会自动装配

时间:2019-11-15 08:39:38

标签: java spring spring-annotations

Foo.java

        @RestController
        @RequestMapping("/foo")
        public class Foo{

        @Autowired
        Bar bar;

        @RequestMapping("/beanTest")
        public void beanTest() {
            System.out.println("Foo's Bar is "+bar);
        }   
        }

Bar.java

  @RestController
  class Bar{ }

Config.java

   @Configuration

   public class Config {

    @Bean
    public Bar getBar() {

        Bar bar=new Bar();
        System.out.println("@Bean Bar is "+bar);
        return bar;

    }
}

问题:
     问题是我们有2个Bar bean 1个,分别为@RestController和@Bean创建。      现在,当我们使用@Autowired批注对Bar进行自动装配时,由@Bean创建的bean不是      被注射而另一人被捡起为什么?      根据我的说法,这里有2个针对相同类型的酒吧在应用程序上下文中注册      应用程序应该失败,因为它不能决定要注入哪个。

OUTPUT :

@Bean Bar is com.example.practiceBoot.controller.Bar@56e07a08

Foo's Bar is com.example.practiceBoot.controller.Bar@6ae18a78

0 个答案:

没有答案