关于spring中的注解问题
来源:互联网 发布:辉素网络带练真的假的 编辑:程序博客网 时间:2024/06/12 18:00
原文链接:https://www.zhihu.com/question/39356740
1、了解一下 面向接口编程
面向接口编程很重要的一点就是接口回调,用接口声明的变量称作接口变量,属于引用型变量,可以存放实现该接口的类的实例的引用,对象引用。
接口回调:可以把实现某一接口的类创建的对象的引用赋值给该接口声明的接口变量,那么该接口变量就可以调用被类实现的接口方法。
2、依赖注入有用到面向接口的编程思想
所以就很好理解在使用service而不是实现类
@Autowired 与@Resource:
1、@Autowired与@Resource都可以用来装配bean. 都可以写在字段上,或写在setter方法上。
2、@Autowired默认按类型装配(这个注解是属业spring的),默认情况下必须要求依赖对象必须存在,如果要允许null值,可以设置它的required属性为false,如:
@Autowired(required=false) ,如果我们想使用名称装配可以结合@Qualifier注解进行使用,如下:
Java代码
3、@Resource 是JDK1.6支持的注解,默认按照名称进行装配,名称可以通过name属性进行指定,如果没有指定name属性,当注解写在字段上时,默认取字段名,按照名称查找,如果注解写在setter方法上默认取属性名进行装配。当找不到与名称匹配的bean时才按照类型进行装配。但是需要注意的是,如果name属性一旦指定,就只会按照名称进行装配。
只不过注解处理器我们使用的是Spring提供的,是一样的,无所谓解耦不解耦的说法,两个在便利程度上是等同的。
Java代码
他们的主要区别就是@Autowired是默认按照类型装配的 @Resource默认是按照名称装配的
byName 通过参数名 自动装配,如果一个bean的name 和另外一个bean的 property 相同,就自动装配。
byType 通过参数的数据类型自动自动装配,如果一个bean的数据类型和另外一个bean的property属性的数据类型兼容,就自动装配
1、@Autowired与@Resource都可以用来装配bean. 都可以写在字段上,或写在setter方法上。
2、@Autowired默认按类型装配(这个注解是属业spring的),默认情况下必须要求依赖对象必须存在,如果要允许null值,可以设置它的required属性为false,如:
@Autowired(required=false) ,如果我们想使用名称装配可以结合@Qualifier注解进行使用,如下:
Java代码
@Autowired() @Qualifier("baseDao") private BaseDao baseDao;
只不过注解处理器我们使用的是Spring提供的,是一样的,无所谓解耦不解耦的说法,两个在便利程度上是等同的。
Java代码
@Resource(name="baseDao") private BaseDao baseDao;
byName 通过参数名 自动装配,如果一个bean的name 和另外一个bean的 property 相同,就自动装配。
byType 通过参数的数据类型自动自动装配,如果一个bean的数据类型和另外一个bean的property属性的数据类型兼容,就自动装配
阅读全文
0 0
- 关于spring中的注解问题
- 关于spring框架中的注解驱动
- 关于spring中propagation注解的问题
- 关于Spring的注解@Resource的问题
- 关于Spring+Hibernate注解式整合问题
- Spring注解在Junit中的使用问题
- 关于Spring注解自动扫描中的 base-package
- 关于spring注解
- 关于Spring 注解 IOC
- 关于spring的注解
- 关于spring常用注解
- 关于spring注解配置
- 关于Spring的注解
- Spring关于@required注解
- Spring关于@Bean注解
- 关于spring注解试注入的配置问题
- 关于spring 的@cacheable 注解 无法生效的问题
- 关于spring,springmvc 整合框架注解扫面的问题,
- ubuntu完整安装glib心得
- 最优化 最小二乘法
- Ueditor修改视频编辑丢失预览图bug
- 2010-2011 ACM-ICPC, NEERC, Southern Subregional Contest B. 3D City Model(数论)
- NYOJ 128 前缀式计算
- 关于spring中的注解问题
- Xmarin.Forms 基础——Behaviors
- 【深度学习】【caffe实用工具3】笔记25 Windows下caffe中将图像数据集合转换为DB(LMDB/LEVELDB)文件格式之convert_imageset
- HTTP请求json文件出现中文乱码的解决方案
- hdu6060 RXD and dividing
- 详解 pkg-config 作用
- Django-CBV和FBV
- java.lang.ClassNotFoundException怎么解决
- linux初学者-DDNS配置篇