환경으로부터 데이터베이스 특정 속성을 구성하는 클래스가 있습니다. @Value
주석 값스프링 @Value 주석은 값을 역 참조하지 않습니까?
를 역 참조하지 않는 것처럼 내가
[INFO] [talledLocalContainer] Jun 12, 2014 8:47:45 AM org.apache.catalina.core.StandardContext listenerStart
[INFO] [talledLocalContainer] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1549) ~[spring-beans-4.0.3.RELEASE.jar:4.0.3.RELEASE]
[INFO] [talledLocalContainer] ... 25 common frames omitted
[INFO] [talledLocalContainer] Caused by: org.apache.commons.dbcp.SQLNestedException: Cannot load JDBC driver class '${database_driverClassName:com.mysql.jdbc.Driver}'
[INFO] [talledLocalContainer] SEVERE: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener
[INFO] [talledLocalContainer] at org.apache.commons.dbcp.BasicDataSource.createConnectionFactory(BasicDataSource.java:1429) ~[commons-dbcp-1.4.jar:1.4]
[INFO] [talledLocalContainer] at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1371) ~[commons-dbcp-1.4.jar:1.4]
[INFO] [talledLocalContainer] org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'liquibase' defined in class path resource [applicationContext.xml]: Invocation of init method failed; nested exception is liquibase.exception.DatabaseException: org.apache.commons.dbcp.SQLNestedException: Cannot load JDBC driver class '${database_driverClassName:com.mysql.jdbc.Driver}'
[INFO] [talledLocalContainer] at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044) ~[commons-dbcp-1.4.jar:1.4]
[INFO] [talledLocalContainer] at liquibase.integration.spring.SpringLiquibase.afterPropertiesSet(SpringLiquibase.java:296) ~[liquibase-core-3.1.1.jar:na]
[INFO] [talledLocalContainer] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1553)
[INFO] [talledLocalContainer] ... 27 common frames omitted
[INFO] [talledLocalContainer] Caused by: java.lang.ClassNotFoundException: ${database_driverClassName:com.mysql.jdbc.Driver}
같은 실패를 참조
@Configuration
@Profile("default")
public class MySqlDatabaseConfig extends JpaCommonConfig {
@Value("${database_url:jdbc:mysql://localhost:3306/pryme?createDatabaseIfNotExist=true }")
private String databaseUrl;
@Value("${database_user:root}")
private String databaseUser;
@Value("${database_password:\"\"}")
private String databasePassword;
@Value("${database_driverClassName:com.mysql.jdbc.Driver}")
private String databaseDriverClass;
private static final Logger LOGGER = LoggerFactory.getLogger(MySqlDatabaseConfig.class);
@Override
public DataSource dataSource() {
final BasicDataSource dataSource = new BasicDataSource();
dataSource.setDriverClassName(getDriverClassName());
dataSource.setUrl(getUrl());
dataSource.setUsername(getUser());
if (!getPassword().trim().isEmpty()) {
dataSource.setPassword(getPassword());
}
LOGGER.debug("DriverClass={}, URL={}, User={}", getDriverClassName(), getUrl(), getUser());
return dataSource;
}
@Override
public String getUrl() {
return databaseUrl;
}
@Override
public String getUser() {
return databaseUser;
}
@Override
public String getPassword() {
return databasePassword;
}
@Override
public String getDriverClassName() {
return databaseDriverClass;
}
@Override
protected Class<? extends Dialect> getDatabaseDialect() {
return MySQL5InnoDBDialect.class;
}
}
내 테스트를 실행
처럼 보이는 것 같다?
을 어떻게 Spring 컨텍스트에 그'database_driverClassName' 속성을 얻고있다? – chrylis