@Qualifier
public class QuaBean {
private String name;
public QuaBean(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class QuaConfig {
@Bean
public QuaBean quaBeanA() {
return new QuaBean("a");
}
@Bean
public QuaBean quaBeanB() {
return new QuaBean("b");
}
}
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@SpringBootApplication
@RestController
public class QuaApp {
public static void main(String[] args) {
SpringApplication.run(QuaApp.class, args);
}
@Autowired
@Qualifier("quaBeanA")
QuaBean bean;
@GetMapping("/qua")
public String testGetBean() {
System.out.println(bean.getName());
return "";
}
}
自定义限定注解
public class AnimalBean {
private String name;
public AnimalBean(String name) {
super();
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import org.springframework.beans.factory.annotation.Qualifier;
@Target({ ElementType.FIELD, ElementType.METHOD })
@Retention(RetentionPolicy.RUNTIME)
@Qualifier
public @interface AnimalQualifier {
String type();
}
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class CustomConfig {
@Bean
@AnimalQualifier(type = "person")
public AnimalBean personBean() {
return new AnimalBean("angus");
}
@Bean
@AnimalQualifier(type = "cat")
public AnimalBean catBean() {
return new AnimalBean("tom");
}
}
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@SpringBootApplication
@RestController
public class CustomApp {
public static void main(String[] args) {
SpringApplication.run(CustomApp.class, args);
}
@Autowired
@AnimalQualifier(type = "person")
private AnimalBean person;
@GetMapping("/cus")
public String getAnm() {
System.out.println(person.getName());
return "";
}
}