@Resource注解代替spring @Autowire、@Qualifier

概述

@Resource 注解代替spring @Autowire、@Qualifier

@Resource说明

@Resource与@Autowire区别

例子

UserDao

@Repository
public class UserDao implements IUserDao {
    public UserDao(){
        System.out.println("UserDao默认构造方法!");
    }
    public void save(String username,String password){
        System.out.println("UserDao 保存 "+username+","+password+" 成功!");
    }
}

UserDao2

@Repository
public class UserDao2 implements IUserDao {
    public UserDao2(){
        System.out.println("UserDao2默认构造方法!");
    }
    public void save(String username,String password){
        System.out.println("UserDao2 保存 "+username+","+password+" 成功!");
    }
}

UserSrvImpl

@Service
public class UserSrvImpl implements IUserService {
    @Resource("userDao") //注入 UserDao 类对象
    private IUserDao dao;

    public UserSrvImpl(){
        System.out.println("UserSrvImpl构造方法");
    }
    public void save(String username,String password){
        dao.save(username,password);
    }
}

如果要注入 UserDao 类对象,注解为:@Resource("userDao")

如果要注入 UserDao2 类对象,注解为:@Resource("userDao2")

执行

public class Main {
    public static void main(String[] args) {
        ApplicationContext ac=new ClassPathXmlApplicationContext("spring.xml");

        IUserService srv=(IUserService)ac.getBean("userSrvImpl");
        srv.save("lilei","123456");
    }
}

执行结果:

UserDao默认构造方法!
UserDao2默认构造方法!
UserSrvImpl构造方法
UserDao 保存 lilei,123456 成功!

原文出处:/show_1IX27x09kzI.html