@resource、@Autowired、@Service在一个接口多个实现类中的应用
2017-07-24 19:34
363 查看
Spring在没有引入注解之前,传统的Spring做法是使用.xml文件来对bean进行注入,所有的内容都需要配置在.xml文件中,使配置和编程分离,却增加了可读性和复杂度。
Spring注解将复杂的配置文件用简单@xxx代替,当出现一个接口多个实现类的时候,究竟是用的哪个实现类呢?
示例代码:
public interface DataDao{
}
@Service
public class ImgDataDao implements DataDao{
}
@Service
public class PayDataDao implements DataDao{
}
public class TestCase{
@Resource
private DataDao imgDataDao;
@Resource
private DataDao payDataDao;
}
1)利用@Service注解自动将类ImgDataDao和类PayDataDao注解为bean,id为imgDataDao和payDataDao,即类ImgDataDao和类PayDataDao的第一个字母小写的id。
2)@Resource按byName自动注入,@Autowired按byType自动注入;
3)@Resource可用@Autowired替换
4)当不想用默认的imgDataDao和payDataDao----id命名时,可用变为如下:
@Resource(name="imgDataDao")
private
DataDao xx;
或者:
@Autowired
@Qualifier("imgDataDao")
private DataDao yy;
Spring注解将复杂的配置文件用简单@xxx代替,当出现一个接口多个实现类的时候,究竟是用的哪个实现类呢?
示例代码:
public interface DataDao{
}
@Service
public class ImgDataDao implements DataDao{
}
@Service
public class PayDataDao implements DataDao{
}
public class TestCase{
@Resource
private DataDao imgDataDao;
@Resource
private DataDao payDataDao;
}
1)利用@Service注解自动将类ImgDataDao和类PayDataDao注解为bean,id为imgDataDao和payDataDao,即类ImgDataDao和类PayDataDao的第一个字母小写的id。
2)@Resource按byName自动注入,@Autowired按byType自动注入;
3)@Resource可用@Autowired替换
4)当不想用默认的imgDataDao和payDataDao----id命名时,可用变为如下:
@Resource(name="imgDataDao")
private
DataDao xx;
或者:
@Autowired
@Qualifier("imgDataDao")
private DataDao yy;
相关文章推荐
- Autofac在项目中应用的体会,一个接口多个实现的情况
- Autofac在项目中应用的体会,一个接口多个实现的情况
- Autofac在项目中应用的体会,一个接口多个实现的情况
- 一个@Autowired如何对应多个@service注解
- Spring注解@Component、@Repository、@Service、@Controller @Resource、@Autowired、@Qualifier 解析
- @Autowired注解、@Resource注解和@Service注解
- Android实训案例(七)——四大组件之中的一个Service初步了解,实现通话录音功能,抽调接口
- Spring注解@Component、@Repository、@Service、@Controller @Resource、@Autowired、@Qualifier、@scope
- Spring MVC @Autowired、@Controller、@Service 的实现
- @Autowired、@Resource和@Qualifier的应用
- 理解@Autowired,@Service,@Resource注解
- Python实现对一个函数应用多个装饰器的方法示例
- spring:@Autowired注解、@Resource注解和@Service注解
- spring 常用注解关系(@Component,@Controller,@Service,@Repository,@Autowired,@Resource),@Qualifier
- 如何实现一个只有广播和service的android应用没有activity
- @Resource引用一个bean时,为什么要声明接口而不是实现类?
- @Autowired、@Resource和@Qualifier的应用
- Java学习笔记--解决一个类实现多个接口的问题
- Spring5:@Autowired注解、@Resource注解和@Service注解
- 使用Spring的@Autowired 实现DAO, Service, Controller三层的注入(转)