import org.springframework.context.annotation.ComponentScan; | import org.springframework.context.annotation.ComponentScan; | ||||
import org.springframework.context.annotation.EnableAspectJAutoProxy; | import org.springframework.context.annotation.EnableAspectJAutoProxy; | ||||
import org.springframework.context.annotation.FilterType; | import org.springframework.context.annotation.FilterType; | ||||
import org.springframework.scheduling.annotation.EnableScheduling; | |||||
@SpringBootApplication | @SpringBootApplication | ||||
@EnableFeignClients | @EnableFeignClients | ||||
@EnableScheduling | |||||
@EnableAspectJAutoProxy(proxyTargetClass = true) | @EnableAspectJAutoProxy(proxyTargetClass = true) | ||||
@ComponentScan(basePackageClasses = FeignCommClient.class) | @ComponentScan(basePackageClasses = FeignCommClient.class) | ||||
@ComponentScan(excludeFilters = { @ComponentScan.Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class), | @ComponentScan(excludeFilters = { @ComponentScan.Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class), |
package cn.com.taiji.ods.config; | package cn.com.taiji.ods.config; | ||||
import javax.annotation.PostConstruct; | import javax.annotation.PostConstruct; | ||||
import javax.persistence.EntityManagerFactory; | |||||
import javax.sql.DataSource; | import javax.sql.DataSource; | ||||
import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceBuilder; | |||||
import org.springframework.beans.factory.annotation.Autowired; | import org.springframework.beans.factory.annotation.Autowired; | ||||
import org.springframework.beans.factory.annotation.Qualifier; | |||||
import org.springframework.boot.autoconfigure.domain.EntityScan; | import org.springframework.boot.autoconfigure.domain.EntityScan; | ||||
import org.springframework.boot.context.properties.ConfigurationProperties; | |||||
import org.springframework.context.MessageSource; | import org.springframework.context.MessageSource; | ||||
import org.springframework.context.annotation.AdviceMode; | import org.springframework.context.annotation.AdviceMode; | ||||
import org.springframework.context.annotation.Bean; | import org.springframework.context.annotation.Bean; | ||||
import org.springframework.context.annotation.Configuration; | import org.springframework.context.annotation.Configuration; | ||||
import org.springframework.context.annotation.Primary; | |||||
import org.springframework.data.jpa.repository.config.EnableJpaRepositories; | import org.springframework.data.jpa.repository.config.EnableJpaRepositories; | ||||
import org.springframework.orm.jpa.JpaTransactionManager; | |||||
import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean; | |||||
import org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter; | |||||
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; | import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; | ||||
import org.springframework.transaction.PlatformTransactionManager; | |||||
import org.springframework.transaction.annotation.EnableTransactionManagement; | import org.springframework.transaction.annotation.EnableTransactionManagement; | ||||
import org.springframework.validation.beanvalidation.LocalValidatorFactoryBean; | import org.springframework.validation.beanvalidation.LocalValidatorFactoryBean; | ||||
import cn.com.taiji.common.pub.AppEnv; | import cn.com.taiji.common.pub.AppEnv; | ||||
import cn.com.taiji.common.repo.jpa.MyJpaRespositoryFactoryBean; | import cn.com.taiji.common.repo.jpa.MyJpaRespositoryFactoryBean; | ||||
import java.util.Properties; | |||||
import java.util.concurrent.ThreadPoolExecutor; | import java.util.concurrent.ThreadPoolExecutor; | ||||
@Configuration | @Configuration | ||||
@EntityScan(value = {"cn.com.taiji." + AppConfig.APP_NAME + ".entity", "cn.com.taiji.core.entity"}) | |||||
@EnableJpaRepositories( | |||||
basePackages = {"cn.com.taiji." + AppConfig.APP_NAME + ".repo.jpa", "cn.com.taiji.core.repo.jpa"}, | |||||
repositoryFactoryBeanClass = MyJpaRespositoryFactoryBean.class) | |||||
@EntityScan(value = {"cn.com.taiji.core.entity"}) | |||||
@EnableJpaRepositories(basePackages = {"cn.com.taiji.core.repo.jpa"}, | |||||
entityManagerFactoryRef = "primaryEntityManager", | |||||
transactionManagerRef = "primaryTransactionManager", | |||||
repositoryFactoryBeanClass = MyJpaRespositoryFactoryBean.class) | |||||
@EnableTransactionManagement(mode = AdviceMode.ASPECTJ, proxyTargetClass = true) | @EnableTransactionManagement(mode = AdviceMode.ASPECTJ, proxyTargetClass = true) | ||||
public class AppConfig extends AbstractManager { | public class AppConfig extends AbstractManager { | ||||
public static final String APP_NAME = "ods"; | public static final String APP_NAME = "ods"; | ||||
@Autowired | @Autowired | ||||
private MessageSource messageSource; | private MessageSource messageSource; | ||||
@Autowired | @Autowired | ||||
private DataSource dataSource; | |||||
@Autowired | |||||
private AppConfigProperties appConfig; | private AppConfigProperties appConfig; | ||||
@PostConstruct | @PostConstruct | ||||
AppEnv.setNodeNum(appConfig.getNodeNum()); | AppEnv.setNodeNum(appConfig.getNodeNum()); | ||||
} | } | ||||
@Primary | |||||
@Bean(name = "primaryDataSource") | |||||
@ConfigurationProperties(prefix = "spring.datasource.druid.first") | |||||
public DataSource primaryDataSource() { | |||||
return DruidDataSourceBuilder.create().build(); | |||||
} | |||||
@Primary | |||||
@Bean(name = "primaryEntityManager") | |||||
public LocalContainerEntityManagerFactoryBean entityManagerFactoryBean() { | |||||
LocalContainerEntityManagerFactoryBean factoryBean = new LocalContainerEntityManagerFactoryBean(); | |||||
factoryBean.setDataSource(primaryDataSource()); | |||||
factoryBean.setPackagesToScan( | |||||
new String[] {"cn.com.taiji.core.entity"}); | |||||
HibernateJpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter(); | |||||
vendorAdapter.setDatabasePlatform("org.hibernate.dialect.Oracle10gDialect"); | |||||
if (logger.isDebugEnabled()) { | |||||
// vendorAdapter.setShowSql(true); | |||||
// vendorAdapter.setGenerateDdl(true); | |||||
} | |||||
factoryBean.setJpaVendorAdapter(vendorAdapter); | |||||
factoryBean.setJpaProperties(this.qtkAdditionlProperties()); | |||||
return factoryBean; | |||||
} | |||||
@Primary | |||||
@Bean(name = "primaryTransactionManager") | |||||
public PlatformTransactionManager | |||||
payTransactionManager(@Qualifier("primaryEntityManager") EntityManagerFactory entityManagerFactory) { | |||||
return new JpaTransactionManager(entityManagerFactory); | |||||
} | |||||
private Properties qtkAdditionlProperties() { | |||||
Properties props = new Properties(); | |||||
// if (!useHsqldb) props.setProperty("hibernate.default_schema", schema);// 设置默认schema | |||||
props.setProperty("hibernate.connection.handling_mode", "DELAYED_ACQUISITION_AND_HOLD");// PhysicalConnectionHandlingMode | |||||
return props; | |||||
} | |||||
@Bean | @Bean | ||||
public LocalValidatorFactoryBean validator() { | public LocalValidatorFactoryBean validator() { | ||||
LocalValidatorFactoryBean validatorFactoryBean = new LocalValidatorFactoryBean(); | LocalValidatorFactoryBean validatorFactoryBean = new LocalValidatorFactoryBean(); | ||||
} | } | ||||
@Bean | @Bean | ||||
public CommonBatchJdbcDao commonJdbcDao() { | |||||
public CommonBatchJdbcDao commonJdbcDao(@Qualifier("primaryDataSource") DataSource dataSource) { | |||||
return new CommonBatchJdbcDao(dataSource); | return new CommonBatchJdbcDao(dataSource); | ||||
} | } | ||||
package cn.com.taiji.ods.config; | |||||
import cn.com.taiji.common.manager.AbstractManager; | |||||
import cn.com.taiji.common.repo.jpa.MyJpaRespositoryFactoryBean; | |||||
import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceBuilder; | |||||
import org.springframework.beans.factory.annotation.Qualifier; | |||||
import org.springframework.boot.autoconfigure.domain.EntityScan; | |||||
import org.springframework.boot.context.properties.ConfigurationProperties; | |||||
import org.springframework.context.annotation.AdviceMode; | |||||
import org.springframework.context.annotation.Bean; | |||||
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.LocalContainerEntityManagerFactoryBean; | |||||
import org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter; | |||||
import org.springframework.transaction.PlatformTransactionManager; | |||||
import org.springframework.transaction.annotation.EnableTransactionManagement; | |||||
import javax.persistence.EntityManagerFactory; | |||||
import javax.sql.DataSource; | |||||
import java.util.Properties; | |||||
@Configuration | |||||
@EntityScan(value = {"cn.com.taiji.ods.entity.dsi"}) | |||||
@EnableJpaRepositories(basePackages = {"cn.com.taiji.ods.repo.jpa.dsi"}, | |||||
entityManagerFactoryRef = "dsiEntityManager", | |||||
transactionManagerRef = "secondTransactionManager", | |||||
repositoryFactoryBeanClass = MyJpaRespositoryFactoryBean.class) | |||||
@EnableTransactionManagement(mode = AdviceMode.ASPECTJ, proxyTargetClass = true) | |||||
public class DsiDbConfig extends AbstractManager { | |||||
@Bean(name = "secondDataSource") | |||||
@ConfigurationProperties(prefix = "spring.datasource.druid.second") | |||||
public DataSource secondDataSource() { | |||||
return DruidDataSourceBuilder.create().build(); | |||||
} | |||||
@Bean(name = "dsiEntityManager") | |||||
public LocalContainerEntityManagerFactoryBean entityManagerFactory() { | |||||
LocalContainerEntityManagerFactoryBean factoryBean = new LocalContainerEntityManagerFactoryBean(); | |||||
factoryBean.setDataSource(secondDataSource()); | |||||
factoryBean.setPackagesToScan(new String[] {"cn.com.taiji.ods.entity.dsi"}); | |||||
HibernateJpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter(); | |||||
vendorAdapter.setDatabasePlatform("org.hibernate.dialect.Oracle10gDialect"); | |||||
factoryBean.setJpaVendorAdapter(vendorAdapter); | |||||
factoryBean.setJpaProperties(this.qtkAdditionlProperties()); | |||||
return factoryBean; | |||||
} | |||||
@Bean(name = "secondTransactionManager") | |||||
public PlatformTransactionManager | |||||
payTransactionManager(@Qualifier("dsiEntityManager") EntityManagerFactory entityManagerFactory) { | |||||
return new JpaTransactionManager(entityManagerFactory); | |||||
} | |||||
private Properties qtkAdditionlProperties() { | |||||
Properties props = new Properties(); | |||||
// if (!useHsqldb) props.setProperty("hibernate.default_schema", schema);// 设置默认schema | |||||
props.setProperty("hibernate.connection.handling_mode", "DELAYED_ACQUISITION_AND_HOLD");// PhysicalConnectionHandlingMode | |||||
return props; | |||||
} | |||||
} |
package cn.com.taiji.ods.config; | |||||
import cn.com.taiji.common.manager.AbstractManager; | |||||
import cn.com.taiji.common.repo.jpa.MyJpaRespositoryFactoryBean; | |||||
import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceBuilder; | |||||
import org.springframework.beans.factory.annotation.Qualifier; | |||||
import org.springframework.boot.autoconfigure.domain.EntityScan; | |||||
import org.springframework.boot.context.properties.ConfigurationProperties; | |||||
import org.springframework.context.annotation.AdviceMode; | |||||
import org.springframework.context.annotation.Bean; | |||||
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.LocalContainerEntityManagerFactoryBean; | |||||
import org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter; | |||||
import org.springframework.transaction.PlatformTransactionManager; | |||||
import org.springframework.transaction.annotation.EnableTransactionManagement; | |||||
import javax.persistence.EntityManagerFactory; | |||||
import javax.sql.DataSource; | |||||
import java.util.Properties; | |||||
@Configuration | |||||
@EntityScan(value = {"cn.com.taiji.ods.entity.doris"}) | |||||
@EnableJpaRepositories(basePackages = {"cn.com.taiji.ods.repo.jpa.doris"}, | |||||
entityManagerFactoryRef = "dorisEntityManager", | |||||
transactionManagerRef = "thridTransactionManager", | |||||
repositoryFactoryBeanClass = MyJpaRespositoryFactoryBean.class) | |||||
@EnableTransactionManagement(mode = AdviceMode.ASPECTJ, proxyTargetClass = true) | |||||
public class ThiDbConfig extends AbstractManager { | |||||
@Bean(name = "thirdDataSource") | |||||
@ConfigurationProperties(prefix = "spring.datasource.druid.third") | |||||
public DataSource secondDataSource() { | |||||
return DruidDataSourceBuilder.create().build(); | |||||
} | |||||
@Bean(name = "dorisEntityManager") | |||||
public LocalContainerEntityManagerFactoryBean entityManagerFactory() { | |||||
LocalContainerEntityManagerFactoryBean factoryBean = new LocalContainerEntityManagerFactoryBean(); | |||||
factoryBean.setDataSource(secondDataSource()); | |||||
factoryBean.setPackagesToScan(new String[] { "cn.com.taiji.ods.entity.doris" }); | |||||
HibernateJpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter(); | |||||
vendorAdapter.setDatabasePlatform("org.hibernate.dialect.MySQLDialect"); | |||||
factoryBean.setJpaVendorAdapter(vendorAdapter); | |||||
factoryBean.setJpaProperties(this.qtkAdditionlProperties()); | |||||
return factoryBean; | |||||
} | |||||
@Bean(name = "thridTransactionManager") | |||||
public PlatformTransactionManager payTransactionManager(@Qualifier("dorisEntityManager") EntityManagerFactory entityManagerFactory) { | |||||
return new JpaTransactionManager(entityManagerFactory); | |||||
} | |||||
private Properties qtkAdditionlProperties() { | |||||
Properties props = new Properties(); | |||||
// if (!useHsqldb) props.setProperty("hibernate.default_schema", schema);// 设置默认schema | |||||
props.setProperty("hibernate.connection.handling_mode", "DELAYED_ACQUISITION_AND_HOLD");// PhysicalConnectionHandlingMode | |||||
return props; | |||||
} | |||||
} |
#应用相关配置 | #应用相关配置 | ||||
app: | app: | ||||
nodeNum: 001 | nodeNum: 001 | ||||
path: D:/devEnv/ods/ #工程的目录,#sso集成默认读取该目录下的oauth_client.properties | |||||
path: D:/devEnv/sample/ #工程的目录,#sso集成默认读取该目录下的oauth_client.properties | |||||
comm: | comm: | ||||
# 自定义服务地址map,key为服务名、value为服务地址。如果配置了服务地址,接口调用时请求到该地址,如果没配置,默认请求到gateway | # 自定义服务地址map,key为服务名、value为服务地址。如果配置了服务地址,接口调用时请求到该地址,如果没配置,默认请求到gateway | ||||
serviceAddr: | serviceAddr: |
@Test | @Test | ||||
public void cardBlackQueryManagerJsonRepeatTest() throws ManagerException { | public void cardBlackQueryManagerJsonRepeatTest() throws ManagerException { | ||||
OqsCardBlackRequest oqsCardBlackRequest = new OqsCardBlackRequest(); | OqsCardBlackRequest oqsCardBlackRequest = new OqsCardBlackRequest(); | ||||
oqsCardBlackRequest.setCardId("52012223230230864327"); | |||||
OqsCardBlackResponse oqsCardBlackResponse = null; | OqsCardBlackResponse oqsCardBlackResponse = null; | ||||
try { | try { | ||||
oqsCardBlackResponse = jsonPostRepeat(oqsCardBlackRequest); | oqsCardBlackResponse = jsonPostRepeat(oqsCardBlackRequest); |