[FEAT] configuração dos datasources

master
PC-KLEBER\klebe 2 years ago
parent 0c0bfd20c0
commit 8ac88f6012

@ -0,0 +1,61 @@
package br.com.ae3tecnologia.ms.tangerino.config;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.orm.jpa.EntityManagerFactoryBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.context.annotation.Profile;
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
import org.springframework.jndi.JndiObjectFactoryBean;
import org.springframework.orm.jpa.JpaTransactionManager;
import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;
import org.springframework.transaction.PlatformTransactionManager;
import org.springframework.transaction.annotation.EnableTransactionManagement;
import javax.naming.NamingException;
import javax.sql.DataSource;
import java.util.Objects;
@Configuration
@Profile("hom")
@Slf4j
@EnableTransactionManagement
@EnableJpaRepositories(basePackages = "br.com.ae3tecnologia.ms.tangerino.repository", entityManagerFactoryRef = "primaryEntityManagerFactory", transactionManagerRef = "primaryTransactionManager")
public class DataSourceConfigHom {
@Bean
@Primary
@ConfigurationProperties("app.datasource.primary.configuration")
public DataSource primaryDataSource() {
var bean = new JndiObjectFactoryBean();
bean.setJndiName("jdbc:/postgres-homologacao");
bean.setProxyInterface(DataSource.class);
bean.setLookupOnStartup(false);
try {
bean.afterPropertiesSet();
} catch (IllegalArgumentException | NamingException e) {
log.debug(e.getMessage());
}
return (DataSource) bean.getObject();
}
@Primary
@Bean(name = "primaryEntityManagerFactory")
public LocalContainerEntityManagerFactoryBean primaryEntityManagerFactory(EntityManagerFactoryBuilder builder) {
return builder
.dataSource(primaryDataSource())
.packages("br.com.ae3tecnologia.ms.tangerino.model")
.build();
}
@Primary
@Bean
public PlatformTransactionManager primaryTransactionManager(
final @Qualifier("primaryEntityManagerFactory") LocalContainerEntityManagerFactoryBean primaryEntityManagerFactory) {
return new JpaTransactionManager(Objects.requireNonNull(primaryEntityManagerFactory.getObject()));
}
}

@ -0,0 +1,61 @@
package br.com.ae3tecnologia.ms.tangerino.config;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.orm.jpa.EntityManagerFactoryBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.context.annotation.Profile;
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
import org.springframework.jndi.JndiObjectFactoryBean;
import org.springframework.orm.jpa.JpaTransactionManager;
import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;
import org.springframework.transaction.PlatformTransactionManager;
import org.springframework.transaction.annotation.EnableTransactionManagement;
import javax.naming.NamingException;
import javax.sql.DataSource;
import java.util.Objects;
@Configuration
@Profile("prd")
@Slf4j
@EnableTransactionManagement
@EnableJpaRepositories(basePackages = "br.com.ae3tecnologia.ms.tangerino.repository", entityManagerFactoryRef = "primaryEntityManagerFactory", transactionManagerRef = "primaryTransactionManager")
public class DataSourceConfigPrd {
@Bean
@Primary
@ConfigurationProperties("app.datasource.primary.configuration")
public DataSource primaryDataSource() {
var bean = new JndiObjectFactoryBean();
bean.setJndiName("jdbc:/postgres-prd");
bean.setProxyInterface(DataSource.class);
bean.setLookupOnStartup(false);
try {
bean.afterPropertiesSet();
} catch (IllegalArgumentException | NamingException e) {
log.debug(e.getMessage());
}
return (DataSource) bean.getObject();
}
@Primary
@Bean(name = "primaryEntityManagerFactory")
public LocalContainerEntityManagerFactoryBean primaryEntityManagerFactory(EntityManagerFactoryBuilder builder) {
return builder
.dataSource(primaryDataSource())
.packages("br.com.ae3tecnologia.ms.tangerino.model")
.build();
}
@Primary
@Bean
public PlatformTransactionManager primaryTransactionManager(
final @Qualifier("primaryEntityManagerFactory") LocalContainerEntityManagerFactoryBean primaryEntityManagerFactory) {
return new JpaTransactionManager(Objects.requireNonNull(primaryEntityManagerFactory.getObject()));
}
}

@ -17,12 +17,4 @@ logging:
spring:
jpa:
show-sql: false
properties:
hibernate:
format_sql: true
use_streams_for_binary: false
dialect: org.hibernate.dialect.PostgreSQLDialect
datasource:
url: jdbc:postgresql://192.168.2.15:5839/base_teste
username: kleber
password: KC$456bn

@ -17,12 +17,3 @@ logging:
spring:
jpa:
show-sql: false
properties:
hibernate:
format_sql: true
use_streams_for_binary: false
dialect: org.hibernate.dialect.PostgreSQLDialect
datasource:
url: jdbc:postgresql://131.255.233.237:8077/sisgep
username: postgres
password: postgres

@ -6,8 +6,4 @@ spring:
application:
name: TangerinoMS
jpa:
open-in-view: true
# jpa:
# database-platform: org.hibernate.dialect.Oracle10gDialect
# datasource:
# driver-class-name: oracle.jdbc.driver.OracleDriver
open-in-view: true
Loading…
Cancel
Save