Advertisement
Guest User

Untitled

a guest
Nov 27th, 2016
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.43 KB | None | 0 0
  1. package com.jgp7.joysi.nov116.config;
  2.  
  3. import org.apache.commons.dbcp.BasicDataSource;
  4. import org.hibernate.dialect.PostgreSQL9Dialect;
  5. import org.springframework.context.annotation.Bean;
  6. import org.springframework.context.annotation.ComponentScan;
  7. import org.springframework.context.annotation.Configuration;
  8. import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
  9. import org.springframework.orm.jpa.JpaTransactionManager;
  10. import org.springframework.orm.jpa.JpaVendorAdapter;
  11. import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;
  12. import org.springframework.orm.jpa.vendor.Database;
  13. import org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter;
  14. import org.springframework.transaction.annotation.EnableTransactionManagement;
  15.  
  16. import javax.sql.DataSource;
  17. import java.util.HashMap;
  18. import java.util.Map;
  19.  
  20. /**
  21. * @author Marat
  22. *
  23. * Инициализация работы с СУБД (Java Config вместо xml)
  24. */
  25. @Configuration
  26. @EnableTransactionManagement
  27. @ComponentScan("com.jgp7.joysi.nov16")
  28. @EnableJpaRepositories("com.jgp7.joysi.nov16.repository")
  29. public class DbConfig {
  30.  
  31. private Constants res = Constants.getInstance();
  32.  
  33. @Bean
  34. public DataSource dataSource() {
  35. // Используем apache.commons.dbcp.BasicDataSource чтобы манипулировать с ПУЛОМ соединений
  36. BasicDataSource basicDataSource = new BasicDataSource();
  37.  
  38. basicDataSource.setDriverClassName(res.getString("db.driver"));
  39. basicDataSource.setUrl(res.getString("db.url"));
  40. basicDataSource.setUsername(res.getString("db.user"));
  41. basicDataSource.setPassword(res.getString("db.pwd"));
  42. basicDataSource.setInitialSize(res.getInt("db.pool.size"));
  43. basicDataSource.setMaxWait(Integer.parseInt(res.getString("db.timeout")));
  44.  
  45. return basicDataSource;
  46. }
  47.  
  48. @Bean
  49. public LocalContainerEntityManagerFactoryBean entityManagerFactory() {
  50. LocalContainerEntityManagerFactoryBean entityManagerFactory = new LocalContainerEntityManagerFactoryBean();
  51. entityManagerFactory.setDataSource(dataSource());
  52. entityManagerFactory.setJpaVendorAdapter(jpaVendorAdapter());
  53. entityManagerFactory.setPackagesToScan(res.getString("db.entitymanager.packages.to.scan"));
  54. entityManagerFactory.setJpaPropertyMap(hibernateJpaProperties());
  55. return entityManagerFactory;
  56. }
  57.  
  58.  
  59. @Bean
  60. public JpaVendorAdapter jpaVendorAdapter() {
  61. HibernateJpaVendorAdapter jpaVendorAdapter = new HibernateJpaVendorAdapter();
  62. jpaVendorAdapter.setShowSql(true);
  63. jpaVendorAdapter.setDatabase(Database.POSTGRESQL);
  64. jpaVendorAdapter.setDatabasePlatform(PostgreSQL9Dialect.class.getName());
  65. jpaVendorAdapter.setGenerateDdl(false);
  66. return jpaVendorAdapter;
  67. }
  68.  
  69. @Bean
  70. public JpaTransactionManager transactionManager() {
  71. JpaTransactionManager jpaTransactionManager = new JpaTransactionManager();
  72. jpaTransactionManager.setEntityManagerFactory(entityManagerFactory().getObject());
  73. return jpaTransactionManager;
  74. }
  75.  
  76. private Map<String, ?> hibernateJpaProperties() {
  77. HashMap<String, String> properties = new HashMap<>();
  78. properties.put("hibernate.show_sql", "false");
  79. properties.put("hibernate.format_sql", "false");
  80. properties.put("hibernate.show_sql", res.getString("db.hibernate.show_sql"));
  81. properties.put("db.hibernate.dialect", res.getString("db.hibernate.dialect"));
  82. properties.put("hibernate.connection.CharSet", "utf8");
  83. properties.put("hibernate.connection.characterEncoding", "utf8");
  84. properties.put("hibernate.connection.CharSet", "utf8");
  85. properties.put("hibernate.connection.CharSet", "utf8");
  86. return properties;
  87. }
  88. }
  89.  
  90. Настройки берутся снаружи, чтобы в коде констант не было (файл properties в Resources)
  91.  
  92. #Кокфигурация для профайла = dev (разработка)
  93.  
  94. ################### Hibernate свойства ###################
  95. db.hibernate.dialect=org.hibernate.dialect.PostgreSQL9Dialect
  96. db.hibernate.show_sql=true
  97. db.entitymanager.packages.to.scan=com.jgp7.joysi.nov116.model
  98. db.hibernate.hbm2ddl.auto = create
  99.  
  100. ################### Database свойства ###################
  101. db.driver = org.postgresql.Driver
  102. db.url = jdbc:postgresql://localhost:5432/nov16_dev
  103. db.user = javaserver
  104. db.pwd =
  105. db.pool.size = 20
  106. db.timeout = 10000
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement