我有配置文件:
@Configuration
public class UrlAnalyzerConfiguration {
@Bean
@Qualifier("usersDatabase")
public File getUsersDatabaseFile() {
return Paths.get("src/main/resources/database/users.csv").toFile();
}
@Bean
@Qualifier("urlsDatabase")
public File getUrlsDatabaseFile() {
return Paths.get("src/main/resources/database/urls.csv").toFile();
}
}
和测试配置:
@TestConfiguration
public class TestConfig {
@Bean
@Qualifier("usersDatabase")
public File getUsersDatabaseTestFile() {
return Paths.get("src/test/resources/database/users.csv").toFile();
}
@Bean
@Qualifier("urlsDatabase")
public File getUrlsDatabaseTestFile() {
return Paths.get("src/test/resources/database/urls.csv").toFile();
}
}
我的存储库使用其中一个bean:
private final File usersDatabase;
@Autowired
public UserRepositoryImpl(@Qualifier("usersDatabase") File usersDatabase) {
this.usersDatabase = usersDatabase;
}
我的Repository测试文件:
@SpringBootTest
@Import(TestConfig.class)
public class UserRepositoryTest {
@Autowired
private UserRepository userRepository;
// tests here
}
结果,我的主程序工作正常,但测试失败,最后出现以下消息:
通过构造函数参数0表示的未满足的依赖;嵌套异常org.springframework.beans.factory.NoUniqueBean定义异常:没有可用的“java.io.文件”类型的合格bean:预期的单个匹配bean但找到2: getUsersDatabase aseTestFile, getUsersDatabase aseFile
我发现了问题:
@除了应用程序的主配置之外,还使用TestConfiguration类。这意味着,测试同时使用@Configuration和@TestConfiguration!但无论如何,我怎样才能正确使用我的豆子呢?
您可以使用Profile和ActiveProfiles的组合来仅加载测试所需的类。请参见下面的原型。
配置
@Configuration
@Profile("test")
public class TestOnlyConfigs {
// define beans
}
测验
@ActiveProfiles("test")
public class Tests {
// write tests
}
工具书类
问题内容: 假设我有以下代码: 这段代码运行后,价值会 如果我以相反的顺序替换它们,则会发生类似的问题: 的值将是 我的目标是把成我怎么能做到呢? 问题答案: 使用Apache Commons StringUtils中的方法:
我已经做了一个有效的解决方案,但它很无聊,也很不优雅: 如何使用Regex实现这一点?
问题内容: 假设我们有类似的东西: 我想将“ someText”替换为其他内容。考虑到我不知道someText可能是什么(任何字符串)并且我所知道的是它将被&firstString =和&endString =包围的事实,最佳方法是什么? 编辑:对不起,看起来这还不够清楚。我不知道“ someText”可能是什么,我仅有的信息是它将位于&firstString =和&endString =之间 我
假设我有以下代码: 这段代码运行后,的值将为
本文向大家介绍如何在Java中使用JsonParserSequence顺序合并两个JSON字符串?,包括了如何在Java中使用JsonParserSequence顺序合并两个JSON字符串?的使用技巧和注意事项,需要的朋友参考一下 JsonParserSequence 是一个 可被用于创建包含两个子解析器放置在解析器辅助类 特定序列。我们可以创建一个使用序列静态 方法)createFlattene
我有以下字符串: 我想做的是用另一个字符串替换所有 字符 结果是: 基本上,保持的顺序替换为中的交错字符。 < code>rep的总长度与< code >的总长度相同?,20个字符。 请注意,我不想作为额外的步骤再次手动拆分< code>rep。 我尝试了这个,但失败了: