Dessa forma que você está dizendo, eu teria que criar dois properties. No curso ele mantém um somente.
Segue abaixo minha classe de DataSourceConfigurationTest
public class DataSourceConfigurationTest {
@Bean
@Profile("test")
public DataSource dataSource(){
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setUrl("jdbc:mysql://localhost:3306/springMVC2_test");
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
dataSource.setUsername("root");
dataSource.setPassword("postgres");
return dataSource;
}
}
Segue abaixo minha classe de Test
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = {JPAConfiguration.class,ProdutoDAO.class, DataSourceConfigurationTest.class})
@ActiveProfiles("test")
public class ProdutoDAOTest {
@Autowired
private ProdutoDAO produtoDAO;
@Test
@Transactional
public void deveSomarTodosOsPrecosPorTipoLivro() {
//restante do código aqui....
}
}
Segue abaixo minha classe da JPA
@EnableTransactionManagement
public class JPAConfiguration {
@Bean
public LocalContainerEntityManagerFactoryBean entityManagerFactory(DataSource dataSource) {
LocalContainerEntityManagerFactoryBean factoryBean = new LocalContainerEntityManagerFactoryBean();
JpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
factoryBean.setJpaVendorAdapter(vendorAdapter);
factoryBean.setPackagesToScan(new String[]{"br.com.springMVC.model", "br.com.springMVC.model.enums", "br.com.springMVC.model.auth"});
factoryBean.setDataSource(dataSource);
factoryBean.setJpaProperties(aditionalProperties());
return factoryBean;
}
@Bean
@Profile("dev") //Qnd profile for Dev, o Spring injetará esse dataSource
public DataSource dataSource() {
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setUsername("root");
dataSource.setPassword("postgres");
dataSource.setUrl("jdbc:mysql://localhost:3306/springMVC2");
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
return dataSource;
}
private Properties aditionalProperties() {
Properties props = new Properties();
props.setProperty("hibernate.dialect", "org.hibernate.dialect.MySQL5Dialect");
props.setProperty("hibernate.show_sql", "true");
props.setProperty("hibernate.hbm2ddl.auto", "update");
return props;
}
@Bean
public JpaTransactionManager transactionManager(EntityManagerFactory emf){
return new JpaTransactionManager(emf);
}
}
Observação: Está da mesma forma que o professor cria no curso, por isso minha dúvida.
Sabe oq poderia ser?
Desde já, muito obrigado pelo retorno.