注入属性Autowire和Qualifier

@Autowire根据属性类型注入

使用:

在server包使用注解@server创建对象

在dao包使用注解@Repository创建对象

在dao包使用注解@Autowire装载server包对象

具体实现:

  1. 在server包创建UserServer类,并加注解@server
  2. 在dao包创建UserDao接口和UserDaoImpl实现类,在实现类加注解@Repository
  3. 在server包的UserServer类中引入UserDao类,并加注解@Autowire
  4. 在xml中配置识别注解的标签
  5. 测试

代码:

  1. dao层
//接口
package com.guodaxia.spring5.dao;
public interface UserDao {
void add();
}
//实现类
package com.guodaxia.spring5.dao;
import org.springframework.stereotype.Repository;
@Repository
public class UserDaoImpl implements UserDao{
@Override
public void add() {
System.out.println("dao ing .....");
}
}
  1. server层
package com.guodaxia.spring5.service;
import com.guodaxia.spring5.dao.UserDao;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class UserService {
//重点关注!!!!!
@Autowired
private UserDao userDao;
public void test(){
System.out.println("service ing,,,,,");
userDao.add();
}
}
  1. 测试层
@Test
public void testService(){
ApplicationContext context =
new ClassPathXmlApplicationContext("bean.xml");
UserService userService = context.getBean("userService", UserService.class);
System.out.println(userService);
userService.test();
}

一个接口有多个实现类,@Autowire根据类型注入,如果实现类类型一样,则无法判别是要实现那个实现类,所以有了@Qualifier注解

@Qualifier根据属性名称注入

  • 很简单,在上文代码的基础上,在UserServer类中引入UserDao类时,再加上一个注解@Qualifier;
  • 并且在server包和dao包的实现类上的注解加个相同的value值即可,好比id匹配具体哪个实现类。
posted @   gdxstart  阅读(51)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示