NULL_8757512 2008-07-28 23:16
浏览 274
已采纳

Spring自动进行Service的loc?

我现在写好的Dao层,在做Service 也就是业务层吧。
我定义了一个userService(接口),和一个userServiceimpl(实现类)
在applicationContext.xml里面只是定义了userServiceimpl的bean
[code="xml"]
class="com.downloadmanage.service.impl.userServerImpl">





[/code]
剩下关于Dao和datesouce 以及SessionFactory的bean没有给出

我再做Junit测试时候
[code="java"]
public class userServiceImplTest extends
AbstractDependencyInjectionSpringContextTests {
private userService userService;

@Override
protected String[] getConfigLocations() {
    return new String[]{"applicationContext.xml"};
}   
public void testAddDisc(){
    System.out.println("run addDisc");
    DiscTable disc = new DiscTable();
    disc.setDiscNumber("M16");
    userService.addDisc(disc);
    System.out.println("Finished");
}
public void setUserService(userService userService) {
    this.userService = userService;
}   

}
[/code]
仅仅给出了userService的seter方法。
这个Junit是可以编译过去,不过我就是很纳闷
既然我applicationContext.xml配置的只有userServiceImpl而没有userService,那Spring怎么找到是userServiceImpl实现了userService了呢?要是我再弄一个userServiceimpl2也实现了userService接口 Spring怎么找呢?

  • 写回答

3条回答 默认 最新

  • lggegegmail 2008-07-29 09:24
    关注

    The AbstractDependencyInjectionSpringContextTests classes uses autowire by type.
    Thus if you have multiple bean definitions of the same type, you cannot rely on this approach for those particular beans.

    原来是autowire by type. [汗, 平时都没注意]
    第二句话: 如果有多个bean定义的是相同类型,就不能使用这种方法来使用beans.

    所以, 多个impl, 将不会注入.

    LZ可以试下.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 c++的教材订购系统的订购模块显示运行不出来
  • ¥15 Coze智能助手搭建过程中的问题请教
  • ¥15 12864只亮屏 不显示汉字
  • ¥20 三极管1000倍放大电路
  • ¥15 vscode报错如何解决
  • ¥15 前端vue CryptoJS Aes CBC加密后端java解密
  • ¥15 python随机森林对两个excel表格读取,shap报错
  • ¥15 基于STM32心率血氧监测(OLED显示)相关代码运行成功后烧录成功OLED显示屏不显示的原因是什么
  • ¥100 X轴为分离变量(因子变量),如何控制X轴每个分类变量的长度。
  • ¥30 求给定范围的全体素数p的(p-2)/p的连乘积值