@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取消勾选就好了