注解优化,grpc开发

This commit is contained in:
暮光:城中城
2019-04-02 20:22:18 +08:00
parent f5e6a5998d
commit 7caebe9eaf
48 changed files with 13154 additions and 283 deletions

View File

@@ -1,23 +0,0 @@
package com.zyplayer.doc.manage.framework.config;
import com.zyplayer.doc.db.framework.configuration.EnableDocDb;
import com.zyplayer.doc.db.framework.db.bean.DatabaseRegistrationBean;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
* @Author
* @Date 2018/11/11
**/
@EnableDocDb
@Configuration
public class DocDatabaseRegistrationConfig {
@Bean
@ConfigurationProperties(prefix = "zyplayer.doc.db")
public DatabaseRegistrationBean databaseRegistrationBean(){
return new DatabaseRegistrationBean();
}
}

View File

@@ -1,14 +0,0 @@
package com.zyplayer.doc.manage.framework.config;
import com.zyplayer.doc.dubbo.framework.config.EnableDocDubbo;
import org.springframework.context.annotation.Configuration;
/**
* @Author
* @Date 2018/11/11
**/
@EnableDocDubbo
@Configuration
public class DocDubboConfig {
}

View File

@@ -1,14 +0,0 @@
package com.zyplayer.doc.manage.framework.config;
import com.zyplayer.doc.wiki.framework.config.EnableDocWiki;
import org.springframework.context.annotation.Configuration;
/**
* @Author
* @Date 2018/11/11
**/
@EnableDocWiki
@Configuration
public class DocWikiConfig {
}

View File

@@ -1,141 +0,0 @@
//package com.zyplayer.doc.manage.framework.config;
//
//import com.atomikos.icatch.jta.UserTransactionImp;
//import com.atomikos.icatch.jta.UserTransactionManager;
//import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
//import com.baomidou.mybatisplus.extension.plugins.PerformanceInterceptor;
//import com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean;
//import com.zyplayer.doc.data.repository.support.interceptor.SqlLogInterceptor;
//import org.apache.ibatis.plugin.Interceptor;
//import org.mybatis.spring.annotation.MapperScan;
//import org.springframework.beans.factory.annotation.Value;
//import org.springframework.boot.jta.atomikos.AtomikosDataSourceBean;
//import org.springframework.context.annotation.Bean;
//import org.springframework.context.annotation.Configuration;
//import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
//import org.springframework.transaction.PlatformTransactionManager;
//import org.springframework.transaction.annotation.EnableTransactionManagement;
//import org.springframework.transaction.jta.JtaTransactionManager;
//
//import javax.sql.DataSource;
//import javax.transaction.TransactionManager;
//import javax.transaction.UserTransaction;
//import java.util.Properties;
//
///**
// * mybatis plus数据库配置
// */
////@Configuration
//public class MybatisPlusConfig {
//
// /**
// * sql日志
// **/
// private static final SqlLogInterceptor SQL_LOG_INTERCEPTOR;
//
// static {
// SQL_LOG_INTERCEPTOR = new SqlLogInterceptor();
// Properties properties = new Properties();
// SQL_LOG_INTERCEPTOR.setProperties(properties);
// }
//
// /**
// * 分布式事务配置
// */
// @Configuration
// static class JTATransactionManagerConfig {
//
// @Bean(name = "userTransaction")
// public UserTransaction userTransaction() throws Throwable {
// UserTransactionImp userTransactionImp = new UserTransactionImp();
// userTransactionImp.setTransactionTimeout(300);
// return userTransactionImp;
// }
//
// @Bean(name = "atomikosTransactionManager")
// public TransactionManager atomikosTransactionManager() {
// UserTransactionManager userTransactionManager = new UserTransactionManager();
// userTransactionManager.setForceShutdown(true);
// return userTransactionManager;
// }
//
// @Bean(name = "transactionManager")
// public PlatformTransactionManager transactionManager() throws Throwable {
// UserTransaction userTransaction = userTransaction();
// TransactionManager atomikosTransactionManager = atomikosTransactionManager();
//
// JtaTransactionManager jtaTransactionManager = new JtaTransactionManager(userTransaction, atomikosTransactionManager);
// jtaTransactionManager.setAllowCustomIsolationLevels(true);
// jtaTransactionManager.setGlobalRollbackOnParticipationFailure(true);
// jtaTransactionManager.setDefaultTimeout(30);
//
// return jtaTransactionManager;
// }
// }
//
// /**
// * 数据库配置
// */
// @Configuration
// @EnableTransactionManagement
// @MapperScan(value = "com.zyplayer.doc.data.repository.manage.mapper", sqlSessionFactoryRef = "manageSqlSessionFactory")
// static class ManageMybatisDbConfig {
//
// @Value("${zyplayer.doc.manage.datasource.driverClassName}")
// private String driverClassName;
// @Value("${zyplayer.doc.manage.datasource.url}")
// private String url;
// @Value("${zyplayer.doc.manage.datasource.username}")
// private String username;
// @Value("${zyplayer.doc.manage.datasource.password}")
// private String password;
//
// @Bean(name = "manageDatasource")
// public DataSource manageDatasource() {
// Properties xaProperties = new Properties();
// xaProperties.setProperty("driverClassName", driverClassName);
// xaProperties.setProperty("url", url);
// xaProperties.setProperty("username", username);
// xaProperties.setProperty("password", password);
// xaProperties.setProperty("maxActive", "500");
// xaProperties.setProperty("testOnBorrow", "true");
// xaProperties.setProperty("testWhileIdle", "true");
// xaProperties.setProperty("validationQuery", "select 'x'");
//
// AtomikosDataSourceBean xaDataSource = new AtomikosDataSourceBean();
// xaDataSource.setXaProperties(xaProperties);
// xaDataSource.setXaDataSourceClassName("com.alibaba.druid.pool.xa.DruidXADataSource");
// xaDataSource.setUniqueResourceName("manageDatasource");
// xaDataSource.setMaxPoolSize(500);
// xaDataSource.setMinPoolSize(1);
// xaDataSource.setMaxLifetime(60);
// return xaDataSource;
// }
//
// @Bean(name = "manageSqlSessionFactory")
// public MybatisSqlSessionFactoryBean manageSqlSessionFactory() throws Exception {
// MybatisSqlSessionFactoryBean sqlSessionFactoryBean = new MybatisSqlSessionFactoryBean();
// sqlSessionFactoryBean.setDataSource(manageDatasource());
// sqlSessionFactoryBean.setPlugins(new Interceptor[]{SQL_LOG_INTERCEPTOR});
//
// PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
// sqlSessionFactoryBean.setMapperLocations(resolver.getResources("classpath:/mapper/manage/*Mapper.xml"));
// return sqlSessionFactoryBean;
// }
// }
//
// @Bean
// public PerformanceInterceptor performanceInterceptor() {
// PerformanceInterceptor performanceInterceptor = new PerformanceInterceptor();
// /* <!-- SQL 执行性能分析,开发环境使用,线上不推荐。 maxTime 指的是 sql 最大执行时长 --> */
// performanceInterceptor.setMaxTime(1000);
// /* <!--SQL是否格式化 默认false--> */
// performanceInterceptor.setFormat(true);
// return performanceInterceptor;
// }
//
// @Bean
// public PaginationInterceptor paginationInterceptor() {
// return new PaginationInterceptor();
// }
//}

