Bean依赖注入的注解,主要是使用注解的方式替代xml的 < property> 标签完成属性的注入操作
Spring主要提供如下注解,用于在Bean内部进行属性注入的:
// 方式一
@Value("haohao")
private String username;// 方式二
@Value("haohao")
public void setUsername(String username){System.out.println(username);
}
加载properties文件
// 方式一
@Value("${jdbc.username}")
private String username;// 方式二
@Value("${jdbc.username}")
public void setUsername(String username){System.out.println(username);
}
// 使用在属性上直接注入
@Autowired
private UserDao userDao;// 使用在方法上直接注入
@Autowired
public void setUserDao(UserDao userDao){System.out.println(userDao);
}// 使用在方法上直接注入,可以注入同一类型的多个bean,例如userDao、userDao2...
@Autowired
public void yyy(List userDaoList){System.out.println(userDaoList);
}
当容器中同一类型的Bean实例有多个时,会尝试自动根据名字进行匹配:
// 匹配当前Bean
@Repository("userDao")
public class UserDaoImpl implements UserDao{}@Repository("userDao2")
public class UserDaoImpl2 implements UserDao{}
@Autowired
@Qualifier("userDao2")
private UserDao userDao;@Autowired
@Qualifier("userDao2")
public void setUserDao(UserDao userDao){System.out.println(userDao);
}
@Resource
private UserDao userDao;@Resource(name = "userDao2")
public void setUserDao(UserDao userDao){System.out.println(userDao);
}
PS:@Resource注解存在与 javax.annotation 包中,Spring对其进行了解析
上一篇:收集关于部队或参军的诗,