Spring Bean 如何设置为默认 Bean?
在Spring框架中,我们可以使用@Primary
注解来设置默认的Bean。这个注解可以用在类上或者@Bean注解的方法上。
假设我们有两个实现了同一接口的类,比如接口Animal
有两个实现类Dog
和Cat
,在自动装配的时候,Spring如果不知道应该装配哪一个,就会抛出异常。为了解决这个问题,我们可以用@Primary
来指定默认的实现类。
例如:
@Primary
@Component
public class Dog implements Animal {
//...
}
在此例中,如果Spring需要一个Animal类型的Bean,它会默认使用Dog,即使Cat也实现了Animal接口。
如果你想在特定的情况下使用特定的Bean,你可以使用@Qualifier
注解。例如:
@Autowired
@Qualifier("cat")
private Animal animal;
在这种情况下,虽然Dog是默认的Animal,但是在这个特定的注入点,Spring会使用名为”cat”的Bean。