Commit eb414b8d authored by hcing's avatar hcing

feat(jyjc):jyjc集成seata

parent 02e2e5da
......@@ -142,6 +142,11 @@
<groupId>com.yeejoin</groupId>
<artifactId>amos-feign-systemctl</artifactId>
</dependency>
<dependency>
<groupId>io.seata</groupId>
<artifactId>seata-spring-boot-starter</artifactId>
<version>1.8.0</version>
</dependency>
</dependencies>
</project>
package com.yeejoin.amos.boot.module.jg.biz.feign;
import com.yeejoin.amos.boot.module.jg.biz.config.XidFeignConfiguration;
import com.yeejoin.amos.boot.biz.common.feign.XidFeignConfiguration;
import com.yeejoin.amos.component.feign.config.InnerInvokException;
import com.yeejoin.amos.component.feign.model.FeignClientResult;
import com.yeejoin.amos.feign.systemctl.model.TaskV2Model;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import java.util.List;
/**
......
package com.yeejoin.amos.boot.module.jg.biz.feign;
import com.alibaba.fastjson.JSONObject;
import com.yeejoin.amos.boot.module.jg.biz.config.XidFeignConfiguration;
import com.yeejoin.amos.boot.biz.common.feign.XidFeignConfiguration;
import com.yeejoin.amos.component.feign.model.FeignClientResult;
import com.yeejoin.amos.feign.workflow.model.*;
import org.springframework.cloud.openfeign.FeignClient;
......
......@@ -34,6 +34,11 @@
<groupId>net.javacrumbs.shedlock</groupId>
<artifactId>shedlock-provider-redis-spring</artifactId>
</dependency>
<dependency>
<groupId>io.seata</groupId>
<artifactId>seata-spring-boot-starter</artifactId>
<version>1.8.0</version>
</dependency>
</dependencies>
<build>
<plugins>
......
......@@ -18,6 +18,7 @@ import org.springframework.core.env.Environment;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.transaction.annotation.EnableTransactionManagement;
import springfox.documentation.swagger2.annotations.EnableSwagger2WebMvc;
import java.net.InetAddress;
import java.net.UnknownHostException;
......@@ -28,7 +29,6 @@ import java.net.UnknownHostException;
*
* @author DELL
*/
@SpringBootApplication
@EnableTransactionManagement
@EnableConfigurationProperties
@ServletComponentScan
......@@ -42,6 +42,7 @@ import java.net.UnknownHostException;
"org.typroject.tyboot.core.auth.face.orm.dao*", "org.typroject.tyboot.component.*.face.orm.dao*",
"com.yeejoin.amos.boot.module.**.api.mapper", "com.yeejoin.amos.boot.biz.common.dao.mapper"})
@ComponentScan(basePackages = {"org.typroject", "com.yeejoin.amos"})
@SpringBootApplication(exclude = {org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration.class})
public class AmosJyjcApplication {
private static final Logger logger = LoggerFactory.getLogger(AmosJyjcApplication.class);
......
package com.yeejoin.amos.boot.module.jyjc.biz.config;
import com.baomidou.mybatisplus.autoconfigure.MybatisPlusProperties;
import com.baomidou.mybatisplus.core.config.GlobalConfig;
import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
import com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean;
import com.yeejoin.amos.boot.biz.config.MetaHandler;
import com.yeejoin.amos.boot.biz.config.MybatisSqlInjector;
import com.zaxxer.hikari.HikariDataSource;
import io.seata.rm.datasource.DataSourceProxy;
import org.apache.ibatis.plugin.Interceptor;
import org.apache.ibatis.session.SqlSessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.jdbc.DataSourceProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
import org.springframework.core.io.support.ResourcePatternResolver;
import javax.sql.DataSource;
/**
* 数据源代理
*
* @author LiuLin
*/
@Configuration
public class DataSourceConfiguration {
@Bean("dataSource")
public DataSourceProxy dataSourceProxy(HikariDataSourceProperties hikariDataSourceProperties, DataSourceProperties dataSourceProperties) {
HikariDataSource dataSource = dataSourceProperties.initializeDataSourceBuilder().type(HikariDataSource.class).build();
dataSource.setMaximumPoolSize(hikariDataSourceProperties.getMaximumPoolSize());
dataSource.setMinimumIdle(hikariDataSourceProperties.getMinimumIdle());
dataSource.setMaxLifetime(hikariDataSourceProperties.getMaxLifetime());
dataSource.setPoolName(hikariDataSourceProperties.getPoolName());
dataSource.setConnectionTestQuery(hikariDataSourceProperties.getConnectionTestQuery());
dataSource.setIdleTimeout(hikariDataSourceProperties.getIdleTimeout());
dataSource.setConnectionTimeout(hikariDataSourceProperties.getConnectionTimeout());
dataSource.setIdleTimeout(hikariDataSourceProperties.getIdleTimeout());
dataSource.setConnectionInitSql(hikariDataSourceProperties.getConnectionInitSql());
return new DataSourceProxy(dataSource);
}
@Bean(name = "sqlSessionFactory")
@Autowired
public SqlSessionFactory sqlSessionFactoryBean(DataSource dataSourceProxy, PaginationInterceptor paginationInterceptor, MetaHandler metaHandler, MybatisPlusProperties mybatisPlusProperties) throws Exception {
MybatisSqlSessionFactoryBean bean = new MybatisSqlSessionFactoryBean();
bean.setDataSource(dataSourceProxy);
ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
bean.setMapperLocations(resolver.getResources("classpath*:mapper/*.xml"));
bean.setConfigurationProperties(mybatisPlusProperties.getConfigurationProperties());
GlobalConfig globalConfig = new GlobalConfig();
globalConfig.setSqlInjector(new MybatisSqlInjector());
globalConfig.setMetaObjectHandler(metaHandler);
bean.setGlobalConfig(globalConfig);
Interceptor[] plugins = {paginationInterceptor};
bean.setPlugins(plugins);
return bean.getObject();
}
@Bean
public MetaHandler metaHandler() {
return new MetaHandler();
}
}
package com.yeejoin.amos.boot.module.jyjc.biz.config;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
/**
* @author shg
*/
@Component
@ConfigurationProperties(prefix = "spring.datasource.hikari")
@Data
public class HikariDataSourceProperties {
private int maximumPoolSize;
private int minimumIdle;
private boolean autoCommit;
private long idleTimeout;
private String poolName;
private long maxLifetime;
private long connectionTimeout;
private String connectionTestQuery;
private long validationTimeout;
private String connectionInitSql;
}
package com.yeejoin.amos.boot.module.jyjc.biz.feign;
import com.alibaba.fastjson.JSONObject;
import com.yeejoin.amos.boot.biz.common.feign.MultipartSupportConfig;
import com.yeejoin.amos.boot.biz.common.feign.XidFeignConfiguration;
import com.yeejoin.amos.component.feign.model.FeignClientResult;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;
import java.util.Map;
@FeignClient(contextId = "jyjc", name = "${workflow.feign.name:AMOS-API-WORKFLOW}", path = "workflow", configuration = {MultipartSupportConfig.class})
@FeignClient(contextId = "jyjc", name = "${workflow.feign.name:AMOS-API-WORKFLOW}", path = "workflow", configuration = {XidFeignConfiguration.class})
public interface WorkflowFeignClient {
/***
......
......@@ -47,6 +47,10 @@ spring.elasticsearch.rest.uris=http://172.16.10.243:9200
elasticsearch.username= elastic
elasticsearch.password= a123456
#Seata Config
seata.tx-service-group= tzs-seata
seata.service.grouplist.tzs-seata=172.16.10.243:8091
#检验检测流程KEY
process-definition-key.jyjc.openapplication=inspectionBusinessOpened
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment