Spring2.5之Annotation学习1

一、   开始使用annotation 配置Spring 首先需要在 springxml 配置文件中加入下列部分 的代码。

<? 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:annotation-config/>

</ beans >
 

 

 

这样当 spring 加载配置文件时,发现有 <context:annotation-config/> 标签后,会帮我加载以下四个类(用于处理 annotation

      1AutowiredAnnotationBeanPostProcessor,

2CommonAnnotationBeanPostProcessor,

3PersistenceAnnotationBeanPostProcessor,

      4RequiredAnnotationBeanPostProcessor

 

二、   @Autowired @Qualifier

还是需要在 xml 文件中配置 bean

(一)  @Autowired

位置 : 可以放在成员属性前面,也可以放在 gettersetter 方法前面,但是建议放在 setter 方法前面

作用: 表示该对应的成员属性可以完成自动配置功能 ( 默认是根据 byType)

例如:

xmp 配置文件:


前缀部分见上面代码,以此略。。。

< bean id = "u" class = "com.wjt276.dao.impl.UserDaoImpl" > </ bean >  

  < bean name = "userService" class = "com.wjt276.service.UserService" > </ bean >   
 

 

userService

public class UserService { 

    private UserDao userDao = new UserDaoImpl();

    public UserDao getUserDao() { return userDao ;}

 

// 表示该成员属性可以自动装配 ( 默认根据类型 byType)

//annotation 建议放在 setter 方法前面

    @Autowired

    public void setUserDao(UserDao userDao) {

       this . userDao = userDao;

    }

    public void add(User u){

       userDao .save(u);

    }}

说明: 这样 spring 就可以帮我们完成自动装配功能 ( 默认是根据 byType) 
 

 

 

(二)  @Qualifier

因为 @Autowired 默认是根据 byType 来自动装配注入的。当有多个相同类型的 bean 时, Spring 就会出现异常,提示找到多个符合条件的 bean ,但是不知道选择哪个 bean 来注入。

这时我们需要另外一注解来告诉 Spring 用那个 bean ,这就是 @Qualifier 注解 , @Qualifier 使用 value 参数来指定注入那个 bean

代码:


public class UserService {

    private UserDao userDao = new UserDaoImpl();

    public UserDao getUserDao() { return userDao ;

    }

    // 表示该成员属性可以自动装配 ( 默认根据类型 byType)

    // 当配置文件中有多个相同类型的 bean 时,需要使用 @Qualifier 注解来说明那个 bean 来自动装配

    @Autowired

    public void setUserDao( @Qualifier(value="u") UserDao userDao) {

       this . userDao = userDao;

    }

    public void add(User u){ userDao .save(u);}

} 
 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值