Spring Annotation

一、使用方法一:

       1、首先定义两个要使用的类

public interface UserDao{

public void save(Object object);

}

 

public class UseraoImpl implements UserDao{

public void save(){

System.out.println("save user ....");

}

}

    2、在bena.xml的配置文件中添加一个bean标签,例如以下  

<beans ....... >

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

  <bean id="u1" class="com.zzf.dao.impl.UserDaoImpl"> </bean>

</beans>

    3、在需要使用u的类型的的类中添加注解,例如

public class UserService{

private UserDao userDao;

 

@Resource(name="u")

public void setUserDao(UserDao userDao){

this.userDao = userDao;

}

 

public void add(User user){

userDao.save(user);

}

/**

* 前提:

* 1、在bean.xml的配置文件中的UserDaoImpl对象 "u" 的类型是UserDao,也就是说UserDaoImpl是UserDao的子类

* 或者UserDaoImpl实现了UserDao接口

* 2、在Service类中必须声明UserDao的对象,就像本例子中的private UserDao userDao;并且提供set方法

* 3、在userDao的set方法上写上注解@Resource(name="u")//(name="u"):不是必须的,在spring的注解机制中

* Resource是按照类型进行匹配的,只有在bean.xml的配置文件中配置有两个相同类型且都满足时UserDao类型

* 的id属性,如上例u、u2,时才在注解后添加name="u".

*/

 

}


二、使用方法二

第二种使用时方法是在bean.xml配置文件中UserDaoImpl 的id 属性值u、u2也不手写让其自动扫描,配置方法是:

1、在配置方法中

<beans ....... >

<!-- 自动扫描不在手写,所以把没有用的u以及u2全部注释掉

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

  <bean id="u1" class="com.zzf.dao.impl.UserDaoImpl"> </bean>

-->

<!-- 让容器帮我们自动扫面,当然要使其自动扫描就应该为容器制定一个扫描范围,如下面定义的com.zzf -->

<context:component-scan base-package="com.zzf" />

</beans>

 

2、配置文件中添加过自动扫描机制之后就应在提供id的类中添加注解@component(”beanName“) //beanName相当于上例中的u或者u2.

public interface UserDao{

public void save(Object object);

}

 

@component("userDao")//注意是写在类上面不是方法上面的哦!!!!!

public class UseraoImpl implements UserDao{

public void save(){

System.out.println("save user ....");

}

}

 

3、在UserService类中不变

public class UserService{

private UserDao userDao;

 

@Resource(name="userDao")

public void setUserDao(UserDao userDao){

this.userDao = userDao;

}

 

public void add(User user){

userDao.save(user);

}

/**

* 调用流程:

在执行UserService类中的add(user)方法时,因为使用到了@Resource的userDao,所以容器就会去扫描com.zzf包下的类。当扫描到类UseraoImpl时,发现他的"头"上有一个component("userDao"),而且名称(首先对比名称)、类型都和需要的一致,这时就会拿到这个userDao用户正要使用的类中。

*/

 

}

注意在spring2.5.6中等同于@component的注解的有:@Repository 、@service、@Controller

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值