gpt4 book ai didi

java - 仅在重构包名称之后,才考虑在配置中定义 * 类型的 bean

转载 作者:行者123 更新时间:2023-12-01 17:47:09 24 4
gpt4 key购买 nike

这段代码一直工作得很好,我只是重构了包名称,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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com