我卡住了!如果跳过测试并部署到tomcat自动布线,则配置属性文件将正常工作。在我的测试中,它失败了!我不确定我错过了什么。
git:
localRepo: './powershell-status-scripts/'
remoteRepo: 'https://github.com/...'
@Configuration
@ConfigurationProperties(locations = "classpath:application.yml", prefix = "git", ignoreUnknownFields = false)
public class RepositoryProperties {
private String localRepo;
private String remoteRepo;
public RepositoryProperties() {
}
public String getLocalRepo() {
return localRepo;
}
public void setLocalRepo(String localRepo) {
this.localRepo = localRepo;
}
public String getRemoteRepo() {
return remoteRepo;
}
public void setRemoteRepo(String remoteRepo) {
this.remoteRepo = remoteRepo;
}
}
@EnableAutoConfiguration
@EnableConfigurationProperties
@ComponentScan(basePackages = "com.sendash.admin")
@EnableJpaRepositories("com.sendash.admin.dao.jpa")
@EnableSwagger
public class Application extends SpringBootServletInitializer {
private static final Class<Application> applicationClass = Application.class;
private static final Logger log = LoggerFactory.getLogger(applicationClass);
public static void main(String[] args) {
SpringApplication.run(applicationClass, args);
}
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(applicationClass);
}
}
GitService-自带属性在Tomcat上工作!
@Service
@EnableConfigurationProperties
public class GitService {
@Autowired
private RepositoryProperties repositoryProperties;
public void updateLocalRepository() {
...
}
GitServiceTest由于NPE,该类在初始化时失败.属性为空。
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = Application.class)
@Profile("test")
@TestExecutionListeners({ DependencyInjectionTestExecutionListener.class })
public class GitServiceTest {
@Autowired
private static GitService manager;
@Autowired
private static RepositoryProperties properties;
private static final String localRepoLocation = properties.getLocalRepo();
粘贴后我确实意识到@EnableConfigurationProperties在application.java和GitService.java类上。停止复制并不能解决问题。
如果您希望在测试中使用Spring Boot,您应该相应地配置测试。为此,请删除ContextConfiguration并添加以下内容:
@SpringApplicationConfiguration(classes = Application.class, initializers = ConfigFileApplicationContextInitializer.class)
这将启用配置属性的注入。
我成功地注入了Gradle项目。应用程序。yml,然后将其注入服务应用程序。我的申请。yml看起来像这样: 但只有当我从cli启动应用程序时,它才有效: 如果我尝试从IntelliJ启动应用程序,它不起作用,并且失败了: 我阅读了Stackoverflow的所有答案,他们提出了两种解决方案: > 使用Spring轮廓 修改运行配置并在启动 gradle 任务之前运行:流程资源 当我从Intelli
并添加注释 我得到一条消息:没有测试找到test runner JUnit5,并且在Problems选项卡中有SpringBootTest.jar无法读取或者不是有效的ZIP文件 也试过 我也试过: 如果我将字符串myUrl硬编码为“http://localhost:8090”,则测试工作正常,因此问题在于@value不工作
我有一个Spring配置类,我正在使用它从属性文件中读取并创建bean。 在xml文件中 我能够设置和属性,但无法将属性设置为,因为我们需要注入及其。请让我知道如何在方法中注入bean。
问题内容: 我想制作一个DatabaseConfig类来设置与数据库相关的东西(EntityManager,DataSource,TransactionManager)并获取我在字段上使用的属性 喜欢 问题是,所有这些字符串都是NULL,而不是我的属性文件的值。 如果我将代码放入我的类(具有和中引用的代码),则值注入有效 简而言之,@Value在我的Application类中有效,但在我的自定义@
如何将和的值注入Spring重试注释?在下面的示例中,我想用配置属性的相应引用替换maxAttempts的值和backoff值的值。
我想使用自定义的<code>TestExecutionListener</code>和<code>SpringJUnit4ClassRunner</code>结合使用,在我的测试数据库上运行Liquibase模式设置。我的<code>TestExecutionListener</code>工作正常,但当我在类上使用注释时,测试中DAO的注入不再工作,至少实例为空。 侦听器相当简单: 日志中没有错误