Spring常见注解|大厂面试题|Java高频面试题|依赖注入、Bean管理、Web开发

Spring常见注解|大厂面试题|Java高频面试题|依赖注入、Bean管理、Web开发

@ Component和@ Bean注册的Bean有什么本质区别?

@ Component是类注解扫描,Spring会通过类路径扫描自动实例化,依赖无参构造;@ Bean可以进行手动定义,开发者可以自定义实例化的逻辑,根据@ Bean方法返回的实例来管理Bean。 如果同一类型的Bean被两种方式注册,Bean会覆盖Component的,因为Bean是显式配置,优先级更高。 如果一个类既引用了@ Service又在@ Configuration中使用@ Bean定义了该类的实例,容器中会有几个Bean?分别是什么名称?

使用Service没有指定名称时默认类名是首字母小写,而Bean的默认名称是方法名,如果产生了名称冲突,@ Bean注解定义的Bean会覆盖Service注解,容器中只有一个Bean,如果Bean注解指定了不同的名称那么容器中会有两个Bean。 @ Autowired和@ Resource有什么区别?Autowired什么时候会报错?

@ Autowired是Spring的原生注解,默认会按类型匹配,@ Resource是JDK注解,是优先按照名称匹配的。 当Autowired没有找到匹配类型的Bean时会报错NoSuchDefinitionException,需要设置required=false,将变量赋值为null,但是后续代码需要判断该Bean是否为空。 @ RestController和@ Controller有什么区别?如果@ Controller想返回JSON可以怎么做?

RestController注解是Controller注解和ResponseBody注解的结合,类中的所有方法默认返回JSON;所以在有Controller注解的方法上添加@ ResponseBody注解可以返回JSON。

相关推荐

米芝华:明星脸上痣为什么不点掉,点痣祛痣不留疤还得米芝华
forest: 声明式与编程式双修的 HTTP 客户端框架,让 Java 再没有难以发送的 HTTP 请求
武动之魂上衣怎么做
365彩票官方正版下载

武动之魂上衣怎么做

📅 08-11 👁️ 2452
Tips.3 为什么歌名越来越长,歌词越来越口水?
365bet在线娱乐场

Tips.3 为什么歌名越来越长,歌词越来越口水?

📅 02-03 👁️ 8291
方舟生存进化手游蓝图在哪里获得
365bet在线娱乐场

方舟生存进化手游蓝图在哪里获得

📅 10-14 👁️ 5499
Leonor Greyl
365bet在线娱乐场

Leonor Greyl

📅 01-07 👁️ 8038
养河豚快死的表现图片(河豚要死的前兆?)
365bet在线娱乐场

养河豚快死的表现图片(河豚要死的前兆?)

📅 09-08 👁️ 8450
阿巴斯汽车报价是多少?
365彩票官方正版下载

阿巴斯汽车报价是多少?

📅 07-20 👁️ 2743
城市里的
365彩票官方正版下载

城市里的"白头"歌唱家——白头鹎

📅 02-15 👁️ 8643