关于spring中的注解问题
2017-08-09 20:33
183 查看
原文链接: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、了解一下 面向接口编程
面向接口编程很重要的一点就是接口回调,用接口声明的变量称作接口变量,属于引用型变量,可以存放实现该接口的类的实例的引用,对象引用。
接口回调:可以把实现某一接口的类创建的对象的引用赋值给该接口声明的接口变量,那么该接口变量就可以调用被类实现的接口方法。
2、依赖注入有用到面向接口的编程思想
所以就很好理解在使用service而不是实现类
@Autowired 与@Resource:
1、@Autowired与@Resource都可以用来装配bean. 都可以写在字段上,或写在setter方法上。
2、@Autowired默认按类型装配(这个注解是属业spring的),默认情况下必须要求依赖对象必须存在,如果要允许null值,可以设置它的required属性为false,如:
@Autowired(required=false) ,如果我们想使用名称装配可以结合@Qualifier注解进行使用,如下:
Java代码
@Autowired() @Qualifier("baseDao") private BaseDao baseDao;
3、@Resource 是JDK1.6支持的注解,默认按照名称进行装配,名称可以通过name属性进行指定,如果没有指定name属性,当注解写在字段上时,默认取字段名,按照名称查找,如果注解写在setter方法上默认取属性名进行装配。当找不到与名称匹配的bean时才按照类型进行装配。但是需要注意的是,如果name属性一旦指定,就只会按照名称进行装配。
只不过注解处理器我们使用的是Spring提供的,是一样的,无所谓解耦不解耦的说法,两个在便利程度上是等同的。
Java代码
@Resource(name="baseDao") private BaseDao baseDao;
他们的主要区别就是@Autowired是默认按照类型装配的 @Resource默认是按照名称装配的
byName 通过参数名 自动装配,如果一个bean的name 和另外一个bean的 property 相同,就自动装配。
byType 通过参数的数据类型自动自动装配,如果一个bean的数据类型和另外一个bean的property属性的数据类型兼容,就自动装配
相关文章推荐
- Spring学习笔记——关于Spring注解扫描不能注入new对象问题
- 关于spring使用new对象时注解失效问题解决办法
- 关于spring value注解取不到值问题。
- 关于spring3.0 后的 事务注解管理指定数据源问题
- 关于spring 的@cacheable 注解 无法生效的问题
- 关于spring使用@value注解获取properties文件属性问题
- 关于使用struts2和spring进行时注解开发报空指针异常的问题的一种解决方案
- 关于Spring的@Transactional注解失效以及事务无法回滚问题
- junit4调试和关于spring注解方面的问题
- 关于spring中propagation注解的问题
- Spring学习笔记——关于Spring注解扫描不能注入new对象问题
- 关于Spring的注解@Resource的问题
- Javaweb-------mybatis+springmvc关于实体类使用注解的一个问题
- 关于spring注解试注入的配置问题
- 关于注解版Spring 延迟加载报错问题 “could not initialize proxy - no Session“
- 关于Spring的Unable to locate NamespaceHandler for namespace问题
- 关于spring配置问题---IllegalStateException
- Spring——事物注解与synchronized冲突问题
- 方法上spring事物注解失效问题
- spring注解实现业务层事务管理,当业务层自调用时,事务失效问题解决