From 0ad5d02b6353a5dd4a4df8a05816492b82cd1da6 Mon Sep 17 00:00:00 2001 From: Bunny <1319900154@qq.com> Date: Fri, 3 May 2024 16:55:03 +0800 Subject: [PATCH] =?UTF-8?q?:sparkles:=20=E9=85=8D=E7=BD=AERedis=E5=92=8CMy?= =?UTF-8?q?batis-Plus?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- common/pom.xml | 12 +- common/service-utils/pom.xml | 7 - .../service/config/MybatisPlusConfig.java | 8 +- .../service/config/RedisConfiguration.java | 100 +++ .../service/constant/MessageConstant.java | 35 ++ .../common/service/context/BaseContext.java | 33 + .../service/exception/BunnyException.java | 33 + .../exception/GlobalExceptionHandler.java | 81 +++ .../service/properties/MinioProperties.java | 27 + .../bunny/common/service/result/Result.java | 175 ++++++ logs/bunny-service/spring.log | 567 +++++++++++++++++- logs/bunny-service/spring.log.2024-05-02.0.gz | Bin 0 -> 1346 bytes model/pom.xml | 11 +- .../java/cn/bunny/entity/base/BaseEntity.java | 32 + .../java/cn/bunny/entity/system/Login.java | 14 + .../cn/bunny/entity/system/RoleByUser.java | 17 + .../java/cn/bunny/entity/system/SysDept.java | 51 ++ .../cn/bunny/entity/system/SysLoginLog.java | 39 ++ .../java/cn/bunny/entity/system/SysMenu.java | 62 ++ .../cn/bunny/entity/system/SysOperLog.java | 75 +++ .../java/cn/bunny/entity/system/SysPost.java | 33 + .../java/cn/bunny/entity/system/SysRole.java | 32 + .../cn/bunny/entity/system/SysRoleMenu.java | 26 + .../java/cn/bunny/entity/system/SysUser.java | 68 +++ .../cn/bunny/entity/system/SysUserRole.java | 25 + .../cn/bunny/entity/system/SysUserinfo.java | 22 + .../java/cn/bunny/enums/ResultCodeEnum.java | 47 ++ .../java/cn/bunny/vo/process/ApprovalVo.java | 18 + .../cn/bunny/vo/process/ProcessFormVo.java | 20 + .../cn/bunny/vo/process/ProcessQueryVo.java | 31 + .../java/cn/bunny/vo/process/ProcessVo.java | 59 ++ .../java/cn/bunny/vo/system/AssginMenuVo.java | 20 + .../java/cn/bunny/vo/system/AssginRoleVo.java | 20 + .../main/java/cn/bunny/vo/system/LoginVo.java | 34 ++ .../main/java/cn/bunny/vo/system/MetaVo.java | 29 + .../java/cn/bunny/vo/system/RouterVo.java | 48 ++ .../bunny/vo/system/SysLoginLogQueryVo.java | 16 + .../cn/bunny/vo/system/SysOperLogQueryVo.java | 15 + .../cn/bunny/vo/system/SysPostQueryVo.java | 19 + .../cn/bunny/vo/system/SysRoleQueryVo.java | 29 + .../cn/bunny/vo/system/SysUserQueryVo.java | 30 + .../java/cn/bunny/vo/wechat/BindPhoneVo.java | 14 + .../main/java/cn/bunny/vo/wechat/MenuVo.java | 39 ++ pom.xml | 21 +- service/pom.xml | 15 +- .../cn/bunny/service/ServiceApplication.java | 4 + .../service/controller/IndexController.java | 47 ++ .../bunny/service/mapper/SysUserMapper.java | 19 + .../bunny/service/service/SysUserService.java | 35 ++ .../service/impl/SysUserServiceImpl.java | 72 +++ .../src/main/resources/application-dev.yml | 8 +- service/src/main/resources/application.yml | 8 +- service/src/main/resources/favicon.ico | Bin 13342 -> 17014 bytes .../main/resources/mapper/SysUserMapper.xml | 5 + service/src/test/java/cn/bunny/AppTest.java | 38 -- 55 files changed, 2256 insertions(+), 89 deletions(-) create mode 100644 common/service-utils/src/main/java/cn/bunny/common/service/config/RedisConfiguration.java create mode 100644 common/service-utils/src/main/java/cn/bunny/common/service/constant/MessageConstant.java create mode 100644 common/service-utils/src/main/java/cn/bunny/common/service/context/BaseContext.java create mode 100644 common/service-utils/src/main/java/cn/bunny/common/service/exception/BunnyException.java create mode 100644 common/service-utils/src/main/java/cn/bunny/common/service/exception/GlobalExceptionHandler.java create mode 100644 common/service-utils/src/main/java/cn/bunny/common/service/properties/MinioProperties.java create mode 100644 common/service-utils/src/main/java/cn/bunny/common/service/result/Result.java create mode 100644 logs/bunny-service/spring.log.2024-05-02.0.gz create mode 100644 model/src/main/java/cn/bunny/entity/base/BaseEntity.java create mode 100644 model/src/main/java/cn/bunny/entity/system/Login.java create mode 100644 model/src/main/java/cn/bunny/entity/system/RoleByUser.java create mode 100644 model/src/main/java/cn/bunny/entity/system/SysDept.java create mode 100644 model/src/main/java/cn/bunny/entity/system/SysLoginLog.java create mode 100644 model/src/main/java/cn/bunny/entity/system/SysMenu.java create mode 100644 model/src/main/java/cn/bunny/entity/system/SysOperLog.java create mode 100644 model/src/main/java/cn/bunny/entity/system/SysPost.java create mode 100644 model/src/main/java/cn/bunny/entity/system/SysRole.java create mode 100644 model/src/main/java/cn/bunny/entity/system/SysRoleMenu.java create mode 100644 model/src/main/java/cn/bunny/entity/system/SysUser.java create mode 100644 model/src/main/java/cn/bunny/entity/system/SysUserRole.java create mode 100644 model/src/main/java/cn/bunny/entity/system/SysUserinfo.java create mode 100644 model/src/main/java/cn/bunny/enums/ResultCodeEnum.java create mode 100644 model/src/main/java/cn/bunny/vo/process/ApprovalVo.java create mode 100644 model/src/main/java/cn/bunny/vo/process/ProcessFormVo.java create mode 100644 model/src/main/java/cn/bunny/vo/process/ProcessQueryVo.java create mode 100644 model/src/main/java/cn/bunny/vo/process/ProcessVo.java create mode 100644 model/src/main/java/cn/bunny/vo/system/AssginMenuVo.java create mode 100644 model/src/main/java/cn/bunny/vo/system/AssginRoleVo.java create mode 100644 model/src/main/java/cn/bunny/vo/system/LoginVo.java create mode 100644 model/src/main/java/cn/bunny/vo/system/MetaVo.java create mode 100644 model/src/main/java/cn/bunny/vo/system/RouterVo.java create mode 100644 model/src/main/java/cn/bunny/vo/system/SysLoginLogQueryVo.java create mode 100644 model/src/main/java/cn/bunny/vo/system/SysOperLogQueryVo.java create mode 100644 model/src/main/java/cn/bunny/vo/system/SysPostQueryVo.java create mode 100644 model/src/main/java/cn/bunny/vo/system/SysRoleQueryVo.java create mode 100644 model/src/main/java/cn/bunny/vo/system/SysUserQueryVo.java create mode 100644 model/src/main/java/cn/bunny/vo/wechat/BindPhoneVo.java create mode 100644 model/src/main/java/cn/bunny/vo/wechat/MenuVo.java create mode 100644 service/src/main/java/cn/bunny/service/controller/IndexController.java create mode 100644 service/src/main/java/cn/bunny/service/mapper/SysUserMapper.java create mode 100644 service/src/main/java/cn/bunny/service/service/SysUserService.java create mode 100644 service/src/main/java/cn/bunny/service/service/impl/SysUserServiceImpl.java create mode 100644 service/src/main/resources/mapper/SysUserMapper.xml delete mode 100644 service/src/test/java/cn/bunny/AppTest.java diff --git a/common/pom.xml b/common/pom.xml index 50db59f..50dc225 100644 --- a/common/pom.xml +++ b/common/pom.xml @@ -1,11 +1,12 @@ - 4.0.0 cn.bunny - java-template + bunny-template 0.0.1-SNAPSHOT + common pom common Maven Webapp @@ -15,7 +16,12 @@ common-utils spring-security - + + + + io.minio + minio + diff --git a/common/service-utils/pom.xml b/common/service-utils/pom.xml index da561e3..6e427c6 100644 --- a/common/service-utils/pom.xml +++ b/common/service-utils/pom.xml @@ -9,7 +9,6 @@ service-utils jar - service-utils https://maven.apache.org @@ -39,12 +38,6 @@ mysql mysql-connector-java - - - com.baomidou - mybatis-plus-boot-starter - provided - com.zaxxer diff --git a/common/service-utils/src/main/java/cn/bunny/common/service/config/MybatisPlusConfig.java b/common/service-utils/src/main/java/cn/bunny/common/service/config/MybatisPlusConfig.java index 11a0871..2938898 100644 --- a/common/service-utils/src/main/java/cn/bunny/common/service/config/MybatisPlusConfig.java +++ b/common/service-utils/src/main/java/cn/bunny/common/service/config/MybatisPlusConfig.java @@ -6,19 +6,21 @@ import com.baomidou.mybatisplus.extension.plugins.inner.BlockAttackInnerIntercep import com.baomidou.mybatisplus.extension.plugins.inner.OptimisticLockerInnerInterceptor; import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor; import lombok.extern.slf4j.Slf4j; -import org.mybatis.spring.annotation.MapperScan; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.transaction.annotation.EnableTransactionManagement; +/** + * Mybatis-Plus配置类 + */ @EnableTransactionManagement -@MapperScan("cn.bunny.service.mapper") +// @MapperScan("cn.bunny.service.mapper") @Configuration @Slf4j public class MybatisPlusConfig { @Bean public MybatisPlusInterceptor mybatisPlusInterceptor() { - log.info("注入Mybatis-Plus配置..."); + log.info("MybatisPlusInterceptor===>注入Mybatis-Plus配置..."); MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor(); // 分页插件 diff --git a/common/service-utils/src/main/java/cn/bunny/common/service/config/RedisConfiguration.java b/common/service-utils/src/main/java/cn/bunny/common/service/config/RedisConfiguration.java new file mode 100644 index 0000000..72cce70 --- /dev/null +++ b/common/service-utils/src/main/java/cn/bunny/common/service/config/RedisConfiguration.java @@ -0,0 +1,100 @@ +package cn.bunny.common.service.config; + +import com.fasterxml.jackson.annotation.JsonAutoDetect; +import com.fasterxml.jackson.annotation.PropertyAccessor; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.SerializationFeature; +import com.fasterxml.jackson.databind.jsontype.impl.LaissezFaireSubTypeValidator; +import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; +import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateDeserializer; +import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer; +import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateSerializer; +import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer; +import lombok.extern.slf4j.Slf4j; +import org.springframework.cache.CacheManager; +import org.springframework.context.annotation.Bean; +import org.springframework.data.redis.cache.RedisCacheConfiguration; +import org.springframework.data.redis.cache.RedisCacheManager; +import org.springframework.data.redis.connection.RedisConnectionFactory; +import org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer; +import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer; +import org.springframework.data.redis.serializer.RedisSerializationContext; +import org.springframework.data.redis.serializer.StringRedisSerializer; +import org.springframework.stereotype.Component; + +import java.time.Duration; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; + +/** + * 设置Redis序列化 + */ +@Component +@Slf4j +public class RedisConfiguration { + /** + * 使用StringRedisSerializer序列化为字符串 + */ + @Bean + public RedisTemplate redisTemplate(LettuceConnectionFactory connectionFactory) { + log.info("RedisConfiguration===>使用StringRedisSerializer序列化为字符串"); + + RedisTemplate redisTemplate = new RedisTemplate<>(); + redisTemplate.setConnectionFactory(connectionFactory); + // 设置key序列化为string + redisTemplate.setKeySerializer(new StringRedisSerializer()); + // 设置value序列化为JSON,使用GenericJackson2JsonRedisSerializer替换默认序列化 + redisTemplate.setValueSerializer(new GenericJackson2JsonRedisSerializer()); + redisTemplate.setHashKeySerializer(new StringRedisSerializer()); + redisTemplate.setHashValueSerializer(new GenericJackson2JsonRedisSerializer()); + + return redisTemplate; + } + + /** + * 解决cache(@Cacheable)把数据缓存到redis中的value是乱码问题 + */ + @Bean + @SuppressWarnings("all") + public CacheManager cacheManager(RedisConnectionFactory factory) { + log.info("RedisConfiguration===>解决cache(@Cacheable)把数据缓存到redis中的value是乱码问题"); + + // 配置序列化 + RedisCacheConfiguration config = RedisCacheConfiguration.defaultCacheConfig(); + config.serializeKeysWith(RedisSerializationContext.SerializationPair.fromSerializer(new StringRedisSerializer())) + .serializeValuesWith(RedisSerializationContext.SerializationPair.fromSerializer(jsonRedisSerializer())) + .entryTtl(Duration.ofDays(365)); + + RedisCacheManager cacheManager = RedisCacheManager.builder(factory) + .cacheDefaults(config).build(); + return cacheManager; + } + + /** + * 指定的日期模式 + */ + public Jackson2JsonRedisSerializer jsonRedisSerializer() { + log.info("RedisConfiguration===>指定的日期模式"); + + ObjectMapper mapper = new ObjectMapper(); + // 设置ObjectMapper访问权限 + mapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY); + // 记录序列化之后的数据类型,方便反序列化 + mapper.activateDefaultTyping(LaissezFaireSubTypeValidator.instance, ObjectMapper.DefaultTyping.NON_FINAL); + // LocalDatetime序列化,默认不兼容jdk8日期序列化 + JavaTimeModule timeModule = new JavaTimeModule(); + timeModule.addDeserializer(LocalDate.class, new LocalDateDeserializer(DateTimeFormatter.ofPattern("yyyy-MM-dd"))); + timeModule.addSerializer(LocalDate.class, new LocalDateSerializer(DateTimeFormatter.ofPattern("yyyy-MM-dd"))); + + timeModule.addDeserializer(LocalDateTime.class, new LocalDateTimeDeserializer(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); + timeModule.addSerializer(LocalDateTime.class, new LocalDateTimeSerializer(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); + // 关闭默认的日期格式化方式,默认UTC日期格式 yyyy-MM-dd’T’HH:mm:ss.SSS + mapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS); + mapper.registerModule(timeModule); + + return new Jackson2JsonRedisSerializer<>(mapper, Object.class); + } +} diff --git a/common/service-utils/src/main/java/cn/bunny/common/service/constant/MessageConstant.java b/common/service-utils/src/main/java/cn/bunny/common/service/constant/MessageConstant.java new file mode 100644 index 0000000..718b75e --- /dev/null +++ b/common/service-utils/src/main/java/cn/bunny/common/service/constant/MessageConstant.java @@ -0,0 +1,35 @@ +package cn.bunny.common.service.constant; + +/** + * 信息提示常量类 + */ +public class MessageConstant { + public static final String PASSWORD_ERROR = "密码错误"; + public static final String OLD_PASSWORD_ERROR = "旧密码不匹配"; + public static final String OLD_PASSWORD_SAME_NEW_PASSWORD = "旧密码与新密码相同"; + public static final String ACCOUNT_NOT_FOUND = "账号不存在"; + public static final String ACCOUNT_LOCKED = "账号被锁定"; + public static final String UNKNOWN_ERROR = "未知错误"; + public static final String USER_NOT_LOGIN = "用户未登录"; + public static final String USER_TOKEN_OUT_OF_DATE = "用户登录过期"; + public static final String LOGIN_FAILED = "登录失败"; + public static final String UPLOAD_FAILED = "文件上传失败"; + public static final String PASSWORD_EDIT_FAILED = "密码修改失败"; + public static final String ALREADY_EXISTS = "已存在"; + public static final String REQUEST_NOT_EMPTY = "请求不为空"; + public static final String UPDATE_ID_IS_NOT_EMPTY = "删除id不能为空"; + public static final String DELETE_ID_IS_NOT_EMPTY = "修改id不能为空"; + public static final String MENU_IS_NOT_EXIST = "菜单不存在"; + public static final String SAVE_DTO_IS_NULL = "添加参数不能为空"; + public static final String UPDATE_DTO_IS_NULL = "修改参数不能为空"; + public static final String FIND_ID_IS_NOT_EMPTY = "查询ID不能为空"; + public static final String MESSAGE_CODE_NOT_PASS = "短信验证码未过期"; + public static final String MESSAGE_CODE_UNAUTHORIZED = "短信验证码未授权,请联系管理员"; + public static final String VERIFICATION_CODE_ERROR = "验证码错误"; + public static final String USER_DOES_NOT_EXIST = "用户不存在"; + public static final String USER_DOES_IS_EXIST = "用户已存在"; + public static final String VERIFICATION_CODE_IS_EMPTY = "请先发送验证码"; + public static final String LOGIN_DTO_IS_EMPTY = "登录参数不能为空"; + public static final String TOKEN_IS_EMPTY = "token为空"; + public static final String DATA_IS_EMPTY = "数据为空"; +} diff --git a/common/service-utils/src/main/java/cn/bunny/common/service/context/BaseContext.java b/common/service-utils/src/main/java/cn/bunny/common/service/context/BaseContext.java new file mode 100644 index 0000000..26ad7fb --- /dev/null +++ b/common/service-utils/src/main/java/cn/bunny/common/service/context/BaseContext.java @@ -0,0 +1,33 @@ +package cn.bunny.common.service.context; + +public class BaseContext { + private static final ThreadLocal userId = new ThreadLocal<>(); + private static final ThreadLocal wareId = new ThreadLocal<>(); + private static final ThreadLocal adminId = new ThreadLocal<>(); + + // 用户id相关 + public static Long getUserId() { + return userId.get(); + } + + public static void setUserId(Long _userId) { + userId.set(_userId); + } + + public static void removeUserId() { + userId.remove(); + } + + // adminId 相关 + public static Long getAdminId() { + return adminId.get(); + } + + public static void setAdminId(Long _adminId) { + adminId.set(_adminId); + } + + public static void removeAdminId() { + adminId.remove(); + } +} \ No newline at end of file diff --git a/common/service-utils/src/main/java/cn/bunny/common/service/exception/BunnyException.java b/common/service-utils/src/main/java/cn/bunny/common/service/exception/BunnyException.java new file mode 100644 index 0000000..fb87984 --- /dev/null +++ b/common/service-utils/src/main/java/cn/bunny/common/service/exception/BunnyException.java @@ -0,0 +1,33 @@ +package cn.bunny.common.service.exception; + +import cn.bunny.enums.ResultCodeEnum; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.ToString; +import lombok.extern.slf4j.Slf4j; + +@NoArgsConstructor +@Getter +@ToString +@Slf4j +public class BunnyException extends RuntimeException { + Integer code;// 状态码 + String message;// 描述信息 + + public BunnyException(Integer code, String message) { + super(message); + this.code = code; + this.message = message; + } + + public BunnyException(String message) { + super(message); + this.message = message; + } + + public BunnyException(ResultCodeEnum codeEnum) { + super(codeEnum.getMessage()); + this.code = codeEnum.getCode(); + this.message = codeEnum.getMessage(); + } +} diff --git a/common/service-utils/src/main/java/cn/bunny/common/service/exception/GlobalExceptionHandler.java b/common/service-utils/src/main/java/cn/bunny/common/service/exception/GlobalExceptionHandler.java new file mode 100644 index 0000000..1a7ea08 --- /dev/null +++ b/common/service-utils/src/main/java/cn/bunny/common/service/exception/GlobalExceptionHandler.java @@ -0,0 +1,81 @@ +package cn.bunny.common.service.exception; + +import cn.bunny.common.service.constant.MessageConstant; +import cn.bunny.common.service.result.Result; +import cn.bunny.enums.ResultCodeEnum; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.ExceptionHandler; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.RestControllerAdvice; + +import java.io.FileNotFoundException; +import java.nio.file.AccessDeniedException; +import java.sql.SQLIntegrityConstraintViolationException; + +@RestControllerAdvice +@Slf4j +public class GlobalExceptionHandler { + // 自定义异常信息 + @ExceptionHandler(BunnyException.class) + @ResponseBody + public Result exceptionHandler(BunnyException exception) { + log.error("GlobalExceptionHandler===>自定义异常信息:{}", exception.getMessage()); + + Integer code = exception.getCode() != null ? exception.getCode() : 500; + return Result.error(null, code, exception.getMessage()); + } + + // 运行时异常信息 + @ExceptionHandler(RuntimeException.class) + @ResponseBody + public Result exceptionHandler(RuntimeException exception) throws FileNotFoundException { + log.error("GlobalExceptionHandler===>运行时异常信息:{}", exception.getMessage()); + exception.printStackTrace(); + return Result.error(null, 500, "出错了啦"); + } + + // 捕获系统异常 + @ExceptionHandler(Exception.class) + @ResponseBody + public Result error(Exception exception) { + log.error("GlobalExceptionHandler===>系统异常信息:{}", exception.getMessage()); + + return Result.error(null, 500, "系统异常"); + } + + // 特定异常处理 + @ExceptionHandler(ArithmeticException.class) + @ResponseBody + public Result error(ArithmeticException exception) { + log.error("GlobalExceptionHandler===>特定异常信息:{}", exception.getMessage()); + + return Result.error(null, 500, exception.getMessage()); + } + + // spring security异常 + @ExceptionHandler(AccessDeniedException.class) + @ResponseBody + public Result error(AccessDeniedException exception) throws AccessDeniedException { + log.error("GlobalExceptionHandler===>spring security异常:{}", exception.getMessage()); + + return Result.error(ResultCodeEnum.PERMISSION); + } + + // 处理SQL异常 + @ExceptionHandler(SQLIntegrityConstraintViolationException.class) + @ResponseBody + public Result exceptionHandler(SQLIntegrityConstraintViolationException exception) { + log.error("GlobalExceptionHandler===>处理SQL异常:{}", exception.getMessage()); + + String message = exception.getMessage(); + if (message.contains("Duplicate entry")) { + // 截取用户名 + String username = message.split(" ")[2]; + // 错误信息 + String errorMessage = username + MessageConstant.ALREADY_EXISTS; + return Result.error(errorMessage); + } else { + return Result.error(MessageConstant.UNKNOWN_ERROR); + } + } +} diff --git a/common/service-utils/src/main/java/cn/bunny/common/service/properties/MinioProperties.java b/common/service-utils/src/main/java/cn/bunny/common/service/properties/MinioProperties.java new file mode 100644 index 0000000..a09a90b --- /dev/null +++ b/common/service-utils/src/main/java/cn/bunny/common/service/properties/MinioProperties.java @@ -0,0 +1,27 @@ +package cn.bunny.common.service.properties; + +import io.minio.MinioClient; +import lombok.Data; +import lombok.extern.slf4j.Slf4j; +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +@Configuration +@ConfigurationProperties(prefix = "bunny.minio") +@ConditionalOnProperty(name = "bunny.minio.bucket-name")// 当属性有值时这个配置才生效 +@Data +@Slf4j +public class MinioProperties { + private String endpointUrl; + private String accessKey; + private String secretKey; + private String bucketName; + + @Bean + public MinioClient minioClient() { + log.info("注册MinioClient..."); + return MinioClient.builder().endpoint(endpointUrl).credentials(accessKey, secretKey).build(); + } +} diff --git a/common/service-utils/src/main/java/cn/bunny/common/service/result/Result.java b/common/service-utils/src/main/java/cn/bunny/common/service/result/Result.java new file mode 100644 index 0000000..26b5d85 --- /dev/null +++ b/common/service-utils/src/main/java/cn/bunny/common/service/result/Result.java @@ -0,0 +1,175 @@ +package cn.bunny.common.service.result; + +import cn.bunny.enums.ResultCodeEnum; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class Result { + // 状态码 + private Integer code; + // 返回消息 + private String message; + // 返回数据 + private T data; + + /** + * * 自定义返回体 + * + * @param data 返回体 + * @return Result + */ + protected static Result build(T data) { + Result result = new Result<>(); + if (data != null) { + result.setData(data); + } + return result; + } + + /** + * * 自定义返回体,使用ResultCodeEnum构建 + * + * @param body 返回体 + * @param codeEnum 返回状态码 + * @return Result + */ + public static Result build(T body, ResultCodeEnum codeEnum) { + Result result = build(body); + result.setCode(codeEnum.getCode()); + result.setMessage(codeEnum.getMessage()); + return result; + } + + /** + * * 自定义返回体 + * + * @param body 返回体 + * @param code 返回状态码 + * @param message 返回消息 + * @return Result + */ + public static Result build(T body, Integer code, String message) { + Result result = build(body); + result.setCode(code); + result.setMessage(message); + return result; + } + + /** + * * 操作成功 + * + * @return Result + */ + public static Result success() { + return Result.success(null, ResultCodeEnum.SUCCESS); + } + + /** + * * 操作成功 + * + * @param data baseCategory1List + */ + public static Result success(T data) { + return build(data, ResultCodeEnum.SUCCESS); + } + + /** + * * 操作成功-状态码 + * + * @param codeEnum 状态码 + */ + public static Result success(ResultCodeEnum codeEnum) { + return success(null, codeEnum); + } + + /** + * * 操作成功-自定义返回数据和状态码 + * + * @param data 返回体 + * @param codeEnum 状态码 + */ + public static Result success(T data, ResultCodeEnum codeEnum) { + return build(data, codeEnum); + } + + /** + * * 操作失败-自定义返回数据和状态码 + * + * @param data 返回体 + * @param message 错误信息 + */ + public static Result success(T data, String message) { + return build(data, 200, message); + } + + /** + * * 操作失败-自定义返回数据和状态码 + * + * @param data 返回体 + * @param code 状态码 + * @param message 错误信息 + */ + public static Result success(T data, Integer code, String message) { + return build(data, code, message); + } + + /** + * * 操作失败 + */ + public static Result error() { + return Result.build(null); + } + + /** + * * 操作失败-自定义返回数据 + * + * @param data 返回体 + */ + public static Result error(T data) { + return build(data, ResultCodeEnum.FAIL); + } + + /** + * * 操作失败-状态码 + * + * @param codeEnum 状态码 + */ + public static Result error(ResultCodeEnum codeEnum) { + return build(null, codeEnum); + } + + /** + * * 操作失败-自定义返回数据和状态码 + * + * @param data 返回体 + * @param codeEnum 状态码 + */ + public static Result error(T data, ResultCodeEnum codeEnum) { + return build(data, codeEnum); + } + + /** + * * 操作失败-自定义返回数据和状态码 + * + * @param data 返回体 + * @param code 状态码 + * @param message 错误信息 + */ + public static Result error(T data, Integer code, String message) { + return build(data, code, message); + } + + /** + * * 操作失败-自定义返回数据和状态码 + * + * @param data 返回体 + * @param message 错误信息 + */ + public static Result error(T data, String message) { + return build(null, 500, message); + } +} diff --git a/logs/bunny-service/spring.log b/logs/bunny-service/spring.log index 873183a..d21f1d4 100644 --- a/logs/bunny-service/spring.log +++ b/logs/bunny-service/spring.log @@ -1,19 +1,556 @@ -22:13:48:146 INFO 6108 --- [bunny-service] [main] cn.bunny.service.ServiceApplication : Starting ServiceApplication using Java 21.0.2 with PID 6108 (G:\web项目\Bunny-Cli\Java\java-template\service\target\classes started by 13199 in G:\web项目\Bunny-Cli\Java\java-template) -22:13:48:146 INFO 6108 --- [bunny-service] [main] cn.bunny.service.ServiceApplication : The following 1 profile is active: "dev" -22:13:48:409 INFO 6108 --- [bunny-service] [main] .s.d.r.c.RepositoryConfigurationDelegate : Multiple Spring Data modules found, entering strict repository configuration mode -22:13:48:410 INFO 6108 --- [bunny-service] [main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data Redis repositories in DEFAULT mode. -22:13:48:423 INFO 6108 --- [bunny-service] [main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 5 ms. Found 0 Redis repository interfaces. -22:13:48:630 INFO 6108 --- [bunny-service] [main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port 8800 (http) -22:13:48:635 INFO 6108 --- [bunny-service] [main] o.apache.catalina.core.StandardService : Starting service [Tomcat] -22:13:48:635 INFO 6108 --- [bunny-service] [main] o.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/10.1.20] -22:13:48:664 INFO 6108 --- [bunny-service] [main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext -22:13:48:664 INFO 6108 --- [bunny-service] [main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 497 ms -22:13:49:073 WARN 6108 --- [bunny-service] [main] .s.s.UserDetailsServiceAutoConfiguration : +00:00:20:860 INFO 19084 --- [bunny-service] [main] cn.bunny.service.ServiceApplication : Starting ServiceApplication using Java 21.0.2 with PID 19084 (G:\web项目\Bunny-Cli\Java\java-template\service\target\classes started by 13199 in G:\web项目\Bunny-Cli\Java\java-template) +00:00:20:865 INFO 19084 --- [bunny-service] [main] cn.bunny.service.ServiceApplication : The following 1 profile is active: "dev" +00:00:21:211 INFO 19084 --- [bunny-service] [main] .s.d.r.c.RepositoryConfigurationDelegate : Multiple Spring Data modules found, entering strict repository configuration mode +00:00:21:212 INFO 19084 --- [bunny-service] [main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data Redis repositories in DEFAULT mode. +00:00:21:226 INFO 19084 --- [bunny-service] [main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 7 ms. Found 0 Redis repository interfaces. +00:00:21:585 INFO 19084 --- [bunny-service] [main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port 8800 (http) +00:00:21:591 INFO 19084 --- [bunny-service] [main] o.apache.catalina.core.StandardService : Starting service [Tomcat] +00:00:21:592 INFO 19084 --- [bunny-service] [main] o.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/10.1.16] +00:00:21:633 INFO 19084 --- [bunny-service] [main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext +00:00:21:633 INFO 19084 --- [bunny-service] [main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 745 ms +00:00:21:679 WARN 19084 --- [bunny-service] [main] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'indexController': Unsatisfied dependency expressed through field 'sysUserService': Error creating bean with name 'sysUserServiceImpl': Unsatisfied dependency expressed through field 'baseMapper': Error creating bean with name 'sysUserMapper' defined in file [G:\web项目\Bunny-Cli\Java\java-template\service\target\classes\cn\bunny\service\mapper\SysUserMapper.class]: Property 'sqlSessionFactory' or 'sqlSessionTemplate' are required +00:00:21:681 INFO 19084 --- [bunny-service] [main] o.apache.catalina.core.StandardService : Stopping service [Tomcat] +00:00:21:688 INFO 19084 --- [bunny-service] [main] .s.b.a.l.ConditionEvaluationReportLogger : -Using generated security password: 8d911c70-0398-4b8f-b5e7-b50ff6bc614e +Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled. +00:00:21:696 ERROR 19084 --- [bunny-service] [main] o.s.boot.SpringApplication : Application run failed + +org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'indexController': Unsatisfied dependency expressed through field 'sysUserService': Error creating bean with name 'sysUserServiceImpl': Unsatisfied dependency expressed through field 'baseMapper': Error creating bean with name 'sysUserMapper' defined in file [G:\web项目\Bunny-Cli\Java\java-template\service\target\classes\cn\bunny\service\mapper\SysUserMapper.class]: Property 'sqlSessionFactory' or 'sqlSessionTemplate' are required + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:772) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:752) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:145) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:493) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1420) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:600) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:523) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:325) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:323) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:973) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:946) ~[spring-context-6.1.1.jar:6.1.1] + at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:616) ~[spring-context-6.1.1.jar:6.1.1] + at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) ~[spring-boot-3.2.0.jar:3.2.0] + at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:753) ~[spring-boot-3.2.0.jar:3.2.0] + at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:455) ~[spring-boot-3.2.0.jar:3.2.0] + at org.springframework.boot.SpringApplication.run(SpringApplication.java:323) ~[spring-boot-3.2.0.jar:3.2.0] + at org.springframework.boot.SpringApplication.run(SpringApplication.java:1342) ~[spring-boot-3.2.0.jar:3.2.0] + at org.springframework.boot.SpringApplication.run(SpringApplication.java:1331) ~[spring-boot-3.2.0.jar:3.2.0] + at cn.bunny.service.ServiceApplication.main(ServiceApplication.java:13) ~[classes/:na] +Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'sysUserServiceImpl': Unsatisfied dependency expressed through field 'baseMapper': Error creating bean with name 'sysUserMapper' defined in file [G:\web项目\Bunny-Cli\Java\java-template\service\target\classes\cn\bunny\service\mapper\SysUserMapper.class]: Property 'sqlSessionFactory' or 'sqlSessionTemplate' are required + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:772) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:752) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:145) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:493) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1420) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:600) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:523) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:325) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:323) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:254) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1441) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1348) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:769) ~[spring-beans-6.1.1.jar:6.1.1] + ... 20 common frames omitted +Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sysUserMapper' defined in file [G:\web项目\Bunny-Cli\Java\java-template\service\target\classes\cn\bunny\service\mapper\SysUserMapper.class]: Property 'sqlSessionFactory' or 'sqlSessionTemplate' are required + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1775) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:601) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:523) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:325) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:323) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:254) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1441) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1348) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:769) ~[spring-beans-6.1.1.jar:6.1.1] + ... 34 common frames omitted +Caused by: java.lang.IllegalArgumentException: Property 'sqlSessionFactory' or 'sqlSessionTemplate' are required + at org.springframework.util.Assert.notNull(Assert.java:172) ~[spring-core-6.1.1.jar:6.1.1] + at org.mybatis.spring.support.SqlSessionDaoSupport.checkDaoConfig(SqlSessionDaoSupport.java:122) ~[mybatis-spring-2.0.5.jar:2.0.5] + at org.mybatis.spring.mapper.MapperFactoryBean.checkDaoConfig(MapperFactoryBean.java:73) ~[mybatis-spring-2.0.5.jar:2.0.5] + at org.springframework.dao.support.DaoSupport.afterPropertiesSet(DaoSupport.java:44) ~[spring-tx-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1822) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1771) ~[spring-beans-6.1.1.jar:6.1.1] + ... 44 common frames omitted + +00:00:36:127 INFO 19572 --- [bunny-service] [main] cn.bunny.service.ServiceApplication : Starting ServiceApplication using Java 21.0.2 with PID 19572 (G:\web项目\Bunny-Cli\Java\java-template\service\target\classes started by 13199 in G:\web项目\Bunny-Cli\Java\java-template) +00:00:36:129 INFO 19572 --- [bunny-service] [main] cn.bunny.service.ServiceApplication : The following 1 profile is active: "dev" +00:00:36:457 INFO 19572 --- [bunny-service] [main] .s.d.r.c.RepositoryConfigurationDelegate : Multiple Spring Data modules found, entering strict repository configuration mode +00:00:36:458 INFO 19572 --- [bunny-service] [main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data Redis repositories in DEFAULT mode. +00:00:36:473 INFO 19572 --- [bunny-service] [main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 7 ms. Found 0 Redis repository interfaces. +00:00:36:823 INFO 19572 --- [bunny-service] [main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port 8800 (http) +00:00:36:828 INFO 19572 --- [bunny-service] [main] o.apache.catalina.core.StandardService : Starting service [Tomcat] +00:00:36:828 INFO 19572 --- [bunny-service] [main] o.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/10.1.16] +00:00:36:857 INFO 19572 --- [bunny-service] [main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext +00:00:36:857 INFO 19572 --- [bunny-service] [main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 706 ms +00:00:36:893 WARN 19572 --- [bunny-service] [main] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'indexController': Unsatisfied dependency expressed through field 'sysUserService': Error creating bean with name 'sysUserServiceImpl': Unsatisfied dependency expressed through field 'baseMapper': Error creating bean with name 'sysUserMapper' defined in file [G:\web项目\Bunny-Cli\Java\java-template\service\target\classes\cn\bunny\service\mapper\SysUserMapper.class]: Property 'sqlSessionFactory' or 'sqlSessionTemplate' are required +00:00:36:893 INFO 19572 --- [bunny-service] [main] o.apache.catalina.core.StandardService : Stopping service [Tomcat] +00:00:36:907 INFO 19572 --- [bunny-service] [main] .s.b.a.l.ConditionEvaluationReportLogger : + +Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled. +00:00:36:918 ERROR 19572 --- [bunny-service] [main] o.s.boot.SpringApplication : Application run failed + +org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'indexController': Unsatisfied dependency expressed through field 'sysUserService': Error creating bean with name 'sysUserServiceImpl': Unsatisfied dependency expressed through field 'baseMapper': Error creating bean with name 'sysUserMapper' defined in file [G:\web项目\Bunny-Cli\Java\java-template\service\target\classes\cn\bunny\service\mapper\SysUserMapper.class]: Property 'sqlSessionFactory' or 'sqlSessionTemplate' are required + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:772) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:752) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:145) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:493) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1420) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:600) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:523) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:325) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:323) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:973) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:946) ~[spring-context-6.1.1.jar:6.1.1] + at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:616) ~[spring-context-6.1.1.jar:6.1.1] + at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) ~[spring-boot-3.2.0.jar:3.2.0] + at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:753) ~[spring-boot-3.2.0.jar:3.2.0] + at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:455) ~[spring-boot-3.2.0.jar:3.2.0] + at org.springframework.boot.SpringApplication.run(SpringApplication.java:323) ~[spring-boot-3.2.0.jar:3.2.0] + at org.springframework.boot.SpringApplication.run(SpringApplication.java:1342) ~[spring-boot-3.2.0.jar:3.2.0] + at org.springframework.boot.SpringApplication.run(SpringApplication.java:1331) ~[spring-boot-3.2.0.jar:3.2.0] + at cn.bunny.service.ServiceApplication.main(ServiceApplication.java:13) ~[classes/:na] +Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'sysUserServiceImpl': Unsatisfied dependency expressed through field 'baseMapper': Error creating bean with name 'sysUserMapper' defined in file [G:\web项目\Bunny-Cli\Java\java-template\service\target\classes\cn\bunny\service\mapper\SysUserMapper.class]: Property 'sqlSessionFactory' or 'sqlSessionTemplate' are required + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:772) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:752) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:145) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:493) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1420) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:600) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:523) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:325) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:323) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:254) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1441) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1348) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:769) ~[spring-beans-6.1.1.jar:6.1.1] + ... 20 common frames omitted +Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sysUserMapper' defined in file [G:\web项目\Bunny-Cli\Java\java-template\service\target\classes\cn\bunny\service\mapper\SysUserMapper.class]: Property 'sqlSessionFactory' or 'sqlSessionTemplate' are required + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1775) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:601) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:523) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:325) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:323) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:254) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1441) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1348) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:769) ~[spring-beans-6.1.1.jar:6.1.1] + ... 34 common frames omitted +Caused by: java.lang.IllegalArgumentException: Property 'sqlSessionFactory' or 'sqlSessionTemplate' are required + at org.springframework.util.Assert.notNull(Assert.java:172) ~[spring-core-6.1.1.jar:6.1.1] + at org.mybatis.spring.support.SqlSessionDaoSupport.checkDaoConfig(SqlSessionDaoSupport.java:122) ~[mybatis-spring-2.0.5.jar:2.0.5] + at org.mybatis.spring.mapper.MapperFactoryBean.checkDaoConfig(MapperFactoryBean.java:73) ~[mybatis-spring-2.0.5.jar:2.0.5] + at org.springframework.dao.support.DaoSupport.afterPropertiesSet(DaoSupport.java:44) ~[spring-tx-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1822) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1771) ~[spring-beans-6.1.1.jar:6.1.1] + ... 44 common frames omitted + +00:01:49:361 INFO 20456 --- [bunny-service] [main] cn.bunny.service.ServiceApplication : Starting ServiceApplication using Java 21.0.2 with PID 20456 (G:\web项目\Bunny-Cli\Java\java-template\service\target\classes started by 13199 in G:\web项目\Bunny-Cli\Java\java-template) +00:01:49:362 INFO 20456 --- [bunny-service] [main] cn.bunny.service.ServiceApplication : The following 1 profile is active: "dev" +00:01:49:704 INFO 20456 --- [bunny-service] [main] .s.d.r.c.RepositoryConfigurationDelegate : Multiple Spring Data modules found, entering strict repository configuration mode +00:01:49:706 INFO 20456 --- [bunny-service] [main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data Redis repositories in DEFAULT mode. +00:01:49:720 INFO 20456 --- [bunny-service] [main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 7 ms. Found 0 Redis repository interfaces. +00:01:50:124 INFO 20456 --- [bunny-service] [main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port 8800 (http) +00:01:50:130 INFO 20456 --- [bunny-service] [main] o.apache.catalina.core.StandardService : Starting service [Tomcat] +00:01:50:130 INFO 20456 --- [bunny-service] [main] o.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/10.1.16] +00:01:50:162 INFO 20456 --- [bunny-service] [main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext +00:01:50:162 INFO 20456 --- [bunny-service] [main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 777 ms +00:01:50:203 WARN 20456 --- [bunny-service] [main] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'indexController': Unsatisfied dependency expressed through field 'sysUserService': Error creating bean with name 'sysUserServiceImpl': Unsatisfied dependency expressed through field 'baseMapper': Error creating bean with name 'sysUserMapper' defined in file [G:\web项目\Bunny-Cli\Java\java-template\service\target\classes\cn\bunny\service\mapper\SysUserMapper.class]: Property 'sqlSessionFactory' or 'sqlSessionTemplate' are required +00:01:50:204 INFO 20456 --- [bunny-service] [main] o.apache.catalina.core.StandardService : Stopping service [Tomcat] +00:01:50:216 INFO 20456 --- [bunny-service] [main] .s.b.a.l.ConditionEvaluationReportLogger : + +Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled. +00:01:50:230 ERROR 20456 --- [bunny-service] [main] o.s.boot.SpringApplication : Application run failed + +org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'indexController': Unsatisfied dependency expressed through field 'sysUserService': Error creating bean with name 'sysUserServiceImpl': Unsatisfied dependency expressed through field 'baseMapper': Error creating bean with name 'sysUserMapper' defined in file [G:\web项目\Bunny-Cli\Java\java-template\service\target\classes\cn\bunny\service\mapper\SysUserMapper.class]: Property 'sqlSessionFactory' or 'sqlSessionTemplate' are required + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:772) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:752) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:145) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:493) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1420) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:600) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:523) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:325) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:323) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:973) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:946) ~[spring-context-6.1.1.jar:6.1.1] + at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:616) ~[spring-context-6.1.1.jar:6.1.1] + at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) ~[spring-boot-3.2.0.jar:3.2.0] + at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:753) ~[spring-boot-3.2.0.jar:3.2.0] + at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:455) ~[spring-boot-3.2.0.jar:3.2.0] + at org.springframework.boot.SpringApplication.run(SpringApplication.java:323) ~[spring-boot-3.2.0.jar:3.2.0] + at org.springframework.boot.SpringApplication.run(SpringApplication.java:1342) ~[spring-boot-3.2.0.jar:3.2.0] + at org.springframework.boot.SpringApplication.run(SpringApplication.java:1331) ~[spring-boot-3.2.0.jar:3.2.0] + at cn.bunny.service.ServiceApplication.main(ServiceApplication.java:13) ~[classes/:na] +Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'sysUserServiceImpl': Unsatisfied dependency expressed through field 'baseMapper': Error creating bean with name 'sysUserMapper' defined in file [G:\web项目\Bunny-Cli\Java\java-template\service\target\classes\cn\bunny\service\mapper\SysUserMapper.class]: Property 'sqlSessionFactory' or 'sqlSessionTemplate' are required + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:772) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:752) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:145) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:493) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1420) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:600) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:523) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:325) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:323) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:254) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1441) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1348) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:769) ~[spring-beans-6.1.1.jar:6.1.1] + ... 20 common frames omitted +Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sysUserMapper' defined in file [G:\web项目\Bunny-Cli\Java\java-template\service\target\classes\cn\bunny\service\mapper\SysUserMapper.class]: Property 'sqlSessionFactory' or 'sqlSessionTemplate' are required + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1775) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:601) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:523) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:325) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:323) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:254) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1441) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1348) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:769) ~[spring-beans-6.1.1.jar:6.1.1] + ... 34 common frames omitted +Caused by: java.lang.IllegalArgumentException: Property 'sqlSessionFactory' or 'sqlSessionTemplate' are required + at org.springframework.util.Assert.notNull(Assert.java:172) ~[spring-core-6.1.1.jar:6.1.1] + at org.mybatis.spring.support.SqlSessionDaoSupport.checkDaoConfig(SqlSessionDaoSupport.java:122) ~[mybatis-spring-2.0.5.jar:2.0.5] + at org.mybatis.spring.mapper.MapperFactoryBean.checkDaoConfig(MapperFactoryBean.java:73) ~[mybatis-spring-2.0.5.jar:2.0.5] + at org.springframework.dao.support.DaoSupport.afterPropertiesSet(DaoSupport.java:44) ~[spring-tx-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1822) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1771) ~[spring-beans-6.1.1.jar:6.1.1] + ... 44 common frames omitted + +00:02:35:129 INFO 8688 --- [bunny-service] [main] cn.bunny.service.ServiceApplication : Starting ServiceApplication using Java 21.0.2 with PID 8688 (G:\web项目\Bunny-Cli\Java\java-template\service\target\classes started by 13199 in G:\web项目\Bunny-Cli\Java\java-template) +00:02:35:130 INFO 8688 --- [bunny-service] [main] cn.bunny.service.ServiceApplication : The following 1 profile is active: "dev" +00:02:35:458 INFO 8688 --- [bunny-service] [main] .s.d.r.c.RepositoryConfigurationDelegate : Multiple Spring Data modules found, entering strict repository configuration mode +00:02:35:459 INFO 8688 --- [bunny-service] [main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data Redis repositories in DEFAULT mode. +00:02:35:475 INFO 8688 --- [bunny-service] [main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 7 ms. Found 0 Redis repository interfaces. +00:02:35:824 INFO 8688 --- [bunny-service] [main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port 8800 (http) +00:02:35:828 INFO 8688 --- [bunny-service] [main] o.apache.catalina.core.StandardService : Starting service [Tomcat] +00:02:35:828 INFO 8688 --- [bunny-service] [main] o.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/10.1.16] +00:02:35:859 INFO 8688 --- [bunny-service] [main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext +00:02:35:859 INFO 8688 --- [bunny-service] [main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 705 ms +00:02:35:894 WARN 8688 --- [bunny-service] [main] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'indexController': Unsatisfied dependency expressed through field 'sysUserService': Error creating bean with name 'sysUserServiceImpl': Unsatisfied dependency expressed through field 'baseMapper': Error creating bean with name 'sysUserMapper' defined in file [G:\web项目\Bunny-Cli\Java\java-template\service\target\classes\cn\bunny\service\mapper\SysUserMapper.class]: Property 'sqlSessionFactory' or 'sqlSessionTemplate' are required +00:02:35:897 INFO 8688 --- [bunny-service] [main] o.apache.catalina.core.StandardService : Stopping service [Tomcat] +00:02:35:908 INFO 8688 --- [bunny-service] [main] .s.b.a.l.ConditionEvaluationReportLogger : + +Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled. +00:02:35:918 ERROR 8688 --- [bunny-service] [main] o.s.boot.SpringApplication : Application run failed + +org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'indexController': Unsatisfied dependency expressed through field 'sysUserService': Error creating bean with name 'sysUserServiceImpl': Unsatisfied dependency expressed through field 'baseMapper': Error creating bean with name 'sysUserMapper' defined in file [G:\web项目\Bunny-Cli\Java\java-template\service\target\classes\cn\bunny\service\mapper\SysUserMapper.class]: Property 'sqlSessionFactory' or 'sqlSessionTemplate' are required + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:772) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:752) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:145) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:493) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1420) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:600) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:523) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:325) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:323) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:973) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:946) ~[spring-context-6.1.1.jar:6.1.1] + at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:616) ~[spring-context-6.1.1.jar:6.1.1] + at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) ~[spring-boot-3.2.0.jar:3.2.0] + at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:753) ~[spring-boot-3.2.0.jar:3.2.0] + at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:455) ~[spring-boot-3.2.0.jar:3.2.0] + at org.springframework.boot.SpringApplication.run(SpringApplication.java:323) ~[spring-boot-3.2.0.jar:3.2.0] + at org.springframework.boot.SpringApplication.run(SpringApplication.java:1342) ~[spring-boot-3.2.0.jar:3.2.0] + at org.springframework.boot.SpringApplication.run(SpringApplication.java:1331) ~[spring-boot-3.2.0.jar:3.2.0] + at cn.bunny.service.ServiceApplication.main(ServiceApplication.java:13) ~[classes/:na] +Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'sysUserServiceImpl': Unsatisfied dependency expressed through field 'baseMapper': Error creating bean with name 'sysUserMapper' defined in file [G:\web项目\Bunny-Cli\Java\java-template\service\target\classes\cn\bunny\service\mapper\SysUserMapper.class]: Property 'sqlSessionFactory' or 'sqlSessionTemplate' are required + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:772) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:752) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:145) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:493) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1420) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:600) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:523) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:325) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:323) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:254) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1441) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1348) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:769) ~[spring-beans-6.1.1.jar:6.1.1] + ... 20 common frames omitted +Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sysUserMapper' defined in file [G:\web项目\Bunny-Cli\Java\java-template\service\target\classes\cn\bunny\service\mapper\SysUserMapper.class]: Property 'sqlSessionFactory' or 'sqlSessionTemplate' are required + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1775) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:601) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:523) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:325) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:323) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:254) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1441) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1348) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:769) ~[spring-beans-6.1.1.jar:6.1.1] + ... 34 common frames omitted +Caused by: java.lang.IllegalArgumentException: Property 'sqlSessionFactory' or 'sqlSessionTemplate' are required + at org.springframework.util.Assert.notNull(Assert.java:172) ~[spring-core-6.1.1.jar:6.1.1] + at org.mybatis.spring.support.SqlSessionDaoSupport.checkDaoConfig(SqlSessionDaoSupport.java:122) ~[mybatis-spring-2.0.5.jar:2.0.5] + at org.mybatis.spring.mapper.MapperFactoryBean.checkDaoConfig(MapperFactoryBean.java:73) ~[mybatis-spring-2.0.5.jar:2.0.5] + at org.springframework.dao.support.DaoSupport.afterPropertiesSet(DaoSupport.java:44) ~[spring-tx-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1822) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1771) ~[spring-beans-6.1.1.jar:6.1.1] + ... 44 common frames omitted + +10:28:24:507 INFO 25976 --- [bunny-service] [main] cn.bunny.service.ServiceApplication : Starting ServiceApplication using Java 21.0.2 with PID 25976 (G:\web项目\Bunny-Cli\Java\java-template\service\target\classes started by 13199 in G:\web项目\Bunny-Cli\Java\java-template) +10:28:24:508 INFO 25976 --- [bunny-service] [main] cn.bunny.service.ServiceApplication : The following 1 profile is active: "dev" +10:28:24:900 INFO 25976 --- [bunny-service] [main] .s.d.r.c.RepositoryConfigurationDelegate : Multiple Spring Data modules found, entering strict repository configuration mode +10:28:24:902 INFO 25976 --- [bunny-service] [main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data Redis repositories in DEFAULT mode. +10:28:24:920 INFO 25976 --- [bunny-service] [main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 7 ms. Found 0 Redis repository interfaces. +10:28:24:985 WARN 25976 --- [bunny-service] [main] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: java.lang.IllegalArgumentException: Invalid value type for attribute 'factoryBeanObjectType': java.lang.String +10:28:24:990 INFO 25976 --- [bunny-service] [main] .s.b.a.l.ConditionEvaluationReportLogger : + +Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled. +10:28:25:001 ERROR 25976 --- [bunny-service] [main] o.s.boot.SpringApplication : Application run failed + +java.lang.IllegalArgumentException: Invalid value type for attribute 'factoryBeanObjectType': java.lang.String + at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.getTypeForFactoryBeanFromAttributes(FactoryBeanRegistrySupport.java:86) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.getTypeForFactoryBean(AbstractAutowireCapableBeanFactory.java:838) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.support.AbstractBeanFactory.isTypeMatch(AbstractBeanFactory.java:620) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.support.DefaultListableBeanFactory.doGetBeanNamesForType(DefaultListableBeanFactory.java:573) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanNamesForType(DefaultListableBeanFactory.java:532) ~[spring-beans-6.1.1.jar:6.1.1] + at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:138) ~[spring-context-6.1.1.jar:6.1.1] + at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:775) ~[spring-context-6.1.1.jar:6.1.1] + at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:597) ~[spring-context-6.1.1.jar:6.1.1] + at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) ~[spring-boot-3.2.0.jar:3.2.0] + at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:753) ~[spring-boot-3.2.0.jar:3.2.0] + at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:455) ~[spring-boot-3.2.0.jar:3.2.0] + at org.springframework.boot.SpringApplication.run(SpringApplication.java:323) ~[spring-boot-3.2.0.jar:3.2.0] + at org.springframework.boot.SpringApplication.run(SpringApplication.java:1342) ~[spring-boot-3.2.0.jar:3.2.0] + at org.springframework.boot.SpringApplication.run(SpringApplication.java:1331) ~[spring-boot-3.2.0.jar:3.2.0] + at cn.bunny.service.ServiceApplication.main(ServiceApplication.java:13) ~[classes/:na] + +10:30:14:630 INFO 23272 --- [bunny-service] [main] cn.bunny.service.ServiceApplication : Starting ServiceApplication using Java 21.0.2 with PID 23272 (G:\web项目\Bunny-Cli\Java\java-template\service\target\classes started by 13199 in G:\web项目\Bunny-Cli\Java\java-template) +10:30:14:631 INFO 23272 --- [bunny-service] [main] cn.bunny.service.ServiceApplication : The following 1 profile is active: "dev" +10:30:15:035 INFO 23272 --- [bunny-service] [main] .s.d.r.c.RepositoryConfigurationDelegate : Multiple Spring Data modules found, entering strict repository configuration mode +10:30:15:037 INFO 23272 --- [bunny-service] [main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data Redis repositories in DEFAULT mode. +10:30:15:057 INFO 23272 --- [bunny-service] [main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 9 ms. Found 0 Redis repository interfaces. +10:30:15:129 WARN 23272 --- [bunny-service] [main] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: java.lang.IllegalArgumentException: Invalid value type for attribute 'factoryBeanObjectType': java.lang.String +10:30:15:134 INFO 23272 --- [bunny-service] [main] .s.b.a.l.ConditionEvaluationReportLogger : + +Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled. +10:30:15:146 ERROR 23272 --- [bunny-service] [main] o.s.boot.SpringApplication : Application run failed + +java.lang.IllegalArgumentException: Invalid value type for attribute 'factoryBeanObjectType': java.lang.String + at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.getTypeForFactoryBeanFromAttributes(FactoryBeanRegistrySupport.java:86) ~[spring-beans-6.1.6.jar:6.1.6] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.getTypeForFactoryBean(AbstractAutowireCapableBeanFactory.java:837) ~[spring-beans-6.1.6.jar:6.1.6] + at org.springframework.beans.factory.support.AbstractBeanFactory.isTypeMatch(AbstractBeanFactory.java:652) ~[spring-beans-6.1.6.jar:6.1.6] + at org.springframework.beans.factory.support.DefaultListableBeanFactory.doGetBeanNamesForType(DefaultListableBeanFactory.java:575) ~[spring-beans-6.1.6.jar:6.1.6] + at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanNamesForType(DefaultListableBeanFactory.java:534) ~[spring-beans-6.1.6.jar:6.1.6] + at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:138) ~[spring-context-6.1.6.jar:6.1.6] + at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:788) ~[spring-context-6.1.6.jar:6.1.6] + at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:606) ~[spring-context-6.1.6.jar:6.1.6] + at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) ~[spring-boot-3.2.5.jar:3.2.5] + at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:754) ~[spring-boot-3.2.5.jar:3.2.5] + at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:456) ~[spring-boot-3.2.5.jar:3.2.5] + at org.springframework.boot.SpringApplication.run(SpringApplication.java:334) ~[spring-boot-3.2.5.jar:3.2.5] + at org.springframework.boot.SpringApplication.run(SpringApplication.java:1354) ~[spring-boot-3.2.5.jar:3.2.5] + at org.springframework.boot.SpringApplication.run(SpringApplication.java:1343) ~[spring-boot-3.2.5.jar:3.2.5] + at cn.bunny.service.ServiceApplication.main(ServiceApplication.java:13) ~[classes/:na] + +10:31:00:865 INFO 18296 --- [bunny-service] [main] cn.bunny.service.ServiceApplication : Starting ServiceApplication using Java 21.0.2 with PID 18296 (G:\web项目\Bunny-Cli\Java\java-template\service\target\classes started by 13199 in G:\web项目\Bunny-Cli\Java\java-template) +10:31:00:865 INFO 18296 --- [bunny-service] [main] cn.bunny.service.ServiceApplication : The following 1 profile is active: "dev" +10:31:01:191 INFO 18296 --- [bunny-service] [main] .s.d.r.c.RepositoryConfigurationDelegate : Multiple Spring Data modules found, entering strict repository configuration mode +10:31:01:192 INFO 18296 --- [bunny-service] [main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data Redis repositories in DEFAULT mode. +10:31:01:207 INFO 18296 --- [bunny-service] [main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 7 ms. Found 0 Redis repository interfaces. +10:31:01:269 WARN 18296 --- [bunny-service] [main] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: java.lang.IllegalArgumentException: Invalid value type for attribute 'factoryBeanObjectType': java.lang.String +10:31:01:273 INFO 18296 --- [bunny-service] [main] .s.b.a.l.ConditionEvaluationReportLogger : + +Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled. +10:31:01:282 ERROR 18296 --- [bunny-service] [main] o.s.boot.SpringApplication : Application run failed + +java.lang.IllegalArgumentException: Invalid value type for attribute 'factoryBeanObjectType': java.lang.String + at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.getTypeForFactoryBeanFromAttributes(FactoryBeanRegistrySupport.java:86) ~[spring-beans-6.1.6.jar:6.1.6] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.getTypeForFactoryBean(AbstractAutowireCapableBeanFactory.java:837) ~[spring-beans-6.1.6.jar:6.1.6] + at org.springframework.beans.factory.support.AbstractBeanFactory.isTypeMatch(AbstractBeanFactory.java:652) ~[spring-beans-6.1.6.jar:6.1.6] + at org.springframework.beans.factory.support.DefaultListableBeanFactory.doGetBeanNamesForType(DefaultListableBeanFactory.java:575) ~[spring-beans-6.1.6.jar:6.1.6] + at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanNamesForType(DefaultListableBeanFactory.java:534) ~[spring-beans-6.1.6.jar:6.1.6] + at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:138) ~[spring-context-6.1.6.jar:6.1.6] + at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:788) ~[spring-context-6.1.6.jar:6.1.6] + at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:606) ~[spring-context-6.1.6.jar:6.1.6] + at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) ~[spring-boot-3.2.5.jar:3.2.5] + at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:754) ~[spring-boot-3.2.5.jar:3.2.5] + at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:456) ~[spring-boot-3.2.5.jar:3.2.5] + at org.springframework.boot.SpringApplication.run(SpringApplication.java:334) ~[spring-boot-3.2.5.jar:3.2.5] + at org.springframework.boot.SpringApplication.run(SpringApplication.java:1354) ~[spring-boot-3.2.5.jar:3.2.5] + at org.springframework.boot.SpringApplication.run(SpringApplication.java:1343) ~[spring-boot-3.2.5.jar:3.2.5] + at cn.bunny.service.ServiceApplication.main(ServiceApplication.java:13) ~[classes/:na] + +10:33:54:613 INFO 20704 --- [bunny-service] [main] cn.bunny.service.ServiceApplication : Starting ServiceApplication using Java 21.0.2 with PID 20704 (G:\web项目\Bunny-Cli\Java\java-template\service\target\classes started by 13199 in G:\web项目\Bunny-Cli\Java\java-template) +10:33:54:615 INFO 20704 --- [bunny-service] [main] cn.bunny.service.ServiceApplication : The following 1 profile is active: "dev" +10:33:54:976 INFO 20704 --- [bunny-service] [main] .s.d.r.c.RepositoryConfigurationDelegate : Multiple Spring Data modules found, entering strict repository configuration mode +10:33:54:977 INFO 20704 --- [bunny-service] [main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data Redis repositories in DEFAULT mode. +10:33:54:992 INFO 20704 --- [bunny-service] [main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 7 ms. Found 0 Redis repository interfaces. +10:33:55:433 INFO 20704 --- [bunny-service] [main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port 8800 (http) +10:33:55:441 INFO 20704 --- [bunny-service] [main] o.apache.catalina.core.StandardService : Starting service [Tomcat] +10:33:55:441 INFO 20704 --- [bunny-service] [main] o.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/10.1.20] +10:33:55:485 INFO 20704 --- [bunny-service] [main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext +10:33:55:485 INFO 20704 --- [bunny-service] [main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 847 ms +10:34:01:041 INFO 20704 --- [bunny-service] [main] c.b.c.service.config.MybatisPlusConfig : MybatisPlusInterceptor===>注入Mybatis-Plus配置... +10:34:01:399 INFO 20704 --- [bunny-service] [main] c.b.c.service.config.RedisConfiguration : RedisConfiguration===>使用StringRedisSerializer序列化为字符串 +10:34:01:452 INFO 20704 --- [bunny-service] [main] c.b.c.service.config.RedisConfiguration : RedisConfiguration===>解决cache(@Cacheable)把数据缓存到redis中的value是乱码问题 +10:34:01:455 INFO 20704 --- [bunny-service] [main] c.b.c.service.config.RedisConfiguration : RedisConfiguration===>指定的日期模式 +10:34:03:213 INFO 20704 --- [bunny-service] [main] c.b.c.s.properties.MinioProperties : 注册MinioClient... +10:34:03:617 WARN 20704 --- [bunny-service] [main] .s.s.UserDetailsServiceAutoConfiguration : + +Using generated security password: 68d1aef6-1989-4d21-b0ac-14061cdc8845 This generated password is for development use only. Your security configuration must be updated before running your application in production. -22:13:49:116 INFO 6108 --- [bunny-service] [main] o.s.s.web.DefaultSecurityFilterChain : Will secure any request with [org.springframework.security.web.session.DisableEncodeUrlFilter@2acb1264, org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@30a01dd8, org.springframework.security.web.context.SecurityContextHolderFilter@1c8e8fed, org.springframework.security.web.header.HeaderWriterFilter@17df689e, org.springframework.web.filter.CorsFilter@1f68e4e8, org.springframework.security.web.csrf.CsrfFilter@78f5cbc5, org.springframework.security.web.authentication.logout.LogoutFilter@3cad24ae, org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter@2f6e92ca, org.springframework.security.web.authentication.ui.DefaultLoginPageGeneratingFilter@1e8bccfb, org.springframework.security.web.authentication.ui.DefaultLogoutPageGeneratingFilter@47b4ac83, org.springframework.security.web.authentication.www.BasicAuthenticationFilter@56299b0e, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@713e7d9a, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@681d704e, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@351ede23, org.springframework.security.web.access.ExceptionTranslationFilter@5d58dc61, org.springframework.security.web.access.intercept.AuthorizationFilter@6b7c4734] -22:13:49:145 INFO 6108 --- [bunny-service] [main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port 8800 (http) with context path '' -22:13:49:149 INFO 6108 --- [bunny-service] [main] cn.bunny.service.ServiceApplication : Started ServiceApplication in 1.229 seconds (process running for 1.545) +10:34:03:689 INFO 20704 --- [bunny-service] [main] o.s.s.web.DefaultSecurityFilterChain : Will secure any request with [org.springframework.security.web.session.DisableEncodeUrlFilter@70273633, org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@1f641fb7, org.springframework.security.web.context.SecurityContextHolderFilter@131c5bd, org.springframework.security.web.header.HeaderWriterFilter@4a7e469d, org.springframework.web.filter.CorsFilter@69dc7b24, org.springframework.security.web.csrf.CsrfFilter@1b3a95d9, org.springframework.security.web.authentication.logout.LogoutFilter@642d34f1, org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter@69d61a6f, org.springframework.security.web.authentication.ui.DefaultLoginPageGeneratingFilter@7272914b, org.springframework.security.web.authentication.ui.DefaultLogoutPageGeneratingFilter@297454f7, org.springframework.security.web.authentication.www.BasicAuthenticationFilter@4db4431b, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@2627335c, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@5470753a, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@602b7944, org.springframework.security.web.access.ExceptionTranslationFilter@129e45eb, org.springframework.security.web.access.intercept.AuthorizationFilter@408d12fc] +10:34:03:728 INFO 20704 --- [bunny-service] [main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port 8800 (http) with context path '' +10:34:03:733 INFO 20704 --- [bunny-service] [main] cn.bunny.service.ServiceApplication : Started ServiceApplication in 9.361 seconds (process running for 14.509) +16:49:14:454 INFO 20792 --- [bunny-service] [main] cn.bunny.service.ServiceApplication : Starting ServiceApplication using Java 21.0.2 with PID 20792 (G:\web项目\Bunny-Cli\Java\java-template\service\target\classes started by 13199 in G:\web项目\Bunny-Cli\Java\java-template) +16:49:14:455 INFO 20792 --- [bunny-service] [main] cn.bunny.service.ServiceApplication : The following 1 profile is active: "dev" +16:49:14:790 INFO 20792 --- [bunny-service] [main] .s.d.r.c.RepositoryConfigurationDelegate : Multiple Spring Data modules found, entering strict repository configuration mode +16:49:14:791 INFO 20792 --- [bunny-service] [main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data Redis repositories in DEFAULT mode. +16:49:14:806 INFO 20792 --- [bunny-service] [main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 7 ms. Found 0 Redis repository interfaces. +16:49:14:864 WARN 20792 --- [bunny-service] [main] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: java.lang.IllegalArgumentException: Invalid value type for attribute 'factoryBeanObjectType': java.lang.String +16:49:14:869 INFO 20792 --- [bunny-service] [main] .s.b.a.l.ConditionEvaluationReportLogger : + +Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled. +16:49:14:878 ERROR 20792 --- [bunny-service] [main] o.s.boot.SpringApplication : Application run failed + +java.lang.IllegalArgumentException: Invalid value type for attribute 'factoryBeanObjectType': java.lang.String + at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.getTypeForFactoryBeanFromAttributes(FactoryBeanRegistrySupport.java:86) ~[spring-beans-6.1.6.jar:6.1.6] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.getTypeForFactoryBean(AbstractAutowireCapableBeanFactory.java:837) ~[spring-beans-6.1.6.jar:6.1.6] + at org.springframework.beans.factory.support.AbstractBeanFactory.isTypeMatch(AbstractBeanFactory.java:652) ~[spring-beans-6.1.6.jar:6.1.6] + at org.springframework.beans.factory.support.DefaultListableBeanFactory.doGetBeanNamesForType(DefaultListableBeanFactory.java:575) ~[spring-beans-6.1.6.jar:6.1.6] + at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanNamesForType(DefaultListableBeanFactory.java:534) ~[spring-beans-6.1.6.jar:6.1.6] + at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:138) ~[spring-context-6.1.6.jar:6.1.6] + at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:788) ~[spring-context-6.1.6.jar:6.1.6] + at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:606) ~[spring-context-6.1.6.jar:6.1.6] + at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) ~[spring-boot-3.2.5.jar:3.2.5] + at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:754) ~[spring-boot-3.2.5.jar:3.2.5] + at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:456) ~[spring-boot-3.2.5.jar:3.2.5] + at org.springframework.boot.SpringApplication.run(SpringApplication.java:334) ~[spring-boot-3.2.5.jar:3.2.5] + at org.springframework.boot.SpringApplication.run(SpringApplication.java:1354) ~[spring-boot-3.2.5.jar:3.2.5] + at org.springframework.boot.SpringApplication.run(SpringApplication.java:1343) ~[spring-boot-3.2.5.jar:3.2.5] + at cn.bunny.service.ServiceApplication.main(ServiceApplication.java:13) ~[classes/:na] + +16:51:53:068 INFO 22660 --- [bunny-service] [main] cn.bunny.service.ServiceApplication : Starting ServiceApplication using Java 21.0.2 with PID 22660 (G:\web项目\Bunny-Cli\Java\java-template\service\target\classes started by 13199 in G:\web项目\Bunny-Cli\Java\java-template) +16:51:53:070 INFO 22660 --- [bunny-service] [main] cn.bunny.service.ServiceApplication : The following 1 profile is active: "dev" +16:51:53:410 INFO 22660 --- [bunny-service] [main] .s.d.r.c.RepositoryConfigurationDelegate : Multiple Spring Data modules found, entering strict repository configuration mode +16:51:53:411 INFO 22660 --- [bunny-service] [main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data Redis repositories in DEFAULT mode. +16:51:53:425 INFO 22660 --- [bunny-service] [main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 6 ms. Found 0 Redis repository interfaces. +16:51:53:510 WARN 22660 --- [bunny-service] [main] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: java.lang.IllegalArgumentException: Invalid value type for attribute 'factoryBeanObjectType': java.lang.String +16:51:53:516 INFO 22660 --- [bunny-service] [main] .s.b.a.l.ConditionEvaluationReportLogger : + +Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled. +16:51:53:526 ERROR 22660 --- [bunny-service] [main] o.s.boot.SpringApplication : Application run failed + +java.lang.IllegalArgumentException: Invalid value type for attribute 'factoryBeanObjectType': java.lang.String + at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.getTypeForFactoryBeanFromAttributes(FactoryBeanRegistrySupport.java:86) ~[spring-beans-6.1.6.jar:6.1.6] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.getTypeForFactoryBean(AbstractAutowireCapableBeanFactory.java:837) ~[spring-beans-6.1.6.jar:6.1.6] + at org.springframework.beans.factory.support.AbstractBeanFactory.isTypeMatch(AbstractBeanFactory.java:652) ~[spring-beans-6.1.6.jar:6.1.6] + at org.springframework.beans.factory.support.DefaultListableBeanFactory.doGetBeanNamesForType(DefaultListableBeanFactory.java:575) ~[spring-beans-6.1.6.jar:6.1.6] + at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanNamesForType(DefaultListableBeanFactory.java:534) ~[spring-beans-6.1.6.jar:6.1.6] + at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:138) ~[spring-context-6.1.6.jar:6.1.6] + at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:788) ~[spring-context-6.1.6.jar:6.1.6] + at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:606) ~[spring-context-6.1.6.jar:6.1.6] + at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) ~[spring-boot-3.2.5.jar:3.2.5] + at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:754) ~[spring-boot-3.2.5.jar:3.2.5] + at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:456) ~[spring-boot-3.2.5.jar:3.2.5] + at org.springframework.boot.SpringApplication.run(SpringApplication.java:334) ~[spring-boot-3.2.5.jar:3.2.5] + at org.springframework.boot.SpringApplication.run(SpringApplication.java:1354) ~[spring-boot-3.2.5.jar:3.2.5] + at org.springframework.boot.SpringApplication.run(SpringApplication.java:1343) ~[spring-boot-3.2.5.jar:3.2.5] + at cn.bunny.service.ServiceApplication.main(ServiceApplication.java:13) ~[classes/:na] + +16:52:41:386 INFO 11552 --- [bunny-service] [main] cn.bunny.service.ServiceApplication : Starting ServiceApplication using Java 21.0.2 with PID 11552 (G:\web项目\Bunny-Cli\Java\java-template\service\target\classes started by 13199 in G:\web项目\Bunny-Cli\Java\java-template) +16:52:41:387 INFO 11552 --- [bunny-service] [main] cn.bunny.service.ServiceApplication : The following 1 profile is active: "dev" +16:52:41:740 INFO 11552 --- [bunny-service] [main] .s.d.r.c.RepositoryConfigurationDelegate : Multiple Spring Data modules found, entering strict repository configuration mode +16:52:41:741 INFO 11552 --- [bunny-service] [main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data Redis repositories in DEFAULT mode. +16:52:41:756 INFO 11552 --- [bunny-service] [main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 6 ms. Found 0 Redis repository interfaces. +16:52:41:817 WARN 11552 --- [bunny-service] [main] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: java.lang.IllegalArgumentException: Invalid value type for attribute 'factoryBeanObjectType': java.lang.String +16:52:41:822 INFO 11552 --- [bunny-service] [main] .s.b.a.l.ConditionEvaluationReportLogger : + +Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled. +16:52:41:833 ERROR 11552 --- [bunny-service] [main] o.s.boot.SpringApplication : Application run failed + +java.lang.IllegalArgumentException: Invalid value type for attribute 'factoryBeanObjectType': java.lang.String + at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.getTypeForFactoryBeanFromAttributes(FactoryBeanRegistrySupport.java:86) ~[spring-beans-6.1.6.jar:6.1.6] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.getTypeForFactoryBean(AbstractAutowireCapableBeanFactory.java:837) ~[spring-beans-6.1.6.jar:6.1.6] + at org.springframework.beans.factory.support.AbstractBeanFactory.isTypeMatch(AbstractBeanFactory.java:652) ~[spring-beans-6.1.6.jar:6.1.6] + at org.springframework.beans.factory.support.DefaultListableBeanFactory.doGetBeanNamesForType(DefaultListableBeanFactory.java:575) ~[spring-beans-6.1.6.jar:6.1.6] + at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanNamesForType(DefaultListableBeanFactory.java:534) ~[spring-beans-6.1.6.jar:6.1.6] + at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:138) ~[spring-context-6.1.6.jar:6.1.6] + at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:788) ~[spring-context-6.1.6.jar:6.1.6] + at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:606) ~[spring-context-6.1.6.jar:6.1.6] + at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) ~[spring-boot-3.2.5.jar:3.2.5] + at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:754) ~[spring-boot-3.2.5.jar:3.2.5] + at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:456) ~[spring-boot-3.2.5.jar:3.2.5] + at org.springframework.boot.SpringApplication.run(SpringApplication.java:334) ~[spring-boot-3.2.5.jar:3.2.5] + at org.springframework.boot.SpringApplication.run(SpringApplication.java:1354) ~[spring-boot-3.2.5.jar:3.2.5] + at org.springframework.boot.SpringApplication.run(SpringApplication.java:1343) ~[spring-boot-3.2.5.jar:3.2.5] + at cn.bunny.service.ServiceApplication.main(ServiceApplication.java:13) ~[classes/:na] + +16:52:51:515 INFO 21396 --- [bunny-service] [main] cn.bunny.service.ServiceApplication : Starting ServiceApplication using Java 21.0.2 with PID 21396 (G:\web项目\Bunny-Cli\Java\java-template\service\target\classes started by 13199 in G:\web项目\Bunny-Cli\Java\java-template) +16:52:51:516 INFO 21396 --- [bunny-service] [main] cn.bunny.service.ServiceApplication : The following 1 profile is active: "dev" +16:52:51:849 INFO 21396 --- [bunny-service] [main] .s.d.r.c.RepositoryConfigurationDelegate : Multiple Spring Data modules found, entering strict repository configuration mode +16:52:51:851 INFO 21396 --- [bunny-service] [main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data Redis repositories in DEFAULT mode. +16:52:51:864 INFO 21396 --- [bunny-service] [main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 6 ms. Found 0 Redis repository interfaces. +16:52:51:923 WARN 21396 --- [bunny-service] [main] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: java.lang.IllegalArgumentException: Invalid value type for attribute 'factoryBeanObjectType': java.lang.String +16:52:51:928 INFO 21396 --- [bunny-service] [main] .s.b.a.l.ConditionEvaluationReportLogger : + +Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled. +16:52:51:939 ERROR 21396 --- [bunny-service] [main] o.s.boot.SpringApplication : Application run failed + +java.lang.IllegalArgumentException: Invalid value type for attribute 'factoryBeanObjectType': java.lang.String + at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.getTypeForFactoryBeanFromAttributes(FactoryBeanRegistrySupport.java:86) ~[spring-beans-6.1.6.jar:6.1.6] + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.getTypeForFactoryBean(AbstractAutowireCapableBeanFactory.java:837) ~[spring-beans-6.1.6.jar:6.1.6] + at org.springframework.beans.factory.support.AbstractBeanFactory.isTypeMatch(AbstractBeanFactory.java:652) ~[spring-beans-6.1.6.jar:6.1.6] + at org.springframework.beans.factory.support.DefaultListableBeanFactory.doGetBeanNamesForType(DefaultListableBeanFactory.java:575) ~[spring-beans-6.1.6.jar:6.1.6] + at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanNamesForType(DefaultListableBeanFactory.java:534) ~[spring-beans-6.1.6.jar:6.1.6] + at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:138) ~[spring-context-6.1.6.jar:6.1.6] + at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:788) ~[spring-context-6.1.6.jar:6.1.6] + at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:606) ~[spring-context-6.1.6.jar:6.1.6] + at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) ~[spring-boot-3.2.5.jar:3.2.5] + at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:754) ~[spring-boot-3.2.5.jar:3.2.5] + at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:456) ~[spring-boot-3.2.5.jar:3.2.5] + at org.springframework.boot.SpringApplication.run(SpringApplication.java:334) ~[spring-boot-3.2.5.jar:3.2.5] + at org.springframework.boot.SpringApplication.run(SpringApplication.java:1354) ~[spring-boot-3.2.5.jar:3.2.5] + at org.springframework.boot.SpringApplication.run(SpringApplication.java:1343) ~[spring-boot-3.2.5.jar:3.2.5] + at cn.bunny.service.ServiceApplication.main(ServiceApplication.java:13) ~[classes/:na] + +16:54:31:130 INFO 18584 --- [bunny-service] [main] cn.bunny.service.ServiceApplication : Starting ServiceApplication using Java 21.0.2 with PID 18584 (G:\web项目\Bunny-Cli\Java\java-template\service\target\classes started by 13199 in G:\web项目\Bunny-Cli\Java\java-template) +16:54:31:131 INFO 18584 --- [bunny-service] [main] cn.bunny.service.ServiceApplication : The following 1 profile is active: "dev" +16:54:31:464 INFO 18584 --- [bunny-service] [main] .s.d.r.c.RepositoryConfigurationDelegate : Multiple Spring Data modules found, entering strict repository configuration mode +16:54:31:465 INFO 18584 --- [bunny-service] [main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data Redis repositories in DEFAULT mode. +16:54:31:479 INFO 18584 --- [bunny-service] [main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 6 ms. Found 0 Redis repository interfaces. +16:54:31:810 INFO 18584 --- [bunny-service] [main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port 8800 (http) +16:54:31:816 INFO 18584 --- [bunny-service] [main] o.apache.catalina.core.StandardService : Starting service [Tomcat] +16:54:31:816 INFO 18584 --- [bunny-service] [main] o.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/10.1.20] +16:54:31:852 INFO 18584 --- [bunny-service] [main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext +16:54:31:852 INFO 18584 --- [bunny-service] [main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 699 ms +16:54:31:902 INFO 18584 --- [bunny-service] [main] c.b.c.service.config.MybatisPlusConfig : MybatisPlusInterceptor===>注入Mybatis-Plus配置... +16:54:32:160 INFO 18584 --- [bunny-service] [main] c.b.c.service.config.RedisConfiguration : RedisConfiguration===>使用StringRedisSerializer序列化为字符串 +16:54:32:197 INFO 18584 --- [bunny-service] [main] c.b.c.service.config.RedisConfiguration : RedisConfiguration===>解决cache(@Cacheable)把数据缓存到redis中的value是乱码问题 +16:54:32:200 INFO 18584 --- [bunny-service] [main] c.b.c.service.config.RedisConfiguration : RedisConfiguration===>指定的日期模式 +16:54:32:205 INFO 18584 --- [bunny-service] [main] c.b.c.s.properties.MinioProperties : 注册MinioClient... +16:54:32:520 WARN 18584 --- [bunny-service] [main] .s.s.UserDetailsServiceAutoConfiguration : + +Using generated security password: 39f64e4f-f4d5-4aff-8d24-329a6c758040 + +This generated password is for development use only. Your security configuration must be updated before running your application in production. + +16:54:32:575 INFO 18584 --- [bunny-service] [main] o.s.s.web.DefaultSecurityFilterChain : Will secure any request with [org.springframework.security.web.session.DisableEncodeUrlFilter@39159b14, org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@57ab4b33, org.springframework.security.web.context.SecurityContextHolderFilter@3ebc6d8b, org.springframework.security.web.header.HeaderWriterFilter@1fe7fa16, org.springframework.web.filter.CorsFilter@43b2e7db, org.springframework.security.web.csrf.CsrfFilter@1774c4e2, org.springframework.security.web.authentication.logout.LogoutFilter@6f25ed2b, org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter@31940d6b, org.springframework.security.web.authentication.ui.DefaultLoginPageGeneratingFilter@54ef9698, org.springframework.security.web.authentication.ui.DefaultLogoutPageGeneratingFilter@46d51d5e, org.springframework.security.web.authentication.www.BasicAuthenticationFilter@2ae88712, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@7e7391e8, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@1fa44f66, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@530df3ab, org.springframework.security.web.access.ExceptionTranslationFilter@169d1f92, org.springframework.security.web.access.intercept.AuthorizationFilter@59043741] +16:54:32:608 INFO 18584 --- [bunny-service] [main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port 8800 (http) with context path '' +16:54:32:614 INFO 18584 --- [bunny-service] [main] cn.bunny.service.ServiceApplication : Started ServiceApplication in 1.72 seconds (process running for 2.04) diff --git a/logs/bunny-service/spring.log.2024-05-02.0.gz b/logs/bunny-service/spring.log.2024-05-02.0.gz new file mode 100644 index 0000000000000000000000000000000000000000..9db9300006a6c47053321840947905f95c044f96 GIT binary patch literal 1346 zcmV-I1-<$oiwFP!00000|LvH|ZsRr-hSv>{cOYgH4^Xp`b+N6TbMYWWCJCGrvxu{x zCEDSPED0p#jJxQIbk!H=zE4#2EqX{PiabetNvyWEmLHUIF^cr1_35%|gA7R~q^9Fp8{p}=4$b2GM93lPj z(1j#ivS@@J>5>Z7@GF@R)G)Du8|aqF8+3krm=V-Ic>P;C`0uZO{{8ds{=P;z2w7i^ z=zoTHY1F`pj9(U6T& zt|1O-NJo$*aC}Td$r1>Bk#I$FNF+hyI7mZ~a2Tgi@H3*3q`FZ^&U}e@F)Q-R)2eZF z2H0Ic@O~Ui;2=q&S5}F-M*~o=fMbvVl>G3h+xhL}QnTR_oM{^ChwHM4i5pmSWv-H3 z!Y5Ir8UV~iV}VguNsNqd;iu38L?05LiWzDbB>mLsoi3!#5Y++WT8wN`wxQ zew9Fd^wp<{E+CD3;DNx9LXhed{Ja}vCK(CY?^&tq2vYHB7^*&;4mlM!h)A`6q=(dA z!Xb%9_&8MJgdILg$FPoyP#!vtCNN!q;5(&AP7}2uxSE5rK?-v2LH0_DeM+LU!Ds5r zOX##$p8Y~9#{jw3eU5`j^(vmg=1+umixw5SR-tT71rw56{xeS6?SY7*5|Syn_z`C zv0DN0TCA|5YgVD>DpuGuR`$ZcZQI737hc5u1A1XC&?<%f&b+Y754KhAg%{g2!q#g-KF|%_D)Per15Iu#AsH4.0.0 cn.bunny - java-template + bunny-template 0.0.1-SNAPSHOT @@ -26,6 +26,15 @@ com.alibaba.fastjson2 fastjson2 + + + com.baomidou + mybatis-plus-spring-boot3-starter + + + com.github.xiaoymin + knife4j-spring-boot-starter + org.springframework.boot spring-boot-starter-security diff --git a/model/src/main/java/cn/bunny/entity/base/BaseEntity.java b/model/src/main/java/cn/bunny/entity/base/BaseEntity.java new file mode 100644 index 0000000..cafa523 --- /dev/null +++ b/model/src/main/java/cn/bunny/entity/base/BaseEntity.java @@ -0,0 +1,32 @@ +package cn.bunny.entity.base; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableLogic; +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; +import java.util.HashMap; +import java.util.Map; + +@Data +public class BaseEntity implements Serializable { + + @TableId(type = IdType.AUTO) + private Long id; + + @TableField("create_time") + private Date createTime; + + @TableField("update_time") + private Date updateTime; + + @TableLogic + @TableField("is_deleted") + private Integer isDeleted; + + @TableField(exist = false) + private Map param = new HashMap<>(); +} diff --git a/model/src/main/java/cn/bunny/entity/system/Login.java b/model/src/main/java/cn/bunny/entity/system/Login.java new file mode 100644 index 0000000..140f575 --- /dev/null +++ b/model/src/main/java/cn/bunny/entity/system/Login.java @@ -0,0 +1,14 @@ +package cn.bunny.entity.system; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class Login { + private String token; +} diff --git a/model/src/main/java/cn/bunny/entity/system/RoleByUser.java b/model/src/main/java/cn/bunny/entity/system/RoleByUser.java new file mode 100644 index 0000000..4b1b929 --- /dev/null +++ b/model/src/main/java/cn/bunny/entity/system/RoleByUser.java @@ -0,0 +1,17 @@ +package cn.bunny.entity.system; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class RoleByUser { + private List assginRoleList; + private List allRolesList; +} diff --git a/model/src/main/java/cn/bunny/entity/system/SysDept.java b/model/src/main/java/cn/bunny/entity/system/SysDept.java new file mode 100644 index 0000000..e49bd9e --- /dev/null +++ b/model/src/main/java/cn/bunny/entity/system/SysDept.java @@ -0,0 +1,51 @@ +package cn.bunny.entity.system; + +import cn.bunny.entity.base.BaseEntity; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +@Data +@ApiModel(description = "部门") +@TableName("sys_dept") +public class SysDept extends BaseEntity { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "部门名称") + @TableField("name") + private String name; + + @ApiModelProperty(value = "上级部门id") + @TableField("parent_id") + private Long parentId; + + @ApiModelProperty(value = "树结构") + @TableField("tree_path") + private String treePath; + + @ApiModelProperty(value = "排序") + @TableField("sort_value") + private Integer sortValue; + + @ApiModelProperty(value = "负责人") + @TableField("leader") + private String leader; + + @ApiModelProperty(value = "电话") + @TableField("phone") + private String phone; + + @ApiModelProperty(value = "状态(1正常 0停用)") + @TableField("status") + private Integer status; + + @ApiModelProperty(value = "下级部门") + @TableField(exist = false) + private List children; + +} \ No newline at end of file diff --git a/model/src/main/java/cn/bunny/entity/system/SysLoginLog.java b/model/src/main/java/cn/bunny/entity/system/SysLoginLog.java new file mode 100644 index 0000000..ea2ec20 --- /dev/null +++ b/model/src/main/java/cn/bunny/entity/system/SysLoginLog.java @@ -0,0 +1,39 @@ +package cn.bunny.entity.system; + +import cn.bunny.entity.base.BaseEntity; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +@Data +@ApiModel(description = "SysLoginLog") +@TableName("sys_login_log") +public class SysLoginLog extends BaseEntity { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "用户账号") + @TableField("username") + private String username; + + @ApiModelProperty(value = "登录IP地址") + @TableField("ipaddr") + private String ipaddr; + + @ApiModelProperty(value = "登录状态(0成功 1失败)") + @TableField("status") + private Integer status; + + @ApiModelProperty(value = "提示信息") + @TableField("msg") + private String msg; + + @ApiModelProperty(value = "访问时间") + @TableField("access_time") + private Date accessTime; + +} \ No newline at end of file diff --git a/model/src/main/java/cn/bunny/entity/system/SysMenu.java b/model/src/main/java/cn/bunny/entity/system/SysMenu.java new file mode 100644 index 0000000..04017c3 --- /dev/null +++ b/model/src/main/java/cn/bunny/entity/system/SysMenu.java @@ -0,0 +1,62 @@ +package cn.bunny.entity.system; + +import cn.bunny.entity.base.BaseEntity; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +@Data +@ApiModel(description = "菜单") +@TableName("sys_menu") +public class SysMenu extends BaseEntity { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "所属上级") + @TableField("parent_id") + private Long parentId; + + @ApiModelProperty(value = "名称") + @TableField("name") + private String name; + + @ApiModelProperty(value = "类型(1:菜单,2:按钮)") + @TableField("type") + private Integer type; + + @ApiModelProperty(value = "路由地址") + @TableField("path") + private String path; + + @ApiModelProperty(value = "组件路径") + @TableField("component") + private String component; + + @ApiModelProperty(value = "权限标识") + @TableField("perms") + private String perms; + + @ApiModelProperty(value = "图标") + @TableField("icon") + private String icon; + + @ApiModelProperty(value = "排序") + @TableField("sort_value") + private Integer sortValue; + + @ApiModelProperty(value = "状态(0:禁止,1:正常)") + @TableField("status") + private Integer status; + + // 下级列表 + @TableField(exist = false) + private List children; + // 是否选中 + @TableField(exist = false) + private boolean isSelect; +} + diff --git a/model/src/main/java/cn/bunny/entity/system/SysOperLog.java b/model/src/main/java/cn/bunny/entity/system/SysOperLog.java new file mode 100644 index 0000000..2926a9e --- /dev/null +++ b/model/src/main/java/cn/bunny/entity/system/SysOperLog.java @@ -0,0 +1,75 @@ +package cn.bunny.entity.system; + +import cn.bunny.entity.base.BaseEntity; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +@Data +@ApiModel(description = "SysOperLog") +@TableName("sys_oper_log") +public class SysOperLog extends BaseEntity { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "模块标题") + @TableField("title") + private String title; + + @ApiModelProperty(value = "业务类型(0其它 1新增 2修改 3删除)") + @TableField("business_type") + private String businessType; + + @ApiModelProperty(value = "方法名称") + @TableField("method") + private String method; + + @ApiModelProperty(value = "请求方式") + @TableField("request_method") + private String requestMethod; + + @ApiModelProperty(value = "操作类别(0其它 1后台用户 2手机端用户)") + @TableField("operator_type") + private String operatorType; + + @ApiModelProperty(value = "操作人员") + @TableField("oper_name") + private String operName; + + @ApiModelProperty(value = "部门名称") + @TableField("dept_name") + private String deptName; + + @ApiModelProperty(value = "请求URL") + @TableField("oper_url") + private String operUrl; + + @ApiModelProperty(value = "主机地址") + @TableField("oper_ip") + private String operIp; + + @ApiModelProperty(value = "请求参数") + @TableField("oper_param") + private String operParam; + + @ApiModelProperty(value = "返回参数") + @TableField("json_result") + private String jsonResult; + + @ApiModelProperty(value = "操作状态(0正常 1异常)") + @TableField("status") + private Integer status; + + @ApiModelProperty(value = "错误消息") + @TableField("error_msg") + private String errorMsg; + + @ApiModelProperty(value = "操作时间") + @TableField("oper_time") + private Date operTime; + +} \ No newline at end of file diff --git a/model/src/main/java/cn/bunny/entity/system/SysPost.java b/model/src/main/java/cn/bunny/entity/system/SysPost.java new file mode 100644 index 0000000..6712995 --- /dev/null +++ b/model/src/main/java/cn/bunny/entity/system/SysPost.java @@ -0,0 +1,33 @@ +package cn.bunny.entity.system; + +import cn.bunny.entity.base.BaseEntity; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel(description = "岗位") +@TableName("sys_post") +public class SysPost extends BaseEntity { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "岗位编码") + @TableField("post_code") + private String postCode; + + @ApiModelProperty(value = "岗位名称") + @TableField("name") + private String name; + + @ApiModelProperty(value = "显示顺序") + @TableField("description") + private String description; + + @ApiModelProperty(value = "状态(1正常 0停用)") + @TableField("status") + private Integer status; + +} \ No newline at end of file diff --git a/model/src/main/java/cn/bunny/entity/system/SysRole.java b/model/src/main/java/cn/bunny/entity/system/SysRole.java new file mode 100644 index 0000000..54446c4 --- /dev/null +++ b/model/src/main/java/cn/bunny/entity/system/SysRole.java @@ -0,0 +1,32 @@ +package cn.bunny.entity.system; + +import cn.bunny.entity.base.BaseEntity; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + + +@Data +@ApiModel(description = "角色") +@TableName("sys_role") +public class SysRole extends BaseEntity { + + private static final long serialVersionUID = 1L; + + //@NotBlank(message = "角色名称不能为空") + @ApiModelProperty(value = "角色名称") + @TableField("role_name") + private String roleName; + + @ApiModelProperty(value = "角色编码") + @TableField("role_code") + private String roleCode; + + @ApiModelProperty(value = "描述") + @TableField("description") + private String description; + +} + diff --git a/model/src/main/java/cn/bunny/entity/system/SysRoleMenu.java b/model/src/main/java/cn/bunny/entity/system/SysRoleMenu.java new file mode 100644 index 0000000..c0a8ead --- /dev/null +++ b/model/src/main/java/cn/bunny/entity/system/SysRoleMenu.java @@ -0,0 +1,26 @@ +package cn.bunny.entity.system; + +import cn.bunny.entity.base.BaseEntity; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel(description = "角色菜单") +@TableName("sys_role_menu") +public class SysRoleMenu extends BaseEntity { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "角色id") + @TableField("role_id") + private Long roleId; + + @ApiModelProperty(value = "菜单id") + @TableField("menu_id") + private Long menuId; + +} + diff --git a/model/src/main/java/cn/bunny/entity/system/SysUser.java b/model/src/main/java/cn/bunny/entity/system/SysUser.java new file mode 100644 index 0000000..ef89588 --- /dev/null +++ b/model/src/main/java/cn/bunny/entity/system/SysUser.java @@ -0,0 +1,68 @@ +package cn.bunny.entity.system; + +import cn.bunny.entity.base.BaseEntity; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +@Data +@ApiModel(description = "用户") +@TableName("sys_user") +public class SysUser extends BaseEntity { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "用户名") + @TableField("username") + private String username; + + @ApiModelProperty(value = "密码") + @TableField("password") + private String password; + + @ApiModelProperty(value = "姓名") + @TableField("name") + private String name; + + @ApiModelProperty(value = "手机") + @TableField("phone") + private String phone; + + @ApiModelProperty(value = "头像地址") + @TableField("head_url") + private String headUrl; + + @ApiModelProperty(value = "部门id") + @TableField("dept_id") + private Long deptId; + + @ApiModelProperty(value = "岗位id") + @TableField("post_id") + private Long postId; + + @ApiModelProperty(value = "描述") + @TableField("description") + private String description; + + @ApiModelProperty(value = "openId") + @TableField("open_id") + private String openId; + + @ApiModelProperty(value = "状态(1:正常 0:停用)") + @TableField("status") + private Integer status; + + @TableField(exist = false) + private List roleList; + // 岗位 + @TableField(exist = false) + private String postName; + // 部门 + @TableField(exist = false) + private String deptName; +} + diff --git a/model/src/main/java/cn/bunny/entity/system/SysUserRole.java b/model/src/main/java/cn/bunny/entity/system/SysUserRole.java new file mode 100644 index 0000000..5b646e7 --- /dev/null +++ b/model/src/main/java/cn/bunny/entity/system/SysUserRole.java @@ -0,0 +1,25 @@ +package cn.bunny.entity.system; + +import cn.bunny.entity.base.BaseEntity; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel(description = "用户角色") +@TableName("sys_user_role") +public class SysUserRole extends BaseEntity { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "角色id") + @TableField("role_id") + private Long roleId; + + @ApiModelProperty(value = "用户id") + @TableField("user_id") + private Long userId; +} + diff --git a/model/src/main/java/cn/bunny/entity/system/SysUserinfo.java b/model/src/main/java/cn/bunny/entity/system/SysUserinfo.java new file mode 100644 index 0000000..731524f --- /dev/null +++ b/model/src/main/java/cn/bunny/entity/system/SysUserinfo.java @@ -0,0 +1,22 @@ +package cn.bunny.entity.system; + +import cn.bunny.vo.system.RouterVo; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.HashSet; +import java.util.List; + +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class SysUserinfo { + private HashSet roles; + private String name; + private String avatar; + private List buttons; + private List routers; +} diff --git a/model/src/main/java/cn/bunny/enums/ResultCodeEnum.java b/model/src/main/java/cn/bunny/enums/ResultCodeEnum.java new file mode 100644 index 0000000..5071af7 --- /dev/null +++ b/model/src/main/java/cn/bunny/enums/ResultCodeEnum.java @@ -0,0 +1,47 @@ +package cn.bunny.enums; + +import lombok.Getter; + +/** + * 统一返回结果状态信息类 + */ +@Getter +public enum ResultCodeEnum { + + SUCCESS(200, "操作成功"), + FAIL(201, "失败"), + SERVICE_ERROR(2012, "服务异常"), + DATA_ERROR(204, "数据异常"), + ILLEGAL_REQUEST(205, "非法请求"), + REPEAT_SUBMIT(206, "重复提交"), + + LOGIN_AUTH(208, "未登陆"), + PERMISSION(209, "没有权限"), + + ORDER_PRICE_ERROR(210, "订单商品价格变化"), + ORDER_STOCK_FALL(204, "订单库存锁定失败"), + CREATE_ORDER_FAIL(210, "创建订单失败"), + + COUPON_GET(220, "优惠券已经领取"), + COUPON_LIMIT_GET(221, "优惠券已发放完毕"), + + URL_ENCODE_ERROR(216, "URL编码失败"), + ILLEGAL_CALLBACK_REQUEST_ERROR(217, "非法回调请求"), + FETCH_ACCESSTOKEN_FAILD(218, "获取accessToken失败"), + FETCH_USERINFO_ERROR(219, "获取用户信息失败"), + + + SKU_LIMIT_ERROR(230, "购买个数不能大于限购个数"), + REGION_OPEN(240, "该区域已开通"), + REGION_NO_OPEN(240, "该区域未开通"), + ; + + private final Integer code; + + private final String message; + + ResultCodeEnum(Integer code, String message) { + this.code = code; + this.message = message; + } +} \ No newline at end of file diff --git a/model/src/main/java/cn/bunny/vo/process/ApprovalVo.java b/model/src/main/java/cn/bunny/vo/process/ApprovalVo.java new file mode 100644 index 0000000..3002e3d --- /dev/null +++ b/model/src/main/java/cn/bunny/vo/process/ApprovalVo.java @@ -0,0 +1,18 @@ +package cn.bunny.vo.process; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class ApprovalVo { + + private Long processId; + + private String taskId; + + @ApiModelProperty(value = "状态") + private Integer status; + + @ApiModelProperty(value = "审批描述") + private String description; +} diff --git a/model/src/main/java/cn/bunny/vo/process/ProcessFormVo.java b/model/src/main/java/cn/bunny/vo/process/ProcessFormVo.java new file mode 100644 index 0000000..1d1f2da --- /dev/null +++ b/model/src/main/java/cn/bunny/vo/process/ProcessFormVo.java @@ -0,0 +1,20 @@ +package cn.bunny.vo.process; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel(description = "流程表单") +public class ProcessFormVo { + + @ApiModelProperty(value = "审批模板id") + private Long processTemplateId; + + @ApiModelProperty(value = "审批类型id") + private Long processTypeId; + + @ApiModelProperty(value = "表单值") + private String formValues; + +} \ No newline at end of file diff --git a/model/src/main/java/cn/bunny/vo/process/ProcessQueryVo.java b/model/src/main/java/cn/bunny/vo/process/ProcessQueryVo.java new file mode 100644 index 0000000..4e4f65f --- /dev/null +++ b/model/src/main/java/cn/bunny/vo/process/ProcessQueryVo.java @@ -0,0 +1,31 @@ +package cn.bunny.vo.process; + +import com.baomidou.mybatisplus.annotation.TableField; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel(description = "Process") +public class ProcessQueryVo { + + @ApiModelProperty(value = "关键字") + private String keyword; + + @ApiModelProperty(value = "用户id") + private Long userId; + + @TableField("process_template_id") + private Long processTemplateId; + + @ApiModelProperty(value = "审批类型id") + private Long processTypeId; + + private String createTimeBegin; + private String createTimeEnd; + + @ApiModelProperty(value = "状态(0:默认 1:审批中 2:审批通过 -1:驳回)") + private Integer status; + + +} \ No newline at end of file diff --git a/model/src/main/java/cn/bunny/vo/process/ProcessVo.java b/model/src/main/java/cn/bunny/vo/process/ProcessVo.java new file mode 100644 index 0000000..51d910c --- /dev/null +++ b/model/src/main/java/cn/bunny/vo/process/ProcessVo.java @@ -0,0 +1,59 @@ +package cn.bunny.vo.process; + +import com.baomidou.mybatisplus.annotation.TableField; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +@Data +@ApiModel(description = "Process") +public class ProcessVo { + + private Long id; + + private Date createTime; + + @ApiModelProperty(value = "审批code") + private String processCode; + + @ApiModelProperty(value = "用户id") + private Long userId; + private String name; + + @TableField("process_template_id") + private Long processTemplateId; + private String processTemplateName; + + @ApiModelProperty(value = "审批类型id") + private Long processTypeId; + private String processTypeName; + + @ApiModelProperty(value = "标题") + private String title; + + @ApiModelProperty(value = "描述") + private String description; + + @ApiModelProperty(value = "表单属性") + private String formProps; + + @ApiModelProperty(value = "表单选项") + private String formOptions; + + @ApiModelProperty(value = "表单属性值") + private String formValues; + + @ApiModelProperty(value = "流程实例id") + private String processInstanceId; + + @ApiModelProperty(value = "当前审批人") + private String currentAuditor; + + @ApiModelProperty(value = "状态(0:默认 1:审批中 2:审批通过 -1:驳回)") + private Integer status; + + private String taskId; + +} \ No newline at end of file diff --git a/model/src/main/java/cn/bunny/vo/system/AssginMenuVo.java b/model/src/main/java/cn/bunny/vo/system/AssginMenuVo.java new file mode 100644 index 0000000..8ef1faf --- /dev/null +++ b/model/src/main/java/cn/bunny/vo/system/AssginMenuVo.java @@ -0,0 +1,20 @@ +package cn.bunny.vo.system; + + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +@ApiModel(description = "分配菜单") +@Data +public class AssginMenuVo { + + @ApiModelProperty(value = "角色id") + private Long roleId; + + @ApiModelProperty(value = "菜单id列表") + private List menuIdList; + +} diff --git a/model/src/main/java/cn/bunny/vo/system/AssginRoleVo.java b/model/src/main/java/cn/bunny/vo/system/AssginRoleVo.java new file mode 100644 index 0000000..de9ca92 --- /dev/null +++ b/model/src/main/java/cn/bunny/vo/system/AssginRoleVo.java @@ -0,0 +1,20 @@ +package cn.bunny.vo.system; + + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +@ApiModel(description = "分配菜单") +@Data +public class AssginRoleVo { + + @ApiModelProperty(value = "用户id") + private Long userId; + + @ApiModelProperty(value = "角色id列表") + private List roleIdList; + +} diff --git a/model/src/main/java/cn/bunny/vo/system/LoginVo.java b/model/src/main/java/cn/bunny/vo/system/LoginVo.java new file mode 100644 index 0000000..6fda19b --- /dev/null +++ b/model/src/main/java/cn/bunny/vo/system/LoginVo.java @@ -0,0 +1,34 @@ +package cn.bunny.vo.system; + + +/** + * 登录对象 + */ +public class LoginVo { + + /** + * 手机号 + */ + private String username; + + /** + * 密码 + */ + private String password; + + public String getUsername() { + return username; + } + + public void setUsername(String username) { + this.username = username; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } +} diff --git a/model/src/main/java/cn/bunny/vo/system/MetaVo.java b/model/src/main/java/cn/bunny/vo/system/MetaVo.java new file mode 100644 index 0000000..9e9b567 --- /dev/null +++ b/model/src/main/java/cn/bunny/vo/system/MetaVo.java @@ -0,0 +1,29 @@ +package cn.bunny.vo.system; + +import lombok.Data; + +/** + * 路由显示信息 + */ +@Data +public class MetaVo { + /** + * 设置该路由在侧边栏和面包屑中展示的名字 + */ + private String title; + + /** + * 设置该路由的图标,对应路径src/assets/icons/svg + */ + private String icon; + + public MetaVo() { + } + + public MetaVo(String title, String icon) { + this.title = title; + this.icon = icon; + } + +} + diff --git a/model/src/main/java/cn/bunny/vo/system/RouterVo.java b/model/src/main/java/cn/bunny/vo/system/RouterVo.java new file mode 100644 index 0000000..97f63dc --- /dev/null +++ b/model/src/main/java/cn/bunny/vo/system/RouterVo.java @@ -0,0 +1,48 @@ +package cn.bunny.vo.system; + +import lombok.Data; + +import java.util.List; + +/** + * 路由配置信息 + */ +@Data +public class RouterVo { + /** + * 路由名字 + */ + // private String name; + + /** + * 路由地址 + */ + private String path; + + /** + * 是否隐藏路由,当设置 true 的时候该路由不会再侧边栏出现 + */ + private boolean hidden; + + /** + * 组件地址 + */ + private String component; + + /** + * 当你一个路由下面的 children 声明的路由大于1个时,自动会变成嵌套的模式--如组件页面 + */ + private Boolean alwaysShow; + + /** + * 其他元素 + */ + private MetaVo meta; + + /** + * 子路由 + */ + private List children; + + +} diff --git a/model/src/main/java/cn/bunny/vo/system/SysLoginLogQueryVo.java b/model/src/main/java/cn/bunny/vo/system/SysLoginLogQueryVo.java new file mode 100644 index 0000000..c48523b --- /dev/null +++ b/model/src/main/java/cn/bunny/vo/system/SysLoginLogQueryVo.java @@ -0,0 +1,16 @@ +package cn.bunny.vo.system; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class SysLoginLogQueryVo { + + @ApiModelProperty(value = "用户账号") + private String username; + + private String createTimeBegin; + private String createTimeEnd; + +} + diff --git a/model/src/main/java/cn/bunny/vo/system/SysOperLogQueryVo.java b/model/src/main/java/cn/bunny/vo/system/SysOperLogQueryVo.java new file mode 100644 index 0000000..ee61375 --- /dev/null +++ b/model/src/main/java/cn/bunny/vo/system/SysOperLogQueryVo.java @@ -0,0 +1,15 @@ +package cn.bunny.vo.system; + +import lombok.Data; + +@Data +public class SysOperLogQueryVo { + + private String title; + private String operName; + + private String createTimeBegin; + private String createTimeEnd; + +} + diff --git a/model/src/main/java/cn/bunny/vo/system/SysPostQueryVo.java b/model/src/main/java/cn/bunny/vo/system/SysPostQueryVo.java new file mode 100644 index 0000000..d57396a --- /dev/null +++ b/model/src/main/java/cn/bunny/vo/system/SysPostQueryVo.java @@ -0,0 +1,19 @@ +package cn.bunny.vo.system; + +import lombok.Data; + +@Data +public class SysPostQueryVo { + + //@ApiModelProperty(value = "岗位编码") + private String postCode; + + //@ApiModelProperty(value = "岗位名称") + private String name; + + //@ApiModelProperty(value = "状态(1正常 0停用)") + private Boolean status; + + +} + diff --git a/model/src/main/java/cn/bunny/vo/system/SysRoleQueryVo.java b/model/src/main/java/cn/bunny/vo/system/SysRoleQueryVo.java new file mode 100644 index 0000000..b4362c5 --- /dev/null +++ b/model/src/main/java/cn/bunny/vo/system/SysRoleQueryVo.java @@ -0,0 +1,29 @@ +// +// +package cn.bunny.vo.system; + +import java.io.Serializable; + +/** + *

