Spring Bean 如何设置为默认 Bean?

在Spring框架中,我们可以使用@Primary注解来设置默认的Bean。这个注解可以用在类上或者@Bean注解的方法上。

假设我们有两个实现了同一接口的类,比如接口Animal有两个实现类DogCat,在自动装配的时候,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。

发表评论

后才能评论