这段代码一直工作得很好,我只是重构了包名称,spring 上下文不能再注入(inject)这个 bean。 顺便说一句,我确信新的包名称仍然与 @ComponentScan 范围匹配
@Repository("tenantsConfigRepository")
public interface TenantsConfigRepository extends JpaRepository<TenantsConfig, Long> {
public TenantsConfig deleteByName(String name);
}
@Service
public class TenantsConfigService {
TenantsConfigRepository tenantsConfigRepository;
@Autowired
public TenantsConfigService(TenantsConfigRepository tenantsConfigRepository) {
this.tenantsConfigRepository = tenantsConfigRepository;
}
public List<TenantsConfig> findAll() {
return tenantsConfigRepository.findAll();
}
public Optional<TenantsConfig> find(long id) {
return tenantsConfigRepository.findById(id);
}
public void saveOrUpdate(TenantsConfig tenantsConfig) {
tenantsConfigRepository.save(tenantsConfig);
}
public void delete(TenantsConfig tenantsConfig) {
tenantsConfigRepository.delete(tenantsConfig);
}
public void deleteByName(String name) {
tenantsConfigRepository.deleteByName(name);
}
}
应用程序无法启动并打印此文本
***************************
APPLICATION FAILED TO START
**************************
Description:
Parameter 0 of constructor in com.example.admin.service.TenantsConfigService required a bean named 'entityManagerFactory' that could not be found.
Action:
Consider defining a bean named 'entityManagerFactory' in your configuration.
最佳答案
感谢大家的回复,我明白了,我正在使用配置类中的数据源,这些配置的范围仅限于用于特定的包,我只是更改了basePackages
属性以匹配新的包名称。
@Configuration
@EnableJpaRepositories(basePackages = "com.example.admin", entityManagerFactoryRef = "adminEntityManager", transactionManagerRef = "adminTransactionManager")
和
em.setPackagesToScan("com.example.admin.entity");
em 指的是 EntityManager
关于java - 仅在重构包名称之后,才考虑在配置中定义 * 类型的 bean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60849044/