【发布时间】:2015-11-18 01:30:28
【问题描述】:
我被困住了!如果我跳过测试并部署到 tomcat 自动连接配置属性文件工作。在我的测试中,它失败了!我不确定我错过了什么。
这是我的设置:
Spring Boot v 1.2.5.RELEASE 应用程序.yml
git:
localRepo: './powershell-status-scripts/'
remoteRepo: 'https://github.com/...'
RepositoryProperties 这个类有属性的getter和setter
@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;
}
}
Application.java
@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() {
...
}
由于 NPE,GitServiceTest 此类在初始化时失败。属性为空。
@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