2014-11-17 2 views
0

У меня есть простая среда spring-data-jpa, где я хочу подключиться к базе данных mysql. После кода с Entity:application.propreties проигнорирован весной

@Entity 
public class DbRecord extends AbstractPersistable<Long> { 
private String name; 

public DbRecord(String name) { 
    this.name = name; 
} 

public void setName(String name) { 
    this.name = name; 
} 

public String getName() { 
    return this.name; 
} 
} 

класса Configuration (очень простой)

@Configuration 
@EnableAutoConfiguration 
public class DemiConfiguration {} 

Repository

public interface DemiRepository extends CrudRepository<DbRecord, Long> {} 

и, наконец, испытания

@RunWith(SpringJUnit4ClassRunner.class) 
@Transactional 
@ContextConfiguration(classes = DemiConfiguration.class) 
public class SimpleTest { 
@Autowired 
DemiRepository repository; 

@Test public void testInsert() { 
    DbRecord record = new DbRecord("test"); 
    repository.save(record); 
    Iterable<DbRecord> records = repository.findAll(); 
} 
} 

До сих пор так хорошо. Тест работает на HSQLDB, но когда я пытаюсь написать к базе данных MySQL, и я создать application.properties Into SRC/основные/ресурсы/application.properites со следующими значениями:

spring.datasource.url=jdbc:mysql://localhost/demi 
spring.datasource.username=demi 
spring.datasource.password=demi123 
spring.datasource.driverClassName=com.mysql.jdbc.Driver 

тест игнорирует свойства и придерживается стандартной конфигурации с помощью hsqldb.

Я использую IntelliJ как IDE.

+0

При тестировании приложений Spring Загрузочные вместо '@ ContextConfiguration' использовать' @ SpringApplicationConfiguration' зарегистрировать дополнительные слушателей. –

ответ

1

Вам необходимо добавить initializers = ConfigFileApplicationContextInitializer.class в @ContextConfiguration. От его JavaDocs:

* {@link ApplicationContextInitializer} that can be used with the 
* {@link ContextConfiguration#initializers()} to trigger loading of 
* {@literal application.properties}. 
Смежные вопросы