spring依赖注入中接口的问题

问题描述:一个接口,有俩个实现类当注入时候名字不同时,会出现不同的情况

action层:

 1 @Controller("userAction")
 2     @Scope("prototype")
 3     public class UserAction extends ActionSupport implements ModelDriven<User>{
 4         private User user;
 5         private IUserService userService;
 6 
 7         public IUserService getUserService() {
 8             return userService;
 9         }
10 
11         @Resource
12         public void setUserService(IUserService userService) {
13             this.userService = userService;
14         }
15 
16 
17         public User getUser() {
18             return user;
19         }
20 
21         public void setUser(User user) {
22             this.user = user;
23         }
24         //model
25         public User getModel() {
26             if(user == null) {
27                 user = new User();
28             }
29             return user;
30         }
31         //列表
32         public String list(){
33             List<User> us = userService.listAllUser();
34             ActionContext.getContext().put("us", us);
35             return SUCCESS;
36         }
37         
38     }

接口层

public interface IUserService {
        public List<User> listAllUser();
    }

实现类

(一)

@Service("userService")
    public class UserService1 implements IUserService {    
        public List<User> listAllUser() {
            System.out.println("user1-------------------------");
            return null;
        }
    }

(二)

@Service("aaa")
    public class UserService2 implements IUserService {
        public List<User> listAllUser() {
            System.out.println("user2-------------------------");
            return null;
        }
    }

(三)

@Service("bbb")
    public class UserService3 implements IUserService {        
        public List<User> listAllUser() {
            System.out.println("user3-------------------------");            
            return null;
        }
    }

(四)

@Service("bbb")
    public class UserService4 implements IUserService {        
        public List<User> listAllUser() {
            System.out.println("user4-------------------------");            
            return null;
        }
    }

情况一:当实现类为(一)和其他实现类的时候,只实现(一)
  注意:此时 @Service("userService")和action中private IUserService userService名字一样
情况二:当实现类为(二)和(三)的时候,报错
  No unique bean of type [com.fly.service.IUserService] is defined: expected single matching bean but found 2: [aaa, bbb]
情况三:当实现类为(四)和(三)的时候,启动服务就报错
情况四:当实现类只有一个的时候,正常执行

转载于:https://www.cnblogs.com/myhusky/p/5382710.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值