Guest User

Untitled

a guest
Aug 12th, 2018
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.43 KB | None | 0 0
  1. ## config xx.properties with Spring boot
  2.  
  3. ### 1. @PropertySource 와 @Value를 이용한 방법
  4. ```java
  5. @Configuration
  6. @PropertySource("classpath:sandbox_db.properties")
  7. public class SandBoxDBConfig {
  8.  
  9. @Value("${datasource.slave.driver-class-name}")
  10. private String driverClassName;
  11.  
  12. @Value("${datasource.slave.url}")
  13. private String url;
  14.  
  15. @Value("${datasource.slave.user-name}")
  16. private String username;
  17.  
  18. @Value("${datasource.slave.password}")
  19. private String password;
  20.  
  21. @Value("${datasource.slave.maximum-pool-size}")
  22. private int maximumPoolSize;
  23.  
  24. @Value("${datasource.slave.minimum-idle}")
  25. private int minimumIdle;
  26.  
  27. @Value("${datasource.slave.read-only}")
  28. private boolean isReadOnly;
  29.  
  30. @Bean(name = "remoteDataSource", destroyMethod = "close")
  31. public HikariDataSource remoteDataSource() {
  32. HikariDataSource dataSource = new HikariDataSource();
  33. dataSource.setDriverClassName(driverClassName);
  34. dataSource.setJdbcUrl(url);
  35. dataSource.setUsername(username);
  36. dataSource.setPassword(password);
  37. dataSource.setMaximumPoolSize(maximumPoolSize);
  38. dataSource.setMinimumIdle(minimumIdle);
  39. dataSource.setReadOnly(isReadOnly);
  40.  
  41. return dataSource;
  42. }
  43.  
  44. }
  45. ```
  46. ```properties
  47. ## sandbox_db.properties
  48. datasource.slave.driver-class-name=com.mysql.jdbc.Driver
  49. datasource.slave.url=jdbc:mysql://localhost:3306/sandbox?cacheServerConfiguration=true&zeroDateTimeBehavior=convertToNull&autoReconnect=false&useUnicode=true&characterEncoding=UTF-8&useSSL=false
  50. datasource.slave.user-name=hello
  51. datasource.slave.password=hello
  52. datasource.slave.maximum-pool-size=1
  53. datasource.slave.minimum-idle=1
  54. datasource.slave.read-only=true
  55. ```
  56.  
  57. ### 2. @ConfigurationProperties를 이용한 방법
  58. ```java
  59. @Data
  60. public class HibernateProperties {
  61.  
  62. private String dialect;
  63. private boolean sqlFormat;
  64. private String hbm2ddlAuto;
  65. private boolean generateDdl;
  66.  
  67. }
  68.  
  69. @Configuration
  70. @EnableConfigurationProperties
  71. @ConfigurationProperties(prefix = "hibernate")
  72. @PropertySource("classpath:local_hibernate.properties")
  73. public class LocalHibernateProperties extends HibernateProperties {
  74. }
  75.  
  76. //LocalHibernateProperties 사용 예 -> LocalJpaConfig.java class의 @Bean 메서드
  77. @Bean(name = "localEntityManagerFactory")
  78. public LocalContainerEntityManagerFactoryBean entityManagerFactory(@Qualifier("localDataSource") DataSource localDataSource, LocalHibernateProperties localHibernateProperties) {
  79. LocalContainerEntityManagerFactoryBean em = new LocalContainerEntityManagerFactoryBean();
  80. em.setDataSource(localDataSource);
  81. em.setPackagesToScan("org.batch.demo.entity.local");
  82. em.setPersistenceUnitName("local");
  83.  
  84. HibernateJpaVendorAdapter jpaVendorAdapter = new HibernateJpaVendorAdapter();
  85. jpaVendorAdapter.setShowSql(true);
  86. jpaVendorAdapter.setGenerateDdl(true);
  87.  
  88. em.setJpaVendorAdapter(jpaVendorAdapter);
  89.  
  90. Properties properties = new Properties();
  91. properties.put("hibernate.dialect", localHibernateProperties.getDialect());
  92. properties.put("hibernate.format_sql", localHibernateProperties.isSqlFormat());
  93. properties.put("hibernate.hbm2ddl.auto", localHibernateProperties.getHbm2ddlAuto());
  94.  
  95. em.setJpaProperties(properties);
  96. return em;
  97. }
  98. ```
  99. ```properties
  100. ## jpa properties
  101. hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect
  102. hibernate.sqlFormat=true
  103. hibernate.hbm2ddlAuto=update
  104. hibernate.generateDdl=false
  105. ```
  106.  
  107. - **후자의 방법을 권장.**
Add Comment
Please, Sign In to add comment