Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ## config xx.properties with Spring boot
- ### 1. @PropertySource 와 @Value를 이용한 방법
- ```java
- @Configuration
- @PropertySource("classpath:sandbox_db.properties")
- public class SandBoxDBConfig {
- @Value("${datasource.slave.driver-class-name}")
- private String driverClassName;
- @Value("${datasource.slave.url}")
- private String url;
- @Value("${datasource.slave.user-name}")
- private String username;
- @Value("${datasource.slave.password}")
- private String password;
- @Value("${datasource.slave.maximum-pool-size}")
- private int maximumPoolSize;
- @Value("${datasource.slave.minimum-idle}")
- private int minimumIdle;
- @Value("${datasource.slave.read-only}")
- private boolean isReadOnly;
- @Bean(name = "remoteDataSource", destroyMethod = "close")
- public HikariDataSource remoteDataSource() {
- HikariDataSource dataSource = new HikariDataSource();
- dataSource.setDriverClassName(driverClassName);
- dataSource.setJdbcUrl(url);
- dataSource.setUsername(username);
- dataSource.setPassword(password);
- dataSource.setMaximumPoolSize(maximumPoolSize);
- dataSource.setMinimumIdle(minimumIdle);
- dataSource.setReadOnly(isReadOnly);
- return dataSource;
- }
- }
- ```
- ```properties
- ## sandbox_db.properties
- datasource.slave.driver-class-name=com.mysql.jdbc.Driver
- datasource.slave.url=jdbc:mysql://localhost:3306/sandbox?cacheServerConfiguration=true&zeroDateTimeBehavior=convertToNull&autoReconnect=false&useUnicode=true&characterEncoding=UTF-8&useSSL=false
- datasource.slave.user-name=hello
- datasource.slave.password=hello
- datasource.slave.maximum-pool-size=1
- datasource.slave.minimum-idle=1
- datasource.slave.read-only=true
- ```
- ### 2. @ConfigurationProperties를 이용한 방법
- ```java
- @Data
- public class HibernateProperties {
- private String dialect;
- private boolean sqlFormat;
- private String hbm2ddlAuto;
- private boolean generateDdl;
- }
- @Configuration
- @EnableConfigurationProperties
- @ConfigurationProperties(prefix = "hibernate")
- @PropertySource("classpath:local_hibernate.properties")
- public class LocalHibernateProperties extends HibernateProperties {
- }
- //LocalHibernateProperties 사용 예 -> LocalJpaConfig.java class의 @Bean 메서드
- @Bean(name = "localEntityManagerFactory")
- public LocalContainerEntityManagerFactoryBean entityManagerFactory(@Qualifier("localDataSource") DataSource localDataSource, LocalHibernateProperties localHibernateProperties) {
- LocalContainerEntityManagerFactoryBean em = new LocalContainerEntityManagerFactoryBean();
- em.setDataSource(localDataSource);
- em.setPackagesToScan("org.batch.demo.entity.local");
- em.setPersistenceUnitName("local");
- HibernateJpaVendorAdapter jpaVendorAdapter = new HibernateJpaVendorAdapter();
- jpaVendorAdapter.setShowSql(true);
- jpaVendorAdapter.setGenerateDdl(true);
- em.setJpaVendorAdapter(jpaVendorAdapter);
- Properties properties = new Properties();
- properties.put("hibernate.dialect", localHibernateProperties.getDialect());
- properties.put("hibernate.format_sql", localHibernateProperties.isSqlFormat());
- properties.put("hibernate.hbm2ddl.auto", localHibernateProperties.getHbm2ddlAuto());
- em.setJpaProperties(properties);
- return em;
- }
- ```
- ```properties
- ## jpa properties
- hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect
- hibernate.sqlFormat=true
- hibernate.hbm2ddlAuto=update
- hibernate.generateDdl=false
- ```
- - **후자의 방법을 권장.**
Add Comment
Please, Sign In to add comment