Java随笔 | Spring项目三种常用的依赖注入注解@Value、@Autowired、@Resource
在Spring或Springboot项目中,时常需要使用注解完成变量的依赖注入,多使用在controller层和service层上,依赖注入的注解有4个,本文介绍其中常用的3种,未介绍的注解是@Qualifier,可自行学习了解。
本文面向初学者,故只介绍最基础的用法,力求简单清晰。
一、@Value
@Value注解的成员变量通常为基本数据类型及其包装类,以及String类型,用于直接给该变量赋值。
常用于从*.properties
或*.yml
配置文件中取值并注入。
示例:
- yml配置文件
# properties.yml配置文件存放属性
configVar:
var1: abcd # 这是一个字符串
var2: 1234 # 这是一个整数
var3: true # 这是一个布尔值
- Spring项目
// Spring(boot)项目中给变量注入值
public class TestController {
@Value("${configVar.var1}")
private String var1;
@Value("${configVar.var2}")
private Integer var2;
@Value("${configVar.var3}")
private Boolean var3;
...
}
@Value也可以注入数组、List等java自带类型,可参考:
https://blog.csdn.net/wangooo/article/details/114018690
二、@Autowired
@Autowire作用在自定义的成员变量上,自动装配,使用的是byType策略,即根据变量类型从ioc容器中查找,使用该注解需要在对应的类上挂以下注解中的一个(以将对象注入ioc容器):
- @Componet:通用,无语义
- @Controller:写在控制层(controller)类上
- @Service:写在业务层(service)实现类上
- @Repository:写在数据访问层(dao)实现类上
示例: - 数据访问层(dao)实现类
// 在ioc容器中创建该类的对象
@Repository
public class DemoDao {
...
}
- 业务层(service)实现类
// @Autowired注解查找DemoDao类型并装配
public class DemoServiceImpl {
@Autowired
private DemoDao demoDao;
}
三、@Resource
@Resource作用在自定义的成员变量上,自动装配,先基于byName策略,即根据变量的名称从ioc容器中查找,如果没有找到再使用byType策略装配,该注解不是由Spring官方提供的,而是由EJB框架提供。在Springboot项目中,对应的类可不使用@Componet等注解。
示例:
- 数据访问层(dao)实现类
// Springboot项目中的Dao
public interface TestDao extends BaseMapper<Test> {
...
}
- 业务层(service)实现类
// 使用@Resource注意变量名为类名首字母小写
public class TestServiceImpl extends ServiceImpl<TestDao, Test> implements TestService {
@Resource
private UserCartDao userCartDao;
}
@Autowired和@Resource可通用,但推荐使用@Resource。
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhgakffj
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01