2、将打包的build标签写入org.springframework.boot spring-boot-starter-data-redis-reactiveorg.apache.commons commons-pool2org.springframework.boot spring-boot-starter-weborg.springframework.boot spring-boot-starter-loggingorg.slf4j slf4j-log4j12org.springframework.boot spring-boot-starter-log4j2mysql mysql-connector-javaruntime org.projectlombok lomboktrue org.springframework.boot spring-boot-starter-testtest io.projectreactor reactor-testtest com.baomidou mybatis-plus-boot-starter3.4.1 com.baomidou mybatis-plus-generator3.4.1 org.apache.velocity velocity-engine-core2.2 com.github.pagehelper pagehelper-spring-boot-starter1.4.0 com.alibaba fastjson1.2.68 org.apache.commons commons-lang3
5、将mybatis-plus的配置填写完成src/main/resources ** public class MyQuickCode { public static void main(String[] args) { //1、构造生成器 AutoGenerator ag = new AutoGenerator(); // 2、全局配置 GlobalConfig gc = new GlobalConfig(); String projectPath = System.getProperty("user.dir"); System.out.println(projectPath); gc.setOutputDir(projectPath + "/src/main/java"); gc.setAuthor("fmdxz"); gc.setOpen(false); //生成后是否打开资源管理器 gc.setFileOverride(true); //重新生成时文件是否覆盖 gc.setServiceName("%sService"); //去掉Service接口的首字母I gc.setIdType(IdType.ID_WORKER_STR); //主键策略 gc.setDateType(DateType.ONLY_DATE);//定义生成的实体类中日期类型 // gc.setSwagger2(false);//开启Swagger2模式 ag.setGlobalConfig(gc); // 3、数据源配置 DataSourceConfig dsc = new DataSourceConfig(); dsc.setUrl("jdbc:mysql://localhost:3306/c4?useUnicode=true&characterEncoding=UTF-8" + "&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull" + "&allowMultiQueries=true"); dsc.setDriverName("com.mysql.cj.jdbc.Driver"); dsc.setUsername("root"); dsc.setPassword("DXZDXZ4811"); dsc.setDbType(DbType.MYSQL); ag.setDataSource(dsc); // 4、包配置 PackageConfig pc = new PackageConfig(); pc.setModuleName(null); //模块名 pc.setParent("com.dxz"); pc.setController("controller"); pc.setEntity("entity"); pc.setService("service"); pc.setMapper("mapper"); ag.setPackageInfo(pc); // 5、策略配置 StrategyConfig strategy = new StrategyConfig(); strategy.setInclude("comments","url");//对那一张表生成代码 strategy.setNaming(NamingStrategy.underline_to_camel);//数据库表映射到实体的命名策略 // strategy.setTablePrefix("t_"); //生成实体时去掉表前缀 strategy.setColumnNaming(NamingStrategy.underline_to_camel);//数据库表字段映射到实体的命名策略 strategy.setEntityLombokModel(true); // lombok 模型 @Accessors(chain = true) setter链式 *** 作 strategy.setRestControllerStyle(true); //restful api风格控制器 // strategy.setControllerMappingHyphenStyle(true); //url中驼峰转连字符 ag.setStrategy(strategy); // 6、执行 ag.execute(); } }
配置
@Configuration @MapperScan(value = "com.dxz.mapper") public class MybatisPlusConfig { // 最新版 @Bean public MybatisPlusInterceptor mybatisPlusInterceptor() { MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor(); interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL)); return interceptor; } }6、将redis的配置写好
redis配置
@Configuration public class RedisConfig { @Value("${spring.redis.host}") private String host; @Value("${spring.redis.port}") private int port; @Value("${spring.redis.lettuce.pool.max-active}") private Integer maxActive; @Value("${spring.redis.lettuce.pool.max-idle}") private Integer maxIdle; @Value("${spring.redis.lettuce.pool.min-idle}") private Integer minIdle; @Value("${spring.redis.lettuce.pool.max-wait}") private Long maxWait; @Bean LettuceConnectionFactory redisConnectionFactory(){ //连接池的配置 GenericObjectPoolConfig poolConfig = new GenericObjectPoolConfig();//新建一个连接池配置 poolConfig.setMaxTotal(maxActive); poolConfig.setMaxIdle(maxIdle); poolConfig.setMinIdle(minIdle); poolConfig.setMaxWaitMillis(maxWait); //根据自己写的连接池的配置进行新建一个lettuce连接池配置 LettucePoolingClientConfiguration lettucePoolingClientConfiguration = LettucePoolingClientConfiguration.builder().poolConfig(poolConfig).build(); //新建一个redis配置 RedisStandaloneConfiguration redisConfig = new RedisStandaloneConfiguration(); redisConfig.setHostName(host); redisConfig.setPort(port); //配置redis连接密码,若没有密码则可以直接注释 //redisConfig.setPassword(RedisPassword.of(password.toCharArray())); //返回一个新的lettuce连接工厂 return new LettuceConnectionFactory(redisConfig,lettucePoolingClientConfiguration); } @Bean public RedisTemplate7、含有日期和结果的工具类myRedisTemplate(LettuceConnectionFactory redisConnectionFactory){ //新建一个template模板 RedisTemplate template = new RedisTemplate (); //将上面创建好的lettuce工厂导入 template.setConnectionFactory(redisConnectionFactory); template.setKeySerializer(new StringRedisSerializer());// key序列化 template.setValueSerializer(new GenericJackson2JsonRedisSerializer());// value序列化 template.setHashKeySerializer(new GenericJackson2JsonRedisSerializer());// Hash key序列化 template.setHashValueSerializer(new GenericJackson2JsonRedisSerializer());// Hash value序列化 return template; } }
日期工具类
@Component public class DateUtil { //首先创建一个时间转换工具类 private static DateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //创建一个日志工具 protected static Logger logger = LoggerFactory.getLogger(DateUtil.class);//参数为当前类 public static String parse(final Date date) { if (date == null) { return null; } return sdf.format(date); } public static String now() { return sdf.format(new Date()); } public static Date format(final String date) { try { return sdf.parse(date); } catch (ParseException e) { e.printStackTrace(); } return null; } }结果工具类
public abstract class ResultUtil { private static JSONObject results = null; public static JSONObject success() { results = new JSONObject(); results.put("code", Constant.SUCCESS_CODE); results.put("data", new JSONObject()); results.put("msg", ""); return results; } public static JSONObject success(final int code, final JSONObject data) { results = new JSONObject(); results.put("code", code); results.put("data", data); results.put("msg", ""); return results; } public static JSONObject content(final JSONObject data) { results = new JSONObject(); results.put("code", Constant.SUCCESS_CODE); results.put("data", data); results.put("msg", ""); return results; } public static JSONObject failure(final int code, final String msg) { results = new JSONObject(); results.put("code", code); results.put("data", new JSONObject()); results.put("msg", msg); return results; } }8、关于Redis的接口类和服务类
接口类
@Component public class RedisMapper { @Autowired @Qualifier("myRedisTemplate") private RedisTemplate服务接口类redisTemplate; public void set(String key,Object value){ try{ ValueOperations stringObjectValueOperations = redisTemplate.opsForValue(); stringObjectValueOperations.set(key,value); }catch (Exception e){ throw new RuntimeException(e); } } public void set(String key, Object value, long expired){ try{ ValueOperations stringObjectValueOperations = redisTemplate.opsForValue(); stringObjectValueOperations.set(key,value,expired, TimeUnit.SECONDS); }catch (Exception e){ throw new RuntimeException(e); } } public Object get(String key){ try{ ValueOperations stringObjectValueOperations = redisTemplate.opsForValue(); return stringObjectValueOperations.get(key); }catch (Exception e){ throw new RuntimeException(e); } } }
public interface RedisService { void set(String key,Object value); void set(String key,Object value,long expired);服务实现类T get(String key); }
@Service public class RedisServiceImpl implements RedisService { @Resource RedisMapper redisMapper; @Override public void set(String key, Object value) { redisMapper.set(key,value); } @Override public void set(String key, Object value, long expired) { redisMapper.set(key,value,expired); } @Override publicT get(String key) { Object o = redisMapper.get(key); return (T) o; } }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)