- 浏览: 19290 次
- 性别:
- 来自: 北京
最新评论
-
会爬的老鼠:
FetchType与FetchMode的区别 -
shmily2038:
用@Resource自动引用了,还需要那么复杂?
@Resou ...
Spring 自动装配的条件总结
文章列表
相同点:
@Autowired和@Resource作用基本相同,都是用于自动装配bean对象。都可以写在字段上,或写在setter方法上。
区别点:
1.出处不同
@Autowired(Spring注解,org.springframework.beans.factory.annotation.Autowired)
@Resource(JAVA注解,javax.annotation.Resource)
后者是JAVA注解,适用范围广,依赖小
2.自动装配策略不同
@Autowired 只能按类型匹配 ...
1.类被容器管理
可以通过注解方式或配置xml方式交给容器管理。
2.自动装配属性被设定
注解方式可以使用@autowired(byType,根据类型匹配),@Qualifier(byName,根据名称匹配)
xml方式可以设定bean的autowire属性,默认不自动装配
3.有对应set方法
容器通过反射机制,在创建后找到匹配的属性对象后,通过该方法进行设定。
4.被自动装配的属性对象在容器中唯一
无论byType和byName都要保证匹配的对象唯一,否则会报错
使用例:
@OneToMany(mappedBy="item",cascade=CascadeType.ALL,fetch=FetchType.EAGER)
@Fetch(value=FetchMode.SUBSELECT)
两者比较:
两者都是设定关联对象的加载策略。前者是JPA标准的通用加载策略注解属性,
后者是Hibernate自有加载策略注解属性。
FetchType可选值意义与区别如下:
FetchType.LAZY: 懒加载,在访问关联对象的时候加载(即从数据库读入内存)
FetchType.EAGER:立刻加载,在查询主对象的时候同时加载关联 ...
上面是Spring MVC框架主要实现类DispatchServlet的概要流程示意图。从中可以知道框架中主要的类和接口,以及Interceptor拦截器的使用方法和调用时机。通过实现这些接口可以进行定制以满足一些业务需要。