配置类1主数据库的配置类,需要添加@Primary注解,以提升优先级
时间: 2025-01-04 17:38:32 浏览: 6
在Spring框架中,`@Primary` 注解用于标记一个bean作为某个类型的首选实例。当你在应用中有多個同名的bean,而它们都实现了同一个接口或者配置了相同的bean id,那么Spring会自动查找带有 `@Primary` 的bean来作为默认的、最主要的实例。
例如,如果你有一个数据库连接配置类,如 `DatabaseConfig`,并且有两个实现该接口的bean,一个是使用主数据库的配置,另一个可能是备份数据库的配置。在主数据库配置类上添加 `@Primary` 注解,表示这个bean应该是 Spring 容器中管理的主数据库配置,当需要获取数据库连接时,通常会优先使用这个配置。
```java
@Configuration
@Component
@Profile("production") // 如果有环境依赖,可以添加此注解指定特定环境
public class PrimaryDatabaseConfig implements DatabaseConfig {
@Autowired
private Environment env; // 使用环境变量来获取数据库信息
@Bean(qualifier = "primaryDB", primary = true) // 指定主数据源的bean id
@Override
public DataSource getDataSource() {
// 主数据库的具体配置...
return new DataSourceBuilder().build();
}
// 其他配置方法...
}
```
阅读全文