+ * 角色查询实体 + *

+ * + * @author qy + * @since 2019-11-08 + */ +public class SysRoleQueryVo implements Serializable { + + private static final long serialVersionUID = 1L; + + private String roleName; + + public String getRoleName() { + return roleName; + } + + public void setRoleName(String roleName) { + this.roleName = roleName; + } +} + diff --git a/model/src/main/java/cn/bunny/vo/system/SysUserQueryVo.java b/model/src/main/java/cn/bunny/vo/system/SysUserQueryVo.java new file mode 100644 index 0000000..4c7fe8d --- /dev/null +++ b/model/src/main/java/cn/bunny/vo/system/SysUserQueryVo.java @@ -0,0 +1,30 @@ +// +// +package cn.bunny.vo.system; + + +import lombok.Data; + +import java.io.Serializable; + +/** + *

+ * 用户查询实体 + *

+ */ +@Data +public class SysUserQueryVo implements Serializable { + + private static final long serialVersionUID = 1L; + + private String keyword; + + private String createTimeBegin; + private String createTimeEnd; + + private Long roleId; + private Long postId; + private Long deptId; + +} + diff --git a/model/src/main/java/cn/bunny/vo/wechat/BindPhoneVo.java b/model/src/main/java/cn/bunny/vo/wechat/BindPhoneVo.java new file mode 100644 index 0000000..a0aec37 --- /dev/null +++ b/model/src/main/java/cn/bunny/vo/wechat/BindPhoneVo.java @@ -0,0 +1,14 @@ +package cn.bunny.vo.wechat; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class BindPhoneVo { + + @ApiModelProperty(value = "手机") + private String phone; + + @ApiModelProperty(value = "openId") + private String openId; +} diff --git a/model/src/main/java/cn/bunny/vo/wechat/MenuVo.java b/model/src/main/java/cn/bunny/vo/wechat/MenuVo.java new file mode 100644 index 0000000..5d352a6 --- /dev/null +++ b/model/src/main/java/cn/bunny/vo/wechat/MenuVo.java @@ -0,0 +1,39 @@ +package cn.bunny.vo.wechat; + +import com.baomidou.mybatisplus.annotation.TableField; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +@Data +@ApiModel(description = "菜单") +public class MenuVo { + + @ApiModelProperty(value = "id") + private Long id; + + @ApiModelProperty(value = "id") + private Long parentId; + + @ApiModelProperty(value = "名称") + private String name; + + @ApiModelProperty(value = "类型") + private String type; + + @ApiModelProperty(value = "url") + private String url; + + @ApiModelProperty(value = "菜单key") + private String meunKey; + + @ApiModelProperty(value = "排序") + private Integer sort; + + @ApiModelProperty(value = "下级") + @TableField(exist = false) + private List children; + +} \ No newline at end of file diff --git a/pom.xml b/pom.xml index ed4c03e..5e9318c 100644 --- a/pom.xml +++ b/pom.xml @@ -9,24 +9,27 @@ cn.bunny - java-template + bunny-template 0.0.1-SNAPSHOT pom - java-template - java-template + bunny-template + bunny-template common model service + + 21 + 21 21 3.5.6 - 8.0.33 + 8.0.30 3.0.3 2.0.47 - 8.4.3 + 8.5.9 1.18.32 3.3.3 2.10.1 @@ -36,7 +39,7 @@ com.baomidou - mybatis-plus-boot-starter + mybatis-plus-spring-boot3-starter ${mybatis-plus.version} @@ -69,6 +72,12 @@ lombok ${lombok.version}
+ + + cn.hutool + hutool-all + 5.8.25 + com.alibaba easyexcel diff --git a/service/pom.xml b/service/pom.xml index 793c56c..a369612 100644 --- a/service/pom.xml +++ b/service/pom.xml @@ -3,13 +3,12 @@ 4.0.0 cn.bunny - java-template + bunny-template 0.0.1-SNAPSHOT service jar - service https://maven.apache.org @@ -18,16 +17,9 @@ 192.168.3.98:1100 192.168.3.98:2375 bunny-service - UTF-8 - - - cn.bunny - model - 0.0.1-SNAPSHOT - cn.bunny @@ -46,11 +38,6 @@ org.springframework.boot spring-boot-starter-test - - - com.github.xiaoymin - knife4j-spring-boot-starter - diff --git a/service/src/main/java/cn/bunny/service/ServiceApplication.java b/service/src/main/java/cn/bunny/service/ServiceApplication.java index 620679a..67d671c 100644 --- a/service/src/main/java/cn/bunny/service/ServiceApplication.java +++ b/service/src/main/java/cn/bunny/service/ServiceApplication.java @@ -1,9 +1,13 @@ package cn.bunny.service; +import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.context.annotation.ComponentScan; @SpringBootApplication +@ComponentScan(basePackages = {"cn.bunny"}) +@MapperScan("cn.bunny.service.mapper") public class ServiceApplication { public static void main(String[] args) { SpringApplication.run(ServiceApplication.class, args); diff --git a/service/src/main/java/cn/bunny/service/controller/IndexController.java b/service/src/main/java/cn/bunny/service/controller/IndexController.java new file mode 100644 index 0000000..44186d9 --- /dev/null +++ b/service/src/main/java/cn/bunny/service/controller/IndexController.java @@ -0,0 +1,47 @@ +package cn.bunny.service.controller; + +import cn.bunny.common.service.result.Result; +import cn.bunny.entity.system.Login; +import cn.bunny.entity.system.SysUserinfo; +import cn.bunny.service.service.SysUserService; +import cn.bunny.vo.system.LoginVo; +import io.swagger.annotations.Api; +import io.swagger.v3.oas.annotations.Operation; +import jakarta.servlet.http.HttpServletRequest; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.Map; + +/** + *

