ruoyi前后端分离框架是怎么做到不写实现类,bean依赖注入的?-灵析社区

超好看鸭

最近在学习java,ruoyi框架模仿com.ruoyi.framework.config.MybatisConfig,我的方法会报错显示无法自动装配。找不到 'DataSource' 类型的 Bean。但他的我也没看到有写实体类这是怎么做到的? 图一是ruoyi的 ![image.png](https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20250103/1c646e70f67ae75710caae702a990db3.png) 图二是我的 ![image.png](https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20250103/583bfade3c7515aa11533f802c53ee06.png)

阅读量:412

点赞量:4

问AI
看DruidConfig.java: /** * druid 配置多数据源 * * @author ruoyi */ @Configuration public class DruidConfig { @Bean @ConfigurationProperties("spring.datasource.druid.master") public DataSource masterDataSource(DruidProperties druidProperties) { DruidDataSource dataSource = DruidDataSourceBuilder.create().build(); return druidProperties.dataSource(dataSource); } @Bean @ConfigurationProperties("spring.datasource.druid.slave") @ConditionalOnProperty(prefix = "spring.datasource.druid.slave", name = "enabled", havingValue = "true") public DataSource slaveDataSource(DruidProperties druidProperties) { DruidDataSource dataSource = DruidDataSourceBuilder.create().build(); return druidProperties.dataSource(dataSource); } @Bean(name = "dynamicDataSource") @Primary public DynamicDataSource dataSource(DataSource masterDataSource) { Map targetDataSources = new HashMap(); targetDataSources.put(DataSourceType.MASTER.name(), masterDataSource); setDataSource(targetDataSources, DataSourceType.SLAVE.name(), "slaveDataSource"); return new DynamicDataSource(masterDataSource, targetDataSources); } ... } 上面两个方法注入了两个DataSource类型的bean,下面的候选bean注明了只有在配置文件属性里spring.datasource.druid.slave设置为enabled才会注入,这样一来容器里默认的就是这个主数据源的bean了(不过这不是重点),spring容器会在@Configuration配置类的方法需要注入bean参数的时候自动在容器里找相同类型的bean注入。