添加@Autowired注解
package cn.com.myFrame.spring.autowire;
import org.springframework.beans.factory.annotation.Autowired;
public class Chinese {
@Autowired
private Dog dog=new Dog();
public Dog getDog() {
return dog;
}
public void setDog(Dog dog) {
this.dog = dog;
}
}
(2):在spring文件中加入AutowiredAnnotationBeanPostProcessorBean
<?xml version="1.0" encoding="UTF-8" ?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
<bean class="org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor"/>
<bean id="chinese" class="cn.com.myFrame.spring.autowire.Chinese"/>
<bean id="dog" class="cn.com.myFrame.spring.autowire.Dog">
<property name="name">
<value>sbDog</value>
</property>
</bean>
</beans>
,防止xml中有多个注入类型的定义
package cn.com.myFrame.spring.autowire;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
public class Chinese {
@Autowired
@Qualifier("dog1")
private Dog dog=new Dog();
public Dog getDog() {
return dog;
}
public void setDog(Dog dog) {
this.dog = dog;
}
}
xml中有多个Dog的声明
<?xml version="1.0" encoding="UTF-8" ?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
<bean class="org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor"/>
<bean id="chinese" class="cn.com.myFrame.spring.autowire.Chinese"/>
<bean id="dog" class="cn.com.myFrame.spring.autowire.Dog">
<property name="name">
<value>sbDog</value>
</property>
</bean>
<bean id="dog1" class="cn.com.myFrame.spring.autowire.Dog">
<property name="name">
<value>2bDog</value>
</property>
</bean>
</beans>
3:@Resource(name = "dog1")
package cn.com.myFrame.spring.autowire;
import javax.annotation.Resource;
public class Chinese {
@Resource(name = "dog1")
private Dog dog=new Dog();
public Dog getDog() {
return dog;
}
public void setDog(Dog dog) {
this.dog = dog;
}
}
这里添加的是 CommonAnnotationBeanPostProcessor
<?xml version="1.0" encoding="UTF-8" ?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
<bean class="org.springframework.context.annotation.CommonAnnotationBeanPostProcessor"/>
<bean id="chinese" class="cn.com.myFrame.spring.autowire.Chinese"/>
<bean id="dog" class="cn.com.myFrame.spring.autowire.Dog">
<property name="name">
<value>sbDog</value>
</property>
</bean>
<bean id="dog1" class="cn.com.myFrame.spring.autowire.Dog">
<property name="name">
<value>2bDog</value>
</property>
</bean>
</beans>
4:<context:annotationconfig/> 将隐式地向 Spring 容器注册 AutowiredAnnotationBeanPostProcessor、CommonAnnotationBeanPostProcessor、 PersistenceAnnotationBeanPostProcessor 以及 equiredAnnotationBeanPostProcessor 这 4 个 BeanPostProcessor。
需要注意添加相应的命名空间
<?xml version="1.0" encoding="UTF-8" ?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/context
">
5:@Component 注释 从 XML 配置文件中完全移除 Bean 定义的配置
package cn.com.myFrame.spring.autowire;
import javax.annotation.Resource;
import org.springframework.stereotype.Component;
@Component
public class Chinese {
@Resource(name = "dog")
private Dog dog=new Dog();
public Dog getDog() {
return dog;
}
public void setDog(Dog dog) {
this.dog = dog;
}
}
Spring 容器必须启用类扫描机制以启用注释驱动 Bean 定义和注释驱动 Bean 自动注入的策略 <context:component-scan/>
<?xml version="1.0" encoding="UTF-8" ?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-2.5.xsd">
<context:component-scan base-package="cn.com.myFrame.spring.autowire"/>
</beans>
Spring 在 2.1 以后对注释配置提供了强力的支持,注释配置功能成为 Spring 2.5 的最大的亮点之一。合理地使用 Spring 2.5 的注释配置,可以有效减少配置的工作量,提高程序的内聚性。但是这并不意味着传统 XML 配置将走向消亡,在第三方类 Bean 的配置,以及那些诸如数据源、缓存池、持久层操作模板类、事务管理等内容的配置上,XML 配置依然拥有不可替代的地位
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- igbc.cn 版权所有 湘ICP备2023023988号-5
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务