@Autowired和@Resource都可以用于来实现依赖注入,但前者是Spring提供的,后者为JDK(JSR-250标准)自带的。阿里Java开发规范中推荐使用@Resource。但大多数人往往并没有留意为何如此,甚至代码中的提示信息可能都没留意去看。
本文就带大家彻底了解一下这两个注解的功能、运用场景及区别。
IDE的提示
如果在项目中使用@Autowired进行注入,如下代码:
@RestControllerpublic class InjectController { @Autowired private ConnectService connectService;}
会有这样的提示信息:
Field injection is not recommended Inspection info: Spring Team recommends: "Always use constructor based dependency injection in your beans. Always use assertions for mandatory dependencies".
翻译过来就是:字段注入是不推荐的