Commit 8d379f97 by yuwei

2.0.0项目初始化

parent a70cc846
...@@ -19,8 +19,7 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; ...@@ -19,8 +19,7 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.data.redis.connection.RedisConnectionFactory; import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.core.*; import org.springframework.data.redis.core.*;
import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer; import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer;
import org.springframework.data.redis.serializer.RedisSerializer;
import org.springframework.data.redis.serializer.StringRedisSerializer; import org.springframework.data.redis.serializer.StringRedisSerializer;
import java.time.LocalDate; import java.time.LocalDate;
...@@ -32,12 +31,12 @@ import java.time.format.DateTimeFormatter; ...@@ -32,12 +31,12 @@ import java.time.format.DateTimeFormatter;
public class RedisConfig { public class RedisConfig {
/** /**
* 自定义redis序列化的机制,重新定义一个ObjectMapper.防止和MVC的冲突 * 实例化 RedisTemplate 对象
* *
* @return * @return
*/ */
@Bean @Bean
public RedisSerializer<Object> redisSerializer() { public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) {
ObjectMapper objectMapper = new ObjectMapper(); ObjectMapper objectMapper = new ObjectMapper();
objectMapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY); objectMapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
//使用JSR310提供的序列化类,里面包含了大量的JDK8时间序列化类 //使用JSR310提供的序列化类,里面包含了大量的JDK8时间序列化类
...@@ -60,24 +59,13 @@ public class RedisConfig { ...@@ -60,24 +59,13 @@ public class RedisConfig {
objectMapper.configure(SerializationFeature.WRITE_DATE_KEYS_AS_TIMESTAMPS, false); objectMapper.configure(SerializationFeature.WRITE_DATE_KEYS_AS_TIMESTAMPS, false);
//启用反序列化所需的类型信息,在属性中添加@class //启用反序列化所需的类型信息,在属性中添加@class
objectMapper.activateDefaultTyping(LaissezFaireSubTypeValidator.instance, ObjectMapper.DefaultTyping.NON_FINAL); objectMapper.activateDefaultTyping(LaissezFaireSubTypeValidator.instance, ObjectMapper.DefaultTyping.NON_FINAL);
//配置null值的序列化器 Jackson2JsonRedisSerializer<Object> serializer = new Jackson2JsonRedisSerializer<Object>(Object.class);
GenericJackson2JsonRedisSerializer.registerNullValueSerializer(objectMapper, null); serializer.setObjectMapper(objectMapper);
return new GenericJackson2JsonRedisSerializer(objectMapper);
}
/**
* 实例化 RedisTemplate 对象
*
* @return
*/
@Bean
public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory, RedisSerializer<Object> redisSerializer) {
RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>(); RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();
redisTemplate.setDefaultSerializer(redisSerializer);
redisTemplate.setConnectionFactory(redisConnectionFactory); redisTemplate.setConnectionFactory(redisConnectionFactory);
redisTemplate.setDefaultSerializer(redisSerializer); redisTemplate.setDefaultSerializer(serializer);
redisTemplate.setValueSerializer(redisSerializer); redisTemplate.setValueSerializer(serializer);
redisTemplate.setHashValueSerializer(redisSerializer); redisTemplate.setHashValueSerializer(serializer);
redisTemplate.setKeySerializer(StringRedisSerializer.UTF_8); redisTemplate.setKeySerializer(StringRedisSerializer.UTF_8);
redisTemplate.setHashKeySerializer(StringRedisSerializer.UTF_8); redisTemplate.setHashKeySerializer(StringRedisSerializer.UTF_8);
redisTemplate.afterPropertiesSet(); redisTemplate.afterPropertiesSet();
......
package cn.datax.service.data.factory.config;
import org.springframework.cache.CacheManager;
import org.springframework.cache.annotation.CachingConfigurerSupport;
import org.springframework.cache.annotation.EnableCaching;
import org.springframework.cache.interceptor.KeyGenerator;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.cache.RedisCacheConfiguration;
import org.springframework.data.redis.cache.RedisCacheManager;
import org.springframework.data.redis.cache.RedisCacheWriter;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.serializer.RedisSerializationContext;
import org.springframework.data.redis.serializer.RedisSerializer;
import java.lang.reflect.Method;
import java.time.Duration;
import java.util.HashMap;
import java.util.Map;
@Configuration
@EnableCaching
public class RedisCacheConfig extends CachingConfigurerSupport {
/**
* 在没有指定缓存Key的情况下,key生成策略
* @return
*/
@Bean
public KeyGenerator keyGenerator() {
return new KeyGenerator() {
@Override
public Object generate(Object target, Method method, Object... params) {
StringBuilder sb = new StringBuilder();
sb.append(target.getClass().getName());
sb.append("#" + method.getName());
for (Object obj : params) {
sb.append(obj.toString());
}
return sb.toString();
}
};
}
@Bean
public CacheManager cacheManager(RedisConnectionFactory redisConnectionFactory, RedisSerializer<Object> redisSerializer) {
return new RedisCacheManager(
RedisCacheWriter.nonLockingRedisCacheWriter(redisConnectionFactory),
this.redisCacheConfigurationWithTtl(30, redisSerializer),
this.redisCacheConfigurationMap(redisSerializer)
);
}
private Map<String, RedisCacheConfiguration> redisCacheConfigurationMap(RedisSerializer<Object> redisSerializer) {
Map<String, RedisCacheConfiguration> redisCacheConfigurationMap = new HashMap<>();
redisCacheConfigurationMap.put("data:factory:sources", redisCacheConfigurationWithTtl(30, redisSerializer));
redisCacheConfigurationMap.put("data:factory:sets", redisCacheConfigurationWithTtl(30, redisSerializer));
return redisCacheConfigurationMap;
}
private RedisCacheConfiguration redisCacheConfigurationWithTtl(Integer minutes, RedisSerializer<Object> redisSerializer) {
RedisCacheConfiguration redisCacheConfiguration = RedisCacheConfiguration.defaultCacheConfig();
redisCacheConfiguration = redisCacheConfiguration.serializeValuesWith(
RedisSerializationContext.SerializationPair.fromSerializer(redisSerializer)
).entryTtl(Duration.ofMinutes(minutes));
return redisCacheConfiguration;
}
}
\ No newline at end of file
...@@ -62,8 +62,8 @@ public class DataSetController extends BaseController { ...@@ -62,8 +62,8 @@ public class DataSetController extends BaseController {
@ApiImplicitParam(name = "id", value = "ID", required = true, dataType = "String", paramType = "path") @ApiImplicitParam(name = "id", value = "ID", required = true, dataType = "String", paramType = "path")
@GetMapping("/{id}") @GetMapping("/{id}")
public R getDataSetById(@PathVariable String id) { public R getDataSetById(@PathVariable String id) {
DataSetEntity dataSetEntity = dataSetService.getById(id); DataSetVo dataSetVo = dataSetService.getDataSetById(id);
return R.ok().setData(dataSetMapper.toVO(dataSetEntity)); return R.ok().setData(dataSetVo);
} }
/** /**
......
...@@ -57,8 +57,8 @@ public class DataSourceController extends BaseController { ...@@ -57,8 +57,8 @@ public class DataSourceController extends BaseController {
@ApiImplicitParam(name = "id", value = "ID", required = true, dataType = "String", paramType = "path") @ApiImplicitParam(name = "id", value = "ID", required = true, dataType = "String", paramType = "path")
@GetMapping("/{id}") @GetMapping("/{id}")
public R getDataSourceById(@PathVariable String id) { public R getDataSourceById(@PathVariable String id) {
DataSourceEntity dataSourceEntity = dataSourceService.getById(id); DataSourceVo dataSourceVo = dataSourceService.getDataSourceById(id);
return R.ok().setData(dataSourceMapper.toVO(dataSourceEntity)); return R.ok().setData(dataSourceVo);
} }
/** /**
......
...@@ -3,8 +3,7 @@ package cn.datax.service.data.factory.controller; ...@@ -3,8 +3,7 @@ package cn.datax.service.data.factory.controller;
import cn.datax.common.base.BaseController; import cn.datax.common.base.BaseController;
import cn.datax.common.core.R; import cn.datax.common.core.R;
import cn.datax.common.security.annotation.DataInner; import cn.datax.common.security.annotation.DataInner;
import cn.datax.service.data.factory.api.entity.DataSourceEntity; import cn.datax.service.data.factory.api.vo.DataSourceVo;
import cn.datax.service.data.factory.mapstruct.DataSourceMapper;
import cn.datax.service.data.factory.service.DataSourceService; import cn.datax.service.data.factory.service.DataSourceService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
...@@ -19,13 +18,10 @@ public class InnerController extends BaseController { ...@@ -19,13 +18,10 @@ public class InnerController extends BaseController {
@Autowired @Autowired
private DataSourceService dataSourceService; private DataSourceService dataSourceService;
@Autowired
private DataSourceMapper dataSourceMapper;
@DataInner @DataInner
@GetMapping("/dataSource/{id}") @GetMapping("/dataSource/{id}")
public R getDataSourceById(@PathVariable String id) { public R getDataSourceById(@PathVariable String id) {
DataSourceEntity dataSourceEntity = dataSourceService.getById(id); DataSourceVo dataSourceVo = dataSourceService.getDataSourceById(id);
return R.ok().setData(dataSourceMapper.toVO(dataSourceEntity)); return R.ok().setData(dataSourceVo);
} }
} }
...@@ -3,6 +3,7 @@ package cn.datax.service.data.factory.service; ...@@ -3,6 +3,7 @@ package cn.datax.service.data.factory.service;
import cn.datax.service.data.factory.api.entity.DataSetEntity; import cn.datax.service.data.factory.api.entity.DataSetEntity;
import cn.datax.service.data.factory.api.dto.DataSetDto; import cn.datax.service.data.factory.api.dto.DataSetDto;
import cn.datax.common.base.BaseService; import cn.datax.common.base.BaseService;
import cn.datax.service.data.factory.api.vo.DataSetVo;
/** /**
* <p> * <p>
...@@ -18,5 +19,7 @@ public interface DataSetService extends BaseService<DataSetEntity> { ...@@ -18,5 +19,7 @@ public interface DataSetService extends BaseService<DataSetEntity> {
void updateDataSet(DataSetDto dataSet); void updateDataSet(DataSetDto dataSet);
DataSetVo getDataSetById(String id);
void deleteDataSetById(String id); void deleteDataSetById(String id);
} }
...@@ -4,6 +4,7 @@ import cn.datax.common.database.DbQuery; ...@@ -4,6 +4,7 @@ import cn.datax.common.database.DbQuery;
import cn.datax.service.data.factory.api.dto.DataSourceDto; import cn.datax.service.data.factory.api.dto.DataSourceDto;
import cn.datax.service.data.factory.api.entity.DataSourceEntity; import cn.datax.service.data.factory.api.entity.DataSourceEntity;
import cn.datax.common.base.BaseService; import cn.datax.common.base.BaseService;
import cn.datax.service.data.factory.api.vo.DataSourceVo;
/** /**
* <p> * <p>
...@@ -19,6 +20,8 @@ public interface DataSourceService extends BaseService<DataSourceEntity> { ...@@ -19,6 +20,8 @@ public interface DataSourceService extends BaseService<DataSourceEntity> {
void updateDataSource(DataSourceDto dataSource); void updateDataSource(DataSourceDto dataSource);
DataSourceVo getDataSourceById(String id);
void deleteDataSourceById(String id); void deleteDataSourceById(String id);
DbQuery checkConnection(DataSourceDto dataSource); DbQuery checkConnection(DataSourceDto dataSource);
......
...@@ -2,21 +2,16 @@ package cn.datax.service.data.factory.service.impl; ...@@ -2,21 +2,16 @@ package cn.datax.service.data.factory.service.impl;
import cn.datax.service.data.factory.api.dto.DataSetDto; import cn.datax.service.data.factory.api.dto.DataSetDto;
import cn.datax.service.data.factory.api.entity.DataSetEntity; import cn.datax.service.data.factory.api.entity.DataSetEntity;
import cn.datax.service.data.factory.api.vo.DataSetVo;
import cn.datax.service.data.factory.service.DataSetService; import cn.datax.service.data.factory.service.DataSetService;
import cn.datax.service.data.factory.mapstruct.DataSetMapper; import cn.datax.service.data.factory.mapstruct.DataSetMapper;
import cn.datax.service.data.factory.dao.DataSetDao; import cn.datax.service.data.factory.dao.DataSetDao;
import cn.datax.common.base.BaseServiceImpl; import cn.datax.common.base.BaseServiceImpl;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cache.annotation.CacheConfig;
import org.springframework.cache.annotation.CacheEvict;
import org.springframework.cache.annotation.CachePut;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.io.Serializable;
/** /**
* <p> * <p>
* 数据集信息表 服务实现类 * 数据集信息表 服务实现类
...@@ -25,7 +20,6 @@ import java.io.Serializable; ...@@ -25,7 +20,6 @@ import java.io.Serializable;
* @author yuwei * @author yuwei
* @since 2020-03-20 * @since 2020-03-20
*/ */
//@CacheConfig(cacheNames = "data:factory:sets")
@Service @Service
@Transactional(propagation = Propagation.SUPPORTS, readOnly = true, rollbackFor = Exception.class) @Transactional(propagation = Propagation.SUPPORTS, readOnly = true, rollbackFor = Exception.class)
public class DataSetServiceImpl extends BaseServiceImpl<DataSetDao, DataSetEntity> implements DataSetService { public class DataSetServiceImpl extends BaseServiceImpl<DataSetDao, DataSetEntity> implements DataSetService {
...@@ -43,7 +37,6 @@ public class DataSetServiceImpl extends BaseServiceImpl<DataSetDao, DataSetEntit ...@@ -43,7 +37,6 @@ public class DataSetServiceImpl extends BaseServiceImpl<DataSetDao, DataSetEntit
dataSetDao.insert(dataSet); dataSetDao.insert(dataSet);
} }
// @CachePut(key = "#p0.id")
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void updateDataSet(DataSetDto dataSetDto) { public void updateDataSet(DataSetDto dataSetDto) {
...@@ -51,13 +44,12 @@ public class DataSetServiceImpl extends BaseServiceImpl<DataSetDao, DataSetEntit ...@@ -51,13 +44,12 @@ public class DataSetServiceImpl extends BaseServiceImpl<DataSetDao, DataSetEntit
dataSetDao.updateById(dataSet); dataSetDao.updateById(dataSet);
} }
// @Cacheable(key = "#id", unless = "#result == null")
@Override @Override
public DataSetEntity getById(Serializable id) { public DataSetVo getDataSetById(String id) {
return super.getById(id); DataSetEntity dataSetEntity = super.getById(id);
return dataSetMapper.toVO(dataSetEntity);
} }
// @CacheEvict(key = "#id")
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void deleteDataSetById(String id) { public void deleteDataSetById(String id) {
......
...@@ -6,15 +6,12 @@ import cn.datax.common.database.constants.DbQueryProperty; ...@@ -6,15 +6,12 @@ import cn.datax.common.database.constants.DbQueryProperty;
import cn.datax.service.data.factory.api.dto.DataSourceDto; import cn.datax.service.data.factory.api.dto.DataSourceDto;
import cn.datax.service.data.factory.api.dto.DbSchema; import cn.datax.service.data.factory.api.dto.DbSchema;
import cn.datax.service.data.factory.api.entity.DataSourceEntity; import cn.datax.service.data.factory.api.entity.DataSourceEntity;
import cn.datax.service.data.factory.api.vo.DataSourceVo;
import cn.datax.service.data.factory.dao.DataSourceDao; import cn.datax.service.data.factory.dao.DataSourceDao;
import cn.datax.service.data.factory.service.DataSourceService; import cn.datax.service.data.factory.service.DataSourceService;
import cn.datax.service.data.factory.mapstruct.DataSourceMapper; import cn.datax.service.data.factory.mapstruct.DataSourceMapper;
import cn.datax.common.base.BaseServiceImpl; import cn.datax.common.base.BaseServiceImpl;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cache.annotation.CacheConfig;
import org.springframework.cache.annotation.CacheEvict;
import org.springframework.cache.annotation.CachePut;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
...@@ -29,7 +26,6 @@ import java.io.Serializable; ...@@ -29,7 +26,6 @@ import java.io.Serializable;
* @author yuwei * @author yuwei
* @since 2020-03-14 * @since 2020-03-14
*/ */
//@CacheConfig(cacheNames = "data:factory:sources")
@Service @Service
@Transactional(propagation = Propagation.SUPPORTS, readOnly = true, rollbackFor = Exception.class) @Transactional(propagation = Propagation.SUPPORTS, readOnly = true, rollbackFor = Exception.class)
public class DataSourceServiceImpl extends BaseServiceImpl<DataSourceDao, DataSourceEntity> implements DataSourceService { public class DataSourceServiceImpl extends BaseServiceImpl<DataSourceDao, DataSourceEntity> implements DataSourceService {
...@@ -50,7 +46,6 @@ public class DataSourceServiceImpl extends BaseServiceImpl<DataSourceDao, DataSo ...@@ -50,7 +46,6 @@ public class DataSourceServiceImpl extends BaseServiceImpl<DataSourceDao, DataSo
dataSourceDao.insert(dataSource); dataSourceDao.insert(dataSource);
} }
// @CachePut(key = "#p0.id")
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void updateDataSource(DataSourceDto dataSourceDto) { public void updateDataSource(DataSourceDto dataSourceDto) {
...@@ -58,13 +53,12 @@ public class DataSourceServiceImpl extends BaseServiceImpl<DataSourceDao, DataSo ...@@ -58,13 +53,12 @@ public class DataSourceServiceImpl extends BaseServiceImpl<DataSourceDao, DataSo
dataSourceDao.updateById(dataSource); dataSourceDao.updateById(dataSource);
} }
// @Cacheable(key = "#id", unless = "#result == null")
@Override @Override
public DataSourceEntity getById(Serializable id) { public DataSourceVo getDataSourceById(String id) {
return super.getById(id); DataSourceEntity dataSourceEntity = super.getById(id);
return dataSourceMapper.toVO(dataSourceEntity);
} }
// @CacheEvict(key = "#id")
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void deleteDataSourceById(String id) { public void deleteDataSourceById(String id) {
......
package cn.datax.service.data.market.config;
import org.springframework.cache.CacheManager;
import org.springframework.cache.annotation.CachingConfigurerSupport;
import org.springframework.cache.annotation.EnableCaching;
import org.springframework.cache.interceptor.KeyGenerator;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.cache.RedisCacheConfiguration;
import org.springframework.data.redis.cache.RedisCacheManager;
import org.springframework.data.redis.cache.RedisCacheWriter;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.serializer.RedisSerializationContext;
import org.springframework.data.redis.serializer.RedisSerializer;
import java.lang.reflect.Method;
import java.time.Duration;
import java.util.HashMap;
import java.util.Map;
@Configuration
@EnableCaching
public class RedisCacheConfig extends CachingConfigurerSupport {
/**
* 在没有指定缓存Key的情况下,key生成策略
* @return
*/
@Bean
public KeyGenerator keyGenerator() {
return new KeyGenerator() {
@Override
public Object generate(Object target, Method method, Object... params) {
StringBuilder sb = new StringBuilder();
sb.append(target.getClass().getName());
sb.append("#" + method.getName());
for (Object obj : params) {
sb.append(obj.toString());
}
return sb.toString();
}
};
}
@Bean
public CacheManager cacheManager(RedisConnectionFactory redisConnectionFactory, RedisSerializer<Object> redisSerializer) {
return new RedisCacheManager(
RedisCacheWriter.nonLockingRedisCacheWriter(redisConnectionFactory),
this.redisCacheConfigurationWithTtl(30, redisSerializer),
this.redisCacheConfigurationMap(redisSerializer)
);
}
private Map<String, RedisCacheConfiguration> redisCacheConfigurationMap(RedisSerializer<Object> redisSerializer) {
Map<String, RedisCacheConfiguration> redisCacheConfigurationMap = new HashMap<>();
redisCacheConfigurationMap.put("data:market:apis", redisCacheConfigurationWithTtl(30, redisSerializer));
redisCacheConfigurationMap.put("data:market:api:masks", redisCacheConfigurationWithTtl(30, redisSerializer));
return redisCacheConfigurationMap;
}
private RedisCacheConfiguration redisCacheConfigurationWithTtl(Integer minutes, RedisSerializer<Object> redisSerializer) {
// ObjectMapper objectMapper = new ObjectMapper();
// objectMapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
// //使用JSR310提供的序列化类,里面包含了大量的JDK8时间序列化类
// objectMapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS);
// JavaTimeModule javaTimeModule = new JavaTimeModule();
// javaTimeModule.addSerializer(LocalDateTime.class,new LocalDateTimeSerializer(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
// javaTimeModule.addSerializer(LocalDate.class,new LocalDateSerializer(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
// javaTimeModule.addSerializer(LocalTime.class,new LocalTimeSerializer(DateTimeFormatter.ofPattern("HH:mm:ss")));
// javaTimeModule.addDeserializer(LocalDateTime.class,new LocalDateTimeDeserializer(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
// javaTimeModule.addDeserializer(LocalDate.class,new LocalDateDeserializer(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
// javaTimeModule.addDeserializer(LocalTime.class,new LocalTimeDeserializer(DateTimeFormatter.ofPattern("HH:mm:ss")));
// objectMapper.registerModule(javaTimeModule);
// //反序列化时候遇到不匹配的属性并不抛出异常
// objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
// //序列化时候遇到空对象不抛出异常
// objectMapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false);
// //反序列化的时候如果是无效子类型,不抛出异常
// objectMapper.configure(DeserializationFeature.FAIL_ON_INVALID_SUBTYPE, false);
// //不使用默认的dateTime进行序列化,
// objectMapper.configure(SerializationFeature.WRITE_DATE_KEYS_AS_TIMESTAMPS, false);
// //启用反序列化所需的类型信息,在属性中添加@class
// objectMapper.activateDefaultTyping(LaissezFaireSubTypeValidator.instance, ObjectMapper.DefaultTyping.NON_FINAL, JsonTypeInfo.As.PROPERTY);
// //配置null值的序列化器
// GenericJackson2JsonRedisSerializer.registerNullValueSerializer(objectMapper, null);
// GenericJackson2JsonRedisSerializer genericJackson2JsonRedisSerializer = new GenericJackson2JsonRedisSerializer(objectMapper);
RedisCacheConfiguration redisCacheConfiguration = RedisCacheConfiguration.defaultCacheConfig();
redisCacheConfiguration = redisCacheConfiguration.serializeValuesWith(
RedisSerializationContext.SerializationPair.fromSerializer(redisSerializer)
).entryTtl(Duration.ofMinutes(minutes));
return redisCacheConfiguration;
}
}
\ No newline at end of file
...@@ -53,8 +53,8 @@ public class ApiMaskController extends BaseController { ...@@ -53,8 +53,8 @@ public class ApiMaskController extends BaseController {
@ApiImplicitParam(name = "id", value = "ID", required = true, dataType = "String", paramType = "path") @ApiImplicitParam(name = "id", value = "ID", required = true, dataType = "String", paramType = "path")
@GetMapping("/{id}") @GetMapping("/{id}")
public R getApiMaskById(@PathVariable String id) { public R getApiMaskById(@PathVariable String id) {
ApiMaskEntity apiMaskEntity = apiMaskService.getById(id); ApiMaskVo apiMaskVo = apiMaskService.getApiMaskById(id);
return R.ok().setData(apiMaskMapper.toVO(apiMaskEntity)); return R.ok().setData(apiMaskVo);
} }
/** /**
......
...@@ -56,8 +56,8 @@ public class DataApiController extends BaseController { ...@@ -56,8 +56,8 @@ public class DataApiController extends BaseController {
@ApiImplicitParam(name = "id", value = "ID", required = true, dataType = "String", paramType = "path") @ApiImplicitParam(name = "id", value = "ID", required = true, dataType = "String", paramType = "path")
@GetMapping("/{id}") @GetMapping("/{id}")
public R getDataApiById(@PathVariable String id) { public R getDataApiById(@PathVariable String id) {
DataApiEntity dataApiEntity = dataApiService.getById(id); DataApiVo dataApiVo = dataApiService.getDataApiById(id);
return R.ok().setData(dataApiMapper.toVO(dataApiEntity)); return R.ok().setData(dataApiVo);
} }
/** /**
......
...@@ -3,13 +3,10 @@ package cn.datax.service.data.market.controller; ...@@ -3,13 +3,10 @@ package cn.datax.service.data.market.controller;
import cn.datax.common.base.BaseController; import cn.datax.common.base.BaseController;
import cn.datax.common.core.R; import cn.datax.common.core.R;
import cn.datax.common.security.annotation.DataInner; import cn.datax.common.security.annotation.DataInner;
import cn.datax.service.data.market.api.entity.ApiMaskEntity; import cn.datax.service.data.market.api.vo.ApiMaskVo;
import cn.datax.service.data.market.api.entity.DataApiEntity; import cn.datax.service.data.market.api.vo.DataApiVo;
import cn.datax.service.data.market.mapstruct.ApiMaskMapper;
import cn.datax.service.data.market.mapstruct.DataApiMapper;
import cn.datax.service.data.market.service.ApiMaskService; import cn.datax.service.data.market.service.ApiMaskService;
import cn.datax.service.data.market.service.DataApiService; import cn.datax.service.data.market.service.DataApiService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PathVariable;
...@@ -24,14 +21,8 @@ public class InnerController extends BaseController { ...@@ -24,14 +21,8 @@ public class InnerController extends BaseController {
private DataApiService dataApiService; private DataApiService dataApiService;
@Autowired @Autowired
private DataApiMapper dataApiMapper;
@Autowired
private ApiMaskService apiMaskService; private ApiMaskService apiMaskService;
@Autowired
private ApiMaskMapper apiMaskMapper;
/** /**
* 通过ID查询信息 * 通过ID查询信息
* *
...@@ -41,8 +32,8 @@ public class InnerController extends BaseController { ...@@ -41,8 +32,8 @@ public class InnerController extends BaseController {
@DataInner @DataInner
@GetMapping("/dataApi/{id}") @GetMapping("/dataApi/{id}")
public R getDataApiById(@PathVariable String id) { public R getDataApiById(@PathVariable String id) {
DataApiEntity dataApiEntity = dataApiService.getById(id); DataApiVo dataApiVo = dataApiService.getDataApiById(id);
return R.ok().setData(dataApiMapper.toVO(dataApiEntity)); return R.ok().setData(dataApiVo);
} }
/** /**
...@@ -54,7 +45,7 @@ public class InnerController extends BaseController { ...@@ -54,7 +45,7 @@ public class InnerController extends BaseController {
@DataInner @DataInner
@GetMapping("/apiMask/{apiId}") @GetMapping("/apiMask/{apiId}")
public R getApiMaskByApiId(@PathVariable String apiId) { public R getApiMaskByApiId(@PathVariable String apiId) {
ApiMaskEntity apiMaskEntity = apiMaskService.getOne(new QueryWrapper<ApiMaskEntity>().eq("api_id", apiId)); ApiMaskVo apiMaskVo = apiMaskService.getApiMaskByApiId(apiId);
return R.ok().setData(apiMaskMapper.toVO(apiMaskEntity)); return R.ok().setData(apiMaskVo);
} }
} }
...@@ -3,6 +3,7 @@ package cn.datax.service.data.market.service; ...@@ -3,6 +3,7 @@ package cn.datax.service.data.market.service;
import cn.datax.common.base.BaseService; import cn.datax.common.base.BaseService;
import cn.datax.service.data.market.api.dto.ApiMaskDto; import cn.datax.service.data.market.api.dto.ApiMaskDto;
import cn.datax.service.data.market.api.entity.ApiMaskEntity; import cn.datax.service.data.market.api.entity.ApiMaskEntity;
import cn.datax.service.data.market.api.vo.ApiMaskVo;
/** /**
* <p> * <p>
...@@ -18,5 +19,9 @@ public interface ApiMaskService extends BaseService<ApiMaskEntity> { ...@@ -18,5 +19,9 @@ public interface ApiMaskService extends BaseService<ApiMaskEntity> {
void updateApiMask(ApiMaskDto dataApiMask); void updateApiMask(ApiMaskDto dataApiMask);
ApiMaskVo getApiMaskById(String id);
ApiMaskVo getApiMaskByApiId(String apiId);
void deleteApiMaskById(String id); void deleteApiMaskById(String id);
} }
...@@ -4,6 +4,7 @@ import cn.datax.service.data.market.api.dto.SqlParseDto; ...@@ -4,6 +4,7 @@ import cn.datax.service.data.market.api.dto.SqlParseDto;
import cn.datax.service.data.market.api.entity.DataApiEntity; import cn.datax.service.data.market.api.entity.DataApiEntity;
import cn.datax.service.data.market.api.dto.DataApiDto; import cn.datax.service.data.market.api.dto.DataApiDto;
import cn.datax.common.base.BaseService; import cn.datax.common.base.BaseService;
import cn.datax.service.data.market.api.vo.DataApiVo;
import cn.datax.service.data.market.api.vo.SqlParseVo; import cn.datax.service.data.market.api.vo.SqlParseVo;
/** /**
...@@ -20,6 +21,8 @@ public interface DataApiService extends BaseService<DataApiEntity> { ...@@ -20,6 +21,8 @@ public interface DataApiService extends BaseService<DataApiEntity> {
void updateDataApi(DataApiDto dataApi); void updateDataApi(DataApiDto dataApi);
DataApiVo getDataApiById(String id);
void deleteDataApiById(String id); void deleteDataApiById(String id);
SqlParseVo sqlParse(SqlParseDto sqlParseDto); SqlParseVo sqlParse(SqlParseDto sqlParseDto);
......
...@@ -3,20 +3,16 @@ package cn.datax.service.data.market.service.impl; ...@@ -3,20 +3,16 @@ package cn.datax.service.data.market.service.impl;
import cn.datax.common.base.BaseServiceImpl; import cn.datax.common.base.BaseServiceImpl;
import cn.datax.service.data.market.api.dto.ApiMaskDto; import cn.datax.service.data.market.api.dto.ApiMaskDto;
import cn.datax.service.data.market.api.entity.ApiMaskEntity; import cn.datax.service.data.market.api.entity.ApiMaskEntity;
import cn.datax.service.data.market.api.vo.ApiMaskVo;
import cn.datax.service.data.market.dao.ApiMaskDao; import cn.datax.service.data.market.dao.ApiMaskDao;
import cn.datax.service.data.market.mapstruct.ApiMaskMapper; import cn.datax.service.data.market.mapstruct.ApiMaskMapper;
import cn.datax.service.data.market.service.ApiMaskService; import cn.datax.service.data.market.service.ApiMaskService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cache.annotation.CacheConfig;
import org.springframework.cache.annotation.CacheEvict;
import org.springframework.cache.annotation.CachePut;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.io.Serializable;
/** /**
* <p> * <p>
* 数据API脱敏信息表 服务实现类 * 数据API脱敏信息表 服务实现类
...@@ -25,7 +21,6 @@ import java.io.Serializable; ...@@ -25,7 +21,6 @@ import java.io.Serializable;
* @author yuwei * @author yuwei
* @since 2020-04-14 * @since 2020-04-14
*/ */
//@CacheConfig(cacheNames = "data:api:masks")
@Service @Service
@Transactional(propagation = Propagation.SUPPORTS, readOnly = true, rollbackFor = Exception.class) @Transactional(propagation = Propagation.SUPPORTS, readOnly = true, rollbackFor = Exception.class)
public class ApiMaskServiceImpl extends BaseServiceImpl<ApiMaskDao, ApiMaskEntity> implements ApiMaskService { public class ApiMaskServiceImpl extends BaseServiceImpl<ApiMaskDao, ApiMaskEntity> implements ApiMaskService {
...@@ -43,7 +38,6 @@ public class ApiMaskServiceImpl extends BaseServiceImpl<ApiMaskDao, ApiMaskEntit ...@@ -43,7 +38,6 @@ public class ApiMaskServiceImpl extends BaseServiceImpl<ApiMaskDao, ApiMaskEntit
apiMaskDao.insert(apiMask); apiMaskDao.insert(apiMask);
} }
// @CachePut(key = "#p0.id")
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void updateApiMask(ApiMaskDto apiMaskDto) { public void updateApiMask(ApiMaskDto apiMaskDto) {
...@@ -51,13 +45,18 @@ public class ApiMaskServiceImpl extends BaseServiceImpl<ApiMaskDao, ApiMaskEntit ...@@ -51,13 +45,18 @@ public class ApiMaskServiceImpl extends BaseServiceImpl<ApiMaskDao, ApiMaskEntit
apiMaskDao.updateById(apiMask); apiMaskDao.updateById(apiMask);
} }
// @Cacheable(key = "#id")
@Override @Override
public ApiMaskEntity getById(Serializable id) { public ApiMaskVo getApiMaskById(String id) {
return super.getById(id); ApiMaskEntity apiMaskEntity = super.getById(id);
return apiMaskMapper.toVO(apiMaskEntity);
}
@Override
public ApiMaskVo getApiMaskByApiId(String apiId) {
ApiMaskEntity apiMaskEntity = apiMaskDao.selectOne(new QueryWrapper<ApiMaskEntity>().eq("api_id", apiId));
return apiMaskMapper.toVO(apiMaskEntity);
} }
// @CacheEvict(key = "#id")
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void deleteApiMaskById(String id) { public void deleteApiMaskById(String id) {
......
...@@ -5,6 +5,7 @@ import cn.datax.common.utils.ThrowableUtil; ...@@ -5,6 +5,7 @@ import cn.datax.common.utils.ThrowableUtil;
import cn.datax.service.data.market.api.dto.*; import cn.datax.service.data.market.api.dto.*;
import cn.datax.service.data.market.api.entity.DataApiEntity; import cn.datax.service.data.market.api.entity.DataApiEntity;
import cn.datax.service.data.market.api.enums.ConfigType; import cn.datax.service.data.market.api.enums.ConfigType;
import cn.datax.service.data.market.api.vo.DataApiVo;
import cn.datax.service.data.market.api.vo.SqlParseVo; import cn.datax.service.data.market.api.vo.SqlParseVo;
import cn.datax.service.data.market.service.DataApiService; import cn.datax.service.data.market.service.DataApiService;
import cn.datax.service.data.market.mapstruct.DataApiMapper; import cn.datax.service.data.market.mapstruct.DataApiMapper;
...@@ -27,15 +28,10 @@ import net.sf.jsqlparser.util.SelectUtils; ...@@ -27,15 +28,10 @@ import net.sf.jsqlparser.util.SelectUtils;
import net.sf.jsqlparser.util.deparser.ExpressionDeParser; import net.sf.jsqlparser.util.deparser.ExpressionDeParser;
import net.sf.jsqlparser.util.deparser.SelectDeParser; import net.sf.jsqlparser.util.deparser.SelectDeParser;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cache.annotation.CacheConfig;
import org.springframework.cache.annotation.CacheEvict;
import org.springframework.cache.annotation.CachePut;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.io.Serializable;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
...@@ -48,7 +44,6 @@ import java.util.stream.Collectors; ...@@ -48,7 +44,6 @@ import java.util.stream.Collectors;
* @author yuwei * @author yuwei
* @since 2020-03-31 * @since 2020-03-31
*/ */
//@CacheConfig(cacheNames = "data:market:apis")
@Slf4j @Slf4j
@Service @Service
@Transactional(propagation = Propagation.SUPPORTS, readOnly = true, rollbackFor = Exception.class) @Transactional(propagation = Propagation.SUPPORTS, readOnly = true, rollbackFor = Exception.class)
...@@ -67,7 +62,6 @@ public class DataApiServiceImpl extends BaseServiceImpl<DataApiDao, DataApiEntit ...@@ -67,7 +62,6 @@ public class DataApiServiceImpl extends BaseServiceImpl<DataApiDao, DataApiEntit
dataApiDao.insert(dataApi); dataApiDao.insert(dataApi);
} }
// @CachePut(key = "#p0.id")
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void updateDataApi(DataApiDto dataApiDto) { public void updateDataApi(DataApiDto dataApiDto) {
...@@ -89,13 +83,12 @@ public class DataApiServiceImpl extends BaseServiceImpl<DataApiDao, DataApiEntit ...@@ -89,13 +83,12 @@ public class DataApiServiceImpl extends BaseServiceImpl<DataApiDao, DataApiEntit
return dataApi; return dataApi;
} }
// @Cacheable(key = "#id", unless = "#result == null")
@Override @Override
public DataApiEntity getById(Serializable id) { public DataApiVo getDataApiById(String id) {
return super.getById(id); DataApiEntity dataApiEntity = super.getById(id);
return dataApiMapper.toVO(dataApiEntity);
} }
// @CacheEvict(key = "#id")
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void deleteDataApiById(String id) { public void deleteDataApiById(String id) {
......
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