@Autowired的使用--Spring规范解释,推荐对构造函数进行注释
一
在编写代码的时候,使用@Autowired注解是,发现IDE报的一个警告,如下:
Spring Team recommends "Always use constructor based dependency injection in your beans. Always use assertions for mandatory dependencies.
翻译:
Spring建议,总是在您的bean中使用构造函数建立依赖注入。总是使用断言强制依赖。
那么是为什么呢?
二
我们可以理一下java的基础点,不考虑父类,初始化的顺序
静态变量或静态语句块–>实例变量或初始化语句块–>构造方法–>@Autowired
ps.静态变量或静态语句块的初始化顺序是自上到下的顺序,被老大问到了...
三
好的,有了上面的铺垫,我们来看看下面的代码。
@Autowired private User user; private School school;public UserServiceImpl(){this.school.id = user.getSchoolId(); }
由于java先执行构造方法,导致
this.school = user.getSchool();
报空指针异常(虽然这个例子正常人都不会这样写...
解决办法就是使用构造器注入了
private User user; private String schoolId;@Autowired public UserServiceImpl(User user){this.user = user;this.schoolId = user.getSchoolId(); }
四
而且若是你是个单例的模式(bean没写@scope,默认为单例,
那么spring还建议你在bean的声明上加final,这个的解析就简单粗暴了。
因为加上final只会在程序启动的时候初始化一次,并且在程序运行的时候不会再改变。
官方的建议例子
private final EnterpriseDbService service; @Autowiredpublic EnterpriseDbController(EnterpriseDbService service) {this.service = service;}
转载于:https://www.cnblogs.com/ydymz/p/9225402.html
@Autowired的使用--Spring规范解释,推荐对构造函数进行注释相关推荐
- @Autowired的使用:推荐对构造函数进行注释
最近在使用idea开发时经常看到右侧栏有黄色一堆堆的,好恶心,这些代表代码不符合规范,可能会出现问题,为了代码整洁和代码规范,则优化一把,重点记录下autowired注解优化. @autowired含 ...
- pg注释某一段语句不执行_@Autowired的使用:推荐对构造函数进行注释
点击上方"Java知音",选择"置顶公众号" 技术文章第一时间送达! 作者:阿丙 www.cnblogs.com/acm-bingzi 在编写代码的时候,使用@ ...
- @autowired失败_@Autowired的使用:推荐对构造函数进行注释
在编写代码的时候,使用@Autowired注解是,发现IDE报的一个警告,如下: Spring Team recommends "Always use constructor based d ...
- Spring注解解释
Spring注解 @Service 注解在serviceImpl类上,表示这是一个业务层bean @Controller 注解在controller类上,表示这是一个控制层bean @Reposito ...
- Spring官方都推荐使用的@Transactional事务,为啥我不建议使用!
点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 事务管理在系统开发中是不可缺少的一部分,Spring提供了 ...
- Atitit 提升效率 界面gui方面的前后端分离与cbb体系建设 规范与推荐标准
Atitit 提升效率 界面gui方面的前后端分离与cbb体系建设 规范与推荐标准 1. 界面gui方面的前后端分离重大意义1 2. 业务逻辑也适当的迁移js化1 3. 常用分离方法2 3.1. 页面 ...
- 跨境电商Etsy如何使用交互行为类型进行可解释推荐
" 本文介绍了跨境电商Etsy如何利用用户历史交互行为的类型(如浏览,喜欢,收藏,加购,购买等)来完善物品的embedding表示,并进行可解释推荐.在离线和在线实验中均验证了引入交互类型信 ...
- Spring Boot(一):概述(5)——Spring Boot项目推荐工程结构
Spring Boot项目推荐工程结构:
- 可解释推荐系统研究综述
可解释推荐系统研究综述 文献来源 简介 解释的各种类型 基于用户和基于项目的解释 基于内容的解释 文本解释 可视化解释 社交解释 混合解释 可解释推荐模型 推荐模型概述 基于矩阵/张量分解的可解释推荐 ...
- 技术胖前端代码规范秘籍推荐
技术胖前端代码规范秘籍推荐 6个文档 ,一本书籍 ,2个工具 京东凹凸实验室前端代码规范 腾讯前端代码规范 百度前端代码规范 JavaScript Standard Style :是一个个人代码规范 ...
最新文章
- 【C++】LINK类型错误分析记录
- 微信小程序自定义组件之Picker组件
- 2014年云计算服务将取代PC电脑
- Android进阶:十三、自定义类加载器加载加密类文件
- Python量化(八)下影线选股法
- 【杂谈】AI工业界都有哪些值得参加的比赛?
- C# HTTP请求后对gzip页面实现解压缩
- 操作系统动态库调用过程
- 计算机控制z反变换公式,第三章 计算机控制系统的数学描述(修正Z变换).ppt
- 给程序猿简历的一些建议
- 使用EntityFramework Core和Enums作为字符串的ASP.NET Core Razor页面——第三部分
- [MYSQL]如何并发查询并更新
- core部署iis的 调试net_ASP.NET Core环境变量和启动设置的配置教程
- WinPE 安装系统
- 「 LaTex 」 写论文,如何插入参考文献讲解
- Android 使用三种方式缓存加载 倒影图片
- ArcGIS中的坐标系
- java解决异常_聊聊Java中的异常及处理
- 欧美零售商的全渠道实践
- [CocosCreator]封装对象池
热门文章
- python二分查找例题_Python查找数组中数值和下标相等的元素示例【二分查找】
- oracle设置保存时间为12或是24小时格式
- php imagick下载,PHP安装imagemagick扩展imagick
- java队列 notify_java使用线程做一个消息队列,wait,notify
- 人口会一直增长下去吗_想要一直美下去?护肤雷区你避开了吗?
- Hadoop CentOS 7 安装配置
- Android 显式意图(Intent) 与 隐式意图
- arduino 读取串口信息hex_进阶教程1:Arduino串口通信与电脑控制LED
- layer icon对应图标
- python3 下载网络图片