我正在创建一个Spring MVC应用程序,并且在api正常运行期间,数据库属性是从 src / main / resources 文件夹中的“ application.properties”文件获取的。然后,我用相同的名称编写了单元测试用例,并在 src / test / resources 文件夹中创建了一个具有相同名称的文件,即“ application.properties”。测试用例之前运行良好,但现在正常运行,现在它们从 src / test / resources 中获取参数,而不是仅从 src / main / resources 中获取参数。
文件结构: DemoProject
| -src / main / resources / application.properties
| -src / test / resources / application.properties
这是我的hibernamteConfiguration文件:
import java.util.Properties;
import javax.sql.DataSource;
import org.hibernate.SessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
import org.springframework.core.env.Environment;
import org.springframework.jdbc.datasource.DriverManagerDataSource;
import org.springframework.orm.hibernate5.HibernateTransactionManager;
import org.springframework.orm.hibernate5.LocalSessionFactoryBean;
import org.springframework.transaction.annotation.EnableTransactionManagement;
@Configuration
@EnableTransactionManagement
@PropertySource("classpath:application.properties")
public class HibernateConfiguration {
@Autowired
private Environment environment;
@Bean
public LocalSessionFactoryBean sessionFactory() {
LocalSessionFactoryBean sessionFactory = new LocalSessionFactoryBean();
sessionFactory.setDataSource(dataSource());
sessionFactory.setPackagesToScan(new String[] { "com.akshay.gslab.pojos" });
sessionFactory.setHibernateProperties(hibernateProperties());
return sessionFactory;
}
@Bean
public DataSource dataSource() {
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName(environment.getRequiredProperty("driver"));
dataSource.setUrl(environment.getRequiredProperty("url"));
dataSource.setUsername(environment.getRequiredProperty("user"));
dataSource.setPassword(environment.getRequiredProperty("password"));
return dataSource;
}
@Bean
public Properties hibernateProperties() {
Properties properties = new Properties();
properties.put("hibernate.dialect", environment.getRequiredProperty("dialect"));
properties.put("hibernate.show_sql", environment.getRequiredProperty("show_sql"));
properties.put("hibernate.format_sql", environment.getRequiredProperty("format_sql"));
properties.put("hibernate.hbm2ddl.auto", environment.getRequiredProperty("hbm2ddl.auto"));
return properties;
}
@Bean
@Autowired
public HibernateTransactionManager transactionManager(SessionFactory s) {
HibernateTransactionManager txManager = new HibernateTransactionManager();
txManager.setSessionFactory(s);
return txManager;
}
}