七、@Resource属性注解的使用

1、实例:EmployeeService的bean对象中配置sessionFactory属性:
方法1:
(1)EmployeeService.java中写法(属性和set方法):
 private SessionFactory sessionFactory;
 public void setSessionFactory(SessionFactory sessionFactory) {
        this.sessionFactory = sessionFactory;
 }
(2)spring容器中的配置信息如下:
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
        <!-- 设置数据源 -->
        <property name="dataSource" ref="dateSource"/>
        <!-- 接管Hibernate对象映射文件 -->
        <property name="mappingResources">
            <list>
                <value>com/zjb/domain/Employee.hbm.xml</value>
            </list>
        </property>
        <property name="hibernateProperties">
            <value>
                hibernate.dialect=org.hibernate.dialect.OracleDialect
                hibernate.hbm2ddl.auto=update
                hibernate.show_sql=true
                hibernate.format_sql=true
            </value>
        </property>
    </bean>
    <bean id="employeeService" class="com.zjb.service.imp.EmployeeService">
        <property name="sessionFactory" ref="sessionFactory"/>//EmployeeService的sessionFactory属性的注入依赖sessionFactory bean的注入
    </bean>

(3)在spring容器及applicationContext.xml中启用注解扫描机制:
    <context:annotation-config/>
方法2:
 (1)EmployeeService.java中写法:

   //当给属性增加了@Resource注解之后,spring就会启动注解的方式注入我们的属性值 sessionFactory 
     @Resource
     private SessionFactory sessionFactory;

     public void setSessionFactory(SessionFactory sessionFactory) {
          this.sessionFactory = sessionFactory;
     }
(2)spring容器中的配置信息如下:
    <bean id="employeeService" class="com.zjb.service.imp.EmployeeService"/>

(3)在spring容器及applicationContext.xml中启用注解扫描机制:
    <context:annotation-config/>

2、@Resource有一个‘name’属性
注解提供的名字将被BeanFactory解析为 bean 名。缺省时,Spring 将这个值解释为要注射的 bean 的名字。前提是遵循by-name的语法。如果没有显式地给出名字,缺省的名字将继承于字段名或者 setter 方法名:如果是字段名,它将简化或者等价于字段名;如果是 setter 方法名,它将等价于 bean 属性名。下面这个例子使用名字 "movieFinder" 注射到它的 setter 方法:
public class SimpleMovieLister {
    private MovieFinder movieFinder;

    @Resource
    public void setMovieFinder(MovieFinder movieFinder) {
        this.movieFinder = movieFinder;
    }
}

 

posted @ 2017-09-24 16:06  爱笑的berg  阅读(1660)  评论(0)    收藏  举报