@Autowired @Resource
Spring 定义的注解 JDK自带的注解(JSR-250定义的)
默认按类型自动装配(byType) 默认按名称自动装配(byName)
一个参数:required(默认true),表示是否必须注入 七个参数:最重要的两个参数是 name,type
默认按类型自动装配,如果要按名称自动装配,需要和 @Qualifier 一起配合 默认按名称自动装配,如果指定了 name,则按名称自动装配;如果指定了 type,则按类型自动装配
支持优先级,@Primary 注解修饰,该候选者会被选中,作为自动装配的 bean 不支持
作用范围:构造器,方法,参数,成员变量,注解 作用范围:类,成员变量,方法

不知道从什么时候起我的 IDEA 对 @Autowired 一直报黄色的波浪线,使用 alt + enter 查看 IDEA 给的提示是 Field injection is not recommended,上网查了以下发现其实是因为现在推荐使用构造器的方式注入,而不推荐使用成员变量的方式。我以前的处理方式是直接使用 @Resource,但是今天才明白 @Autowired 的功能略微强大一点。支持优先注入,可以配置允许 bean 不存在;@Resource 相比较于 @Autowired 就是更加通用一点,支持其他框架,但是我现在后端都是在用 Spring,也暂时不用考虑其他框架。整体来说我打算继续使用 @Autowired(后面如何换框架了当我没说),但是继续使用 IDEA 又给我报黄色波浪线,看着很烦,本人有很严重的代码洁癖。所以我打算把 IDEA 的这个警告取消:Settings -> Inspections -> Spring Core -> Non recommended field injections 取消勾选就好了