目录
UML类图
AppConfig.java
@Configuration
@ComponentScan
public class AppConfig{
}
UserService.java
package com.qingyuan.demo.service;
public interface UserService {
public void add();
}
第一种处理方式:@Primary
使用@Primary,只能定义一个@Primary
UserServiceNormal.java
@Component
@Primary
public class UserServiceNormal implements UserService {
public void add() {
System.out.println("添加用户。。。");
}
}
UserServiceFestival.java
@Component
public class UserServiceFestival implements UserService {
public void add() {
System.out.println("注册成功,发放节日优惠券");
}
}
UserServiceTest.java
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = AppConfig.class)
public class UserServiceTest {
@Autowired
private UserService userService;//(走Primary)
@Autowired
private UserServiceFestival userServiceFestival;
@Test
public void Test(){
userService.add();
userServiceFestival.add();
}
}
Output:
添加用户。。。
注册成功,发放节日优惠券
第二种处理方式:@Qualifier("name")
使用限定符,在声明和装配的时候都使用限定符@Qualifier("name")
UserServiceNormal.java
@Component
@Qualifier("normal") //2
public class UserServiceNormal implements UserService {
public void add() {
System.out.println("添加用户。。。");
}
}
UserServiceFestival.java
@Component
@Qualifier("festival") //2
public class UserServiceFestival implements UserService {
public void add() {
System.out.println("注册成功,发放节日优惠券");
}
}
UserServiceTest.java
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = AppConfig.class)
public class UserServiceTest {
@Autowired
@Qualifier("normal")
private UserService userService;
@Test
public void Test(){
userService.add();
}
}
Output:
添加用户。。。
第三种处理方式:@Qualifier("name")
只在装配的时候使用限定符@Qualifier,声明的时候,系统默认指定ID为类名的首字母小写。
UserServiceNormal.java
@Component
public class UserServiceNormal implements UserService {
public void add() {
System.out.println("添加用户。。。");
}
}
UserServiceFestival.java
@Component
public class UserServiceFestival implements UserService {
public void add() {
System.out.println("注册成功,发放节日优惠券");
}
}
UserServiceTest.java
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = AppConfig.class)
public class UserServiceTest {
@Autowired
@Qualifier("userServiceFestival")
private UserService userService;
@Test
public void Test(){
userService.add();
}
}
Output:
注册成功,发放节日优惠券