Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.jgp7.joysi.nov116.config;
- import org.apache.commons.dbcp.BasicDataSource;
- import org.hibernate.dialect.PostgreSQL9Dialect;
- import org.springframework.context.annotation.Bean;
- import org.springframework.context.annotation.ComponentScan;
- import org.springframework.context.annotation.Configuration;
- import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
- import org.springframework.orm.jpa.JpaTransactionManager;
- import org.springframework.orm.jpa.JpaVendorAdapter;
- import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;
- import org.springframework.orm.jpa.vendor.Database;
- import org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter;
- import org.springframework.transaction.annotation.EnableTransactionManagement;
- import javax.sql.DataSource;
- import java.util.HashMap;
- import java.util.Map;
- /**
- * @author Marat
- *
- * Инициализация работы с СУБД (Java Config вместо xml)
- */
- @Configuration
- @EnableTransactionManagement
- @ComponentScan("com.jgp7.joysi.nov16")
- @EnableJpaRepositories("com.jgp7.joysi.nov16.repository")
- public class DbConfig {
- private Constants res = Constants.getInstance();
- @Bean
- public DataSource dataSource() {
- // Используем apache.commons.dbcp.BasicDataSource чтобы манипулировать с ПУЛОМ соединений
- BasicDataSource basicDataSource = new BasicDataSource();
- basicDataSource.setDriverClassName(res.getString("db.driver"));
- basicDataSource.setUrl(res.getString("db.url"));
- basicDataSource.setUsername(res.getString("db.user"));
- basicDataSource.setPassword(res.getString("db.pwd"));
- basicDataSource.setInitialSize(res.getInt("db.pool.size"));
- basicDataSource.setMaxWait(Integer.parseInt(res.getString("db.timeout")));
- return basicDataSource;
- }
- @Bean
- public LocalContainerEntityManagerFactoryBean entityManagerFactory() {
- LocalContainerEntityManagerFactoryBean entityManagerFactory = new LocalContainerEntityManagerFactoryBean();
- entityManagerFactory.setDataSource(dataSource());
- entityManagerFactory.setJpaVendorAdapter(jpaVendorAdapter());
- entityManagerFactory.setPackagesToScan(res.getString("db.entitymanager.packages.to.scan"));
- entityManagerFactory.setJpaPropertyMap(hibernateJpaProperties());
- return entityManagerFactory;
- }
- @Bean
- public JpaVendorAdapter jpaVendorAdapter() {
- HibernateJpaVendorAdapter jpaVendorAdapter = new HibernateJpaVendorAdapter();
- jpaVendorAdapter.setShowSql(true);
- jpaVendorAdapter.setDatabase(Database.POSTGRESQL);
- jpaVendorAdapter.setDatabasePlatform(PostgreSQL9Dialect.class.getName());
- jpaVendorAdapter.setGenerateDdl(false);
- return jpaVendorAdapter;
- }
- @Bean
- public JpaTransactionManager transactionManager() {
- JpaTransactionManager jpaTransactionManager = new JpaTransactionManager();
- jpaTransactionManager.setEntityManagerFactory(entityManagerFactory().getObject());
- return jpaTransactionManager;
- }
- private Map<String, ?> hibernateJpaProperties() {
- HashMap<String, String> properties = new HashMap<>();
- properties.put("hibernate.show_sql", "false");
- properties.put("hibernate.format_sql", "false");
- properties.put("hibernate.show_sql", res.getString("db.hibernate.show_sql"));
- properties.put("db.hibernate.dialect", res.getString("db.hibernate.dialect"));
- properties.put("hibernate.connection.CharSet", "utf8");
- properties.put("hibernate.connection.characterEncoding", "utf8");
- properties.put("hibernate.connection.CharSet", "utf8");
- properties.put("hibernate.connection.CharSet", "utf8");
- return properties;
- }
- }
- Настройки берутся снаружи, чтобы в коде констант не было (файл properties в Resources)
- #Кокфигурация для профайла = dev (разработка)
- ################### Hibernate свойства ###################
- db.hibernate.dialect=org.hibernate.dialect.PostgreSQL9Dialect
- db.hibernate.show_sql=true
- db.entitymanager.packages.to.scan=com.jgp7.joysi.nov116.model
- db.hibernate.hbm2ddl.auto = create
- ################### Database свойства ###################
- db.driver = org.postgresql.Driver
- db.url = jdbc:postgresql://localhost:5432/nov16_dev
- db.user = javaserver
- db.pwd =
- db.pool.size = 20
- db.timeout = 10000
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement