Maven 테스트 사용 시 Spring Boot Application이 application.properties 파일을 읽지 않음
갱신:
이제 깨달은 게 몇 가지 있어요나의application.properties파일을 올바르게 로드하고 있는 것은, 을 통해서 확인했기 때문입니다./env경로(고맙습니다)를 클릭하여 DB 속성을 로드합니다.이 문제는 Spring Boot Maven 플러그인을 사용하여 실행했을 때 이 플러그인의 초기화가 실패하는 것으로 보입니다.dataSource.
mvn spring-boot:run
그러면 다른 원두를 초기화할 수 없기 때문에 응용 프로그램이 오류로 인해 종료됩니다.이상하게도 이클립스에서는 정상적으로 동작하고 있습니다.
나는 라는 수업이 있다.DataService확장하다JdbcTemplate제 안에.DataServiceconstructor, 나는 constructor의DataSource.
@Component
public class DataService extends JdbcTemplate {
@Autowired
public DataService(DataSource dataSource){
super(dataSource);
}
...more custom methods
}
나는 이것을 사용한다.DataServiceclass in other bean을 사용하여 DB 작업을 수행합니다.나의DataSource에 정의되어 있습니다.application.properties파일
spring.datasource.url: jdbc:h2:tcp://localhost/~/testdb2
spring.datasource.driverClassName: org.h2.Driver
이건 내 거야Application.java학급
@Configuration
@ComponentScan
@EnableAutoConfiguration
@EnableWebMvcSecurity
@EnableAsync
@EnableScheduling
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
내가 이걸 처음 깨달은 건 도망치려고 했을 때야jUnitMaven의 테스트 사용
mavent test
난 그게 단지 어떻게 실행했는지와 관련이 있다고 생각했어jUnit테스트 케이스는 maven을 사용하여 어플리케이션을 실행하려고 할 때도 발생합니다.
나의JUnit4테스트 클래스는 다음과 같이 정의됩니다.
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes={Application.class})
@WebAppConfiguration
public class QuestionRepositoryIntegrationTests {
...methods
}
Spring Boot How-to documents(https://docs.spring.io/spring-boot/docs/current/reference/html/howto.html)의 예시를 사용하고 있습니다.
내가 이것을 실행할 때JUnit이클립스 수업, 잘 돼.maven에서 실행하면 위와 같이 동작하기 시작합니다.
의 정의를 시도합니다.<resources>pom의 빌드 섹션에서 태그를 지정하고 리소스 디렉토리의 경로를 설정합니다.application.properties:
<build>
<resources>
<resource>
<directory>resources</directory>
<targetPath>${project.build.outputDirectory}</targetPath>
<includes>
<include>application.properties</include>
</includes>
</resource>
</resources>
</build>
메인 데이터 소스를 다음과 같이 설정할 수 있습니다.여기서는 mysql을 사용하고 있습니다.다만, 독자적인 데이터 소스를 사용할 수 있습니다.에서는, 다음의 설정을 실시할 수 있습니다.application.properties안에서.src/main/resources
spring.datasource.url = jdbc:mysql://localhost:3306/dsm
spring.datasource.username = root
spring.datasource.password = admin123
spring.datasource.testWhileIdle = true
spring.datasource.validationQuery = SELECT 1
spring.jpa.show-sql = true
spring.jpa.hibernate.ddl-auto = update
spring.jpa.hibernate.naming-strategy = org.hibernate.cfg.ImprovedNamingStrategy
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect
응용 프로그램 내에서 테스트를 실행하려면 동일한 데이터 소스를 사용하거나application-test.properties안에서.src/test/resources테스트 데이터 소스를 설정할 수 있습니다.
다음 문구를 추가해 주세요.
@TestPropertySource("classpath:application.properties")
당신의 시험 수업에.src/test/resources 아래에 application.properties 파일이 있을 것입니다.
여기 제 작업 예가 있습니다.
@RunWith(SpringJUnit4ClassRunner.class)
@TestPropertySource("classpath:application.properties")
public class TestTwitterFeedRoute extends CamelTestSupport {
//...
}
이것으로 충분합니다.
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = TestApplication.class,
initializers = ConfigFileApplicationContextInitializer.class)
public class SomeTestClass {
...
}
@ConfigurationProperties 주석이 컨피규레이션파일(application.config)에서 사용하고 있는 것과 같은 프리픽스로 설정되어 있는지 확인합니다.
이클립스를사용하고있는경우프로젝트빌드리소스를체크하는것은항상좋은생각입니다.([프로젝트]-> [속성]-> [빌드패스]를 클릭해 주세요)어플리케이션.properties 파일을 가져오지 못했습니다만, 자원 빌드에 추가할 수 없었습니다.
모든 속성 파일을 jar 외부에서 로드하려고 합니다. 아래 pom works의 엔트리는 완벽합니다.요건에 따라 파일을 제외하거나 포함할 수도 있습니다.
<build>
<resources>
<resource>
<directory>config</directory>
<includes>FILENAME</includes>
<excludes>FILENAME</excludes>
</resource>
</resources>
</build>
언급URL : https://stackoverflow.com/questions/22078254/spring-boot-application-not-reading-application-properties-file-when-using-maven
'programing' 카테고리의 다른 글
| AngularJ: ng-switch(OR이 있는 경우) (0) | 2023.03.09 |
|---|---|
| React/MUI Autocomplete 컴포넌트에 고유 키를 추가하려면 어떻게 해야 합니까? (0) | 2023.03.09 |
| Oracle에서 숫자 열의 정밀도 변경 (0) | 2023.03.09 |
| ui-router 및 angular-translate를 사용하여 URL 현지화 (0) | 2023.03.09 |
| ngView 또는 ngInclude를 사용할 시기를 결정하는 방법 (0) | 2023.03.09 |