View File

@@ -1,53 +0,0 @@
package com.zyplayer.doc.manage.framework.config;
import com.google.common.base.Predicates;
import com.zyplayer.doc.swagger.framework.configuration.EnableSwaggerMgUi;
import io.swagger.annotations.Api;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
/**
* 不需要管理本项目的文档,只需要开启@EnableSwaggerMgUi即可
* @author 暮光:城中城
* @since 2018年11月11日
*/
@Configuration
//@EnableSwagger2
@EnableSwaggerMgUi(
selfDoc = false,// 是否开启自身的文档
defaultLocation = {// 启动后第一次访问没有数据情况下需要加载进来的/v2/doc地址
//"http://localhost:8080/v2/doc"
}
)
public class SwaggerConfiguration {
@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
.apis(Predicates.or(
RequestHandlerSelectors.basePackage("com.zyplayer.doc.manage"),
RequestHandlerSelectors.withClassAnnotation(Api.class)))
.paths(PathSelectors.any())
.build();
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("zyplayer-doc-manage接口文档")
.description("欢迎使用")
.termsOfServiceUrl("")
.contact(new Contact("", "", ""))
.version("1.0")
.build();
}
}

View File

@@ -0,0 +1,42 @@
package com.zyplayer.doc.manage.framework.config;
import com.zyplayer.doc.db.framework.configuration.EnableDocDb;
import com.zyplayer.doc.db.framework.db.bean.DatabaseRegistrationBean;
import com.zyplayer.doc.dubbo.framework.config.EnableDocDubbo;
import com.zyplayer.doc.grpc.framework.config.EnableDocGrpc;
import com.zyplayer.doc.swagger.framework.configuration.EnableDocSwagger;
import com.zyplayer.doc.wiki.framework.config.EnableDocWiki;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
* 按需开启zyplayer-doc所有的服务
*
* @author 暮光:城中城
* @since 2019年3月31日
*/
@Configuration
public class ZyplayerDocConfig {
@EnableDocGrpc // grpc默认不开启
public class enableDocGrpc{}
@EnableDocWiki
public class enableDocWiki{}
@EnableDocDubbo
public class enableDocDubbo{}
@EnableDocDb
public class enableDocDb{}
@EnableDocSwagger(selfDoc = false)
public class enableDocSwagger{}
@Bean
@ConfigurationProperties(prefix = "zyplayer.doc.db")
public DatabaseRegistrationBean databaseRegistrationBean() {
return new DatabaseRegistrationBean();
}
}