一般@Resource就行了吧~
解决方案 »
- 如何用java语言分析这个xml,将其中的省名保存到一个字符型数组中?
- 请教大家一个关于web.xml的问题。
- 在Hibernate里怎样使用update更新数据
- JAVA WEB 项目如何打补丁?求助!
- 在JSP中如何获得访问者的IP地址
- HashMap是什么东东
- 补充刚才的,高分求助!!!!!
- 想了解一下java虚拟机的核心有什么,谁有资料的告诉我好吗?
- 哪位J2EE、EJB高手能精辟的讲一下EJB的用途,结构?逻辑清楚者得分。
- HTTP Status 500 - Filter execution threw an exception
- Timer定时器问题
- Java 如何实现 以下c#对称加密
@Resource(name = "allRoleService")
private AllRoleService allRoleService;
Autowired默认按类型装配
Resource默认安装名称进行装配
ServiceProvider.getService()自己上网找吧……
2、byType 如果容器中存在一个与指定属性类型相同的bean,那么将与该属性自动装配;如果存在多个该类型bean,那么抛出异常,并指出不能使用byType方式进行自动装配;如果没有找到相匹配的bean,则什么事都不发生。
可以这样理解
如下:
@Autowired
pirvate CurryUserService curryUserService;
@Autowired
pirvate CurryUserService abc;
//这两种都可以注入成功而
@Resource(name = "curryUserService")
private CurryUserService curryUserService; //注入成功@Resource(name = "curryUserService")
private CurryUserService abc; //注入失败,因为对象名和@Resource中的name值不一致
Resource 采用ApplicationContext.getBean(String name)函数,根据托管实例的名称注入,同样相同名字的实例只能有一个另外就是底层实现机制的不同,我记得根据spring文档上的说明,AOP环境中,Autowired采用了cglib进行代理构建,而Resource采用java代理进行构建
再有就是,对于其他可能的IoC框架而言,采用Resource可以实现平滑过滤,而Autowired是spring自身的实现注解,不能对其他框架提供兼容
@Resource是java包里的注解
所以我用@Autowired