+ * 后台登录登出 + *

+ */ +@Api(tags = "后台登录管理") +@RestController +@RequestMapping("/admin/system/index") +public class IndexController { + @Autowired + private SysUserService sysUserService; + + @Operation(summary = "登录", description = "登录") + @PostMapping("login") + public Result login(@RequestBody LoginVo loginVo) { + Login login = sysUserService.login(loginVo); + return Result.success(login); + } + + @Operation(summary = "获取用户信息", description = "获取用户信息") + @GetMapping("info") + public Result info(HttpServletRequest request) { + SysUserinfo userinfo = sysUserService.getUserinfo(request); + return Result.success(userinfo); + } + + @Operation(summary = "退出", description = "退出") + @PostMapping("logout") + public Result> logout() { + return Result.success(); + } +} \ No newline at end of file diff --git a/service/src/main/java/cn/bunny/service/mapper/SysUserMapper.java b/service/src/main/java/cn/bunny/service/mapper/SysUserMapper.java new file mode 100644 index 0000000..345d10f --- /dev/null +++ b/service/src/main/java/cn/bunny/service/mapper/SysUserMapper.java @@ -0,0 +1,19 @@ +package cn.bunny.service.mapper; + + +import cn.bunny.entity.system.SysUser; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; + +/** + *

+ * 用户表 Mapper 接口 + *

+ * + * @author bunny + * @since 2024-04-22 + */ +@Mapper +public interface SysUserMapper extends BaseMapper { + +} diff --git a/service/src/main/java/cn/bunny/service/service/SysUserService.java b/service/src/main/java/cn/bunny/service/service/SysUserService.java new file mode 100644 index 0000000..7368fa7 --- /dev/null +++ b/service/src/main/java/cn/bunny/service/service/SysUserService.java @@ -0,0 +1,35 @@ +package cn.bunny.service.service; + + +import cn.bunny.entity.system.Login; +import cn.bunny.entity.system.SysUser; +import cn.bunny.entity.system.SysUserinfo; +import cn.bunny.vo.system.LoginVo; +import com.baomidou.mybatisplus.extension.service.IService; +import jakarta.servlet.http.HttpServletRequest; + +/** + *

+ * 用户表 服务类 + *

+ * + * @author bunny + * @since 2024-04-22 + */ +public interface SysUserService extends IService { + /** + * 登录 + * + * @param vo 登录条件 + * @return 返回token + */ + Login login(LoginVo vo); + + /** + * 获取用户信息 + * + * @param request 请求头 + * @return 用户信息 + */ + SysUserinfo getUserinfo(HttpServletRequest request); +} diff --git a/service/src/main/java/cn/bunny/service/service/impl/SysUserServiceImpl.java b/service/src/main/java/cn/bunny/service/service/impl/SysUserServiceImpl.java new file mode 100644 index 0000000..ea3a6c7 --- /dev/null +++ b/service/src/main/java/cn/bunny/service/service/impl/SysUserServiceImpl.java @@ -0,0 +1,72 @@ +package cn.bunny.service.service.impl; + + +import cn.bunny.common.service.constant.MessageConstant; +import cn.bunny.common.service.exception.BunnyException; +import cn.bunny.entity.system.Login; +import cn.bunny.entity.system.SysUser; +import cn.bunny.entity.system.SysUserinfo; +import cn.bunny.service.mapper.SysUserMapper; +import cn.bunny.service.service.SysUserService; +import cn.bunny.vo.system.LoginVo; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import jakarta.servlet.http.HttpServletRequest; +import org.springframework.stereotype.Service; +import org.springframework.util.DigestUtils; + +/** + *

+ * 用户表 服务实现类 + *

+ * + * @author bunny + * @since 2024-04-22 + */ +@Service +public class SysUserServiceImpl extends ServiceImpl implements SysUserService { + /** + * 登录 + * + * @param vo 登录条件 + * @return 返回token + */ + @Override + public Login login(LoginVo vo) { + String username = vo.getUsername(); + String password = vo.getPassword(); + // 查询用户信息 + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(SysUser::getUsername, username); + SysUser sysUser = getOne(wrapper); + + // 用户是否存在 + if (sysUser == null) { + throw new BunnyException(MessageConstant.ACCOUNT_NOT_FOUND); + } + + // 判断是否被禁用 + if (sysUser.getStatus() == 0) { + throw new BunnyException(MessageConstant.ACCOUNT_LOCKED); + } + + // 判断密码 + String md5DigestAsHexPassword = DigestUtils.md5DigestAsHex(password.getBytes()); + if (!md5DigestAsHexPassword.equals(sysUser.getPassword())) { + throw new BunnyException(MessageConstant.PASSWORD_ERROR); + } + // 添加token + return Login.builder().token("token").build(); + } + + /** + * 获取用户信息 + * + * @param request 请求头 + * @return 用户信息 + */ + @Override + public SysUserinfo getUserinfo(HttpServletRequest request) { + return null; + } +} diff --git a/service/src/main/resources/application-dev.yml b/service/src/main/resources/application-dev.yml index 3e12aa6..511b357 100644 --- a/service/src/main/resources/application-dev.yml +++ b/service/src/main/resources/application-dev.yml @@ -10,4 +10,10 @@ bunny: host: 47.120.65.66 port: 6379 database: 3 - password: "02120212" \ No newline at end of file + password: "02120212" + + minio: + endpointUrl: "http://129.211.31.58:9000" + bucket-name: ssyx + accessKey: bunny + secretKey: "02120212" \ No newline at end of file diff --git a/service/src/main/resources/application.yml b/service/src/main/resources/application.yml index f9290a2..cbacd78 100644 --- a/service/src/main/resources/application.yml +++ b/service/src/main/resources/application.yml @@ -31,6 +31,11 @@ spring: date-format: yyyy-MM-dd HH:mm:ss time-zone: GMT+8 +mybatis-plus: + mapper-locations: classpath:mapper/*.xml + configuration: + log-impl: org.apache.ibatis.logging.stdout.StdOutImpl # 查看日志 + logging: level: cn.bunny.service.mapper: debug @@ -39,4 +44,5 @@ logging: pattern: dateformat: HH:mm:ss:SSS file: - path: "logs/${spring.application.name}" \ No newline at end of file + path: "logs/${spring.application.name}" + diff --git a/service/src/main/resources/favicon.ico b/service/src/main/resources/favicon.ico index 1ba397c45de65f92b238bb9f94608320bf32209b..385f8a67127e1978b08387383f5935feaf561d04 100644 GIT binary patch literal 17014 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 G5Bv)+nYH-< literal 13342 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 diff --git a/service/src/main/resources/mapper/SysUserMapper.xml b/service/src/main/resources/mapper/SysUserMapper.xml new file mode 100644 index 0000000..7134a56 --- /dev/null +++ b/service/src/main/resources/mapper/SysUserMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/service/src/test/java/cn/bunny/AppTest.java b/service/src/test/java/cn/bunny/AppTest.java deleted file mode 100644 index 34b54ff..0000000 --- a/service/src/test/java/cn/bunny/AppTest.java +++ /dev/null @@ -1,38 +0,0 @@ -package cn.bunny; - -import junit.framework.Test; -import junit.framework.TestCase; -import junit.framework.TestSuite; - -/** - * Unit test for simple App. - */ -public class AppTest - extends TestCase -{ - /** - * Create the test case - * - * @param testName name of the test case - */ - public AppTest( String testName ) - { - super( testName ); - } - - /** - * @return the suite of tests being tested - */ - public static Test suite() - { - return new TestSuite( AppTest.class ); - } - - /** - * Rigourous Test :-) - */ - public void testApp() - { - assertTrue( true ); - } -}