1.Spring 也提供了使用 JSR-250 bean 属性支持的注射方式。这是一种在 Java EE 5 与 Java 6 中普遍使用的方式(例如,在 JSF 1.2 中映射 beans 或者 JAX-WS 2.0 端点),对于Spring 托管的对象 Spring 可以以这种方式支持映射。
2. @Resource
a) 加入:j2ee/common-annotations.jar
b) 默认按名称,然后按类型
c) 可以指定特定名称
d) 推荐使用
e) 不足:如果没有源码,就无法运用annotation,只能使用xml
bean.xml
<bean id="u" class="org.sh.spring.impl.IUserDAOImpl">
<property name="daoId" value="1"></property>
</bean>
<bean id="userservice" class="org.sh.spring.Services.UserServices"
init-method="init" destroy-method="destory">
</bean>
UserServices.java
@Resource
public void setImpl(IUserDAO impl) {
this.impl = impl;
}
默认注入方式是ByType,如果想指定名字则:
UserServicesTest.java
public void testSave() {
ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml");
UserServices ud = (UserServices)ctx.getBean("userservice");
//UserServices ud1 = (UserServices)ctx.getBean("userservice");
System.out.println(ud.getImpl());
User u = new User();
ud.save(u);
ctx.destroy();
}
测试结果:
user saved 测试成功