Spring5框架学习:IOC操作Bean管理-基于注解方式(属性注入)(十一)

基于注解方式实现属性注入

(1)@Autowired:根据属性类型进行自动装配(xml byType)
第一步:把service和dao对象创建,在service和dao类添加创建对象注解(xml byName)
第二步:在service注入dao对象,在service类添加dao类型属性,在属性上面使用注解 (可以根据类型也可以根据名称)

@Repository
public class UserDaoImpl implements UserDao{

    @Override
    public void add() {
        System.out.println("dao add .....");
    }
}
@Service
public class UserService {

    //定义dao类型属性
    //不需要添加set方法
    //添加注入属性注解
    @Autowired//根据类型注入
    private UserDao userDao;

    public void add(){
        System.out.println("service add .....");
        userDao.add();
    }
}

(2)@Qualifier:根据名称进行注入
这个@Qualifier注解的使用,和上面@Autowired一起使用

@Repository("userDaoImplTe")
public class UserDaoImpl implements UserDao{

    @Override
    public void add() {
        System.out.println("dao add .....");
    }
}
@Service
public class UserService {

    //定义dao类型属性
    //不需要添加set方法
    //添加注入属性注解
    @Autowired  //根据类型注入
    @Qualifier(value = "userDaoImplTe") //根据名称(value)进行注入
    private UserDao userDao;

    public void add(){
        System.out.println("service add .....");
        userDao.add();
    }
}

(3)@Resource:可以根据类型注入,可以根据名称注入
非spring注解,java扩展包注解

@Service
public class UserService {

    //定义dao类型属性
    //不需要添加set方法
    //添加注入属性注解
//    @Autowired  //根据类型注入
//    @Qualifier(value = "userDaoImplTe") //根据名称(value)进行注入

    //@Resource   //默认 没有定义 name值时 根据类型注入
    @Resource(name = "userDaoImplTe")   // name有值时 根据名称注入
    private UserDao userDao;

    public void add(){
        System.out.println("service add .....");
        userDao.add();
    }
}

(4)@Value:注入普通类型属性

@Service
public class UserService {

    //定义dao类型属性
    //不需要添加set方法
    //添加注入属性注解
//    @Autowired  //根据类型注入
//    @Qualifier(value = "userDaoImplTe") //根据名称(value)进行注入

    @Value(value = "hello")
    private String str;

    //@Resource   //默认 没有定义 name值时 根据类型注入
    @Resource(name = "userDaoImplTe")   // name有值时 根据名称注入
    private UserDao userDao;

    public void add(){
        System.out.println("service add ....."+str);
        userDao.add();
    }
}

执行结果:

com.spring5.service.UserService@184cf7cf
service add .....hello
dao add .....
暂无评论

发送评论 编辑评论


				
上一篇
下一篇