2.4@Bean的autowire属性

戴着假发的程序员出品  抖音ID:戴着假发的程序员 欢迎关注

[查看视频教程]

源码:

1 @java.lang.Deprecated
2 org.springframework.beans.factory.annotation.Autowire autowire() default org.springframework.beans.factory.annotation.Autowire.NO;

autowire和配置文件中的autowire有同样的作用。 表示自动组装方式。 通过读取源码我们发现spring5.x开始已经不建议使用了。

Autowrire的几个值:

  No:不启用自动装配,这也是默认值。

  byName: 通过属性的名字的方式查找JavaBean依赖的对象并为其注入。

  byType:通过属性的类型查找JavaBean依赖的对象并为其注入。但是如果同一种类型出现多个bean就会出错。

  constructor:和byType一样,也是通过类型查找依赖对象。但是是通过构造方法注入。spring5.x已经没有了

  autodetect:在byType和constructor之间自动的选择注入方式。 spring5.x已经没有了

  default:由上级标签beans的default-autowire属性确定。 spring 5.x已经没有了

我们可以测试一个byType配置:

我们将之前我们手动注入属性的代码注释,然后再进行测试:

1     //配置ArticleService对象
2     @Bean(name="aservice",autowire = Autowire.BY_TYPE)
3     public ArticleService articleService(){
4         ArticleService articleService = new ArticleService();
5         //注入对应的属性
6 //        articleService.setArticleDAO(articleDAO());
7 //        articleService.setAutorDAO(authorDAO());
8         return articleService;
9     }

posted @ 2020-10-07 08:57  戴着假发的程序员0-1  阅读(432)  评论(0编辑  收藏  举报