【面试必问】Spring支持注入null和空字符串吗?不懂别去面试了!
小米的故事:面试场上“翻车”的瞬间
先讲个小故事。
上个月我去面试一家AI初创公司,对方面试官是个大胡子的中年大哥,眼神犀利,一上来寒暄几句之后就抛来一个问题:
“你可以在Spring中注入一个 null 吗?或者注入一个空字符串呢?”
???
我当时脑袋一懵。
“这啥鬼问题,太简单了吧?”我心里想着,“当然可以啊,只要给个配置就好。”但我隐隐感觉有点不对劲,于是我开始结结巴巴地分析起来,什么默认值啦、@Value啦、Bean注入啦,整了个大概三分钟的回答。
大哥微微一笑,说:
“你说的不是错,但还是太表面了。你真的知道 Spring 是怎么处理这些注入的吗?”
……
那一刻,我知道,我掉坑里了。
于是,我决定回家把这问题彻底研究透。今天就跟大家一起复盘这个“看似简单但细思极恐”的问题。
问题重述:Spring 中能注入 null 和空字符串吗?
这是一道典型的“你以为你懂,其实不懂”的面试题。
我们来把问题拆解一下:
- 能不能通过 Spring 注入一个 null?
- 能不能通过 Spring 注入一个空字符串?
- 注入方式不同,结果是否会不同?
- @Value 注入 vs @Autowired 注入 vs XML配置,有差别吗?
我们一个个来,搞清楚这事。
Spring 中注入 null 的几种方式
1. 配置文件注入 null —— 行不通!
如果你用这种写法:
然后代码里这样注入:
上一篇: 几秒钟就充满电!科学
下一篇: 暂无数据