diff --git a/README.md b/README.md index 15c7f1f00dc834b810446fd4aff997de96989d34..86ddac1490c21e4df18944827c840b16814940cd 100644 --- a/README.md +++ b/README.md @@ -84,6 +84,7 @@ https://juejin.im/post/6844904196693557255 > 参考 mybatis-plus:https://mp.baomidou.com/guide/enum.html +1. [自动填充字段](https://docs.qq.com/doc/DSG5Zbk9RR1FHRVZE) #### 总结 通过上面方法,对数据库层和Controller层的转换操作,可以很好的处理枚举在应用中的形态,程序中可以很好的使用枚举了。 @@ -93,3 +94,10 @@ https://juejin.im/post/6844904196693557255 https://blog.csdn.net/bandancer/article/details/84926383 [基于fastjson在mvc中解决enum类型序列化反序列化](https://zhuanlan.zhihu.com/p/121112597) + + + +### 过滤器 + +[关于springboot中添加Filter的方法](https://www.jianshu.com/p/3d421fbce734) + diff --git a/app/src/main/java/hxy/dream/app/Application.java b/app/src/main/java/hxy/dream/app/Application.java index 3f89cff731ea44751011b712ba184ba8daad9e8b..a36bc55c5eb1c811c02b4bed6f4af90d9a37d7c1 100644 --- a/app/src/main/java/hxy/dream/app/Application.java +++ b/app/src/main/java/hxy/dream/app/Application.java @@ -4,9 +4,11 @@ package hxy.dream.app; import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.web.servlet.ServletComponentScan; @SpringBootApplication(scanBasePackages = {"hxy.dream"}) @MapperScan("hxy.dream.dao") +@ServletComponentScan("hxy.dream") public class Application { public static void main(String[] args) { diff --git a/app/src/main/java/hxy/dream/app/entity/param/UserParam.java b/app/src/main/java/hxy/dream/app/entity/param/UserParam.java index 3042ab9b89cb350afe8fd53368cf0ff63aeb583c..b205e3b8f5b92c1c266b8f05fa56e9c9b9215d34 100644 --- a/app/src/main/java/hxy/dream/app/entity/param/UserParam.java +++ b/app/src/main/java/hxy/dream/app/entity/param/UserParam.java @@ -19,5 +19,4 @@ public class UserParam { @NotNull(message = "age不能为空") Integer age; - UserDTO userDTO; } diff --git a/app/src/main/resources/application-beta.yml b/app/src/main/resources/application-beta.yml index 10c9bcd00cd16e83d6d2011f6b51ec308da1e622..bbfedc9ceda0297faf8f5841b31f73503c4c0cc2 100755 --- a/app/src/main/resources/application-beta.yml +++ b/app/src/main/resources/application-beta.yml @@ -29,7 +29,7 @@ logging: level: root: info #其他的包都是使用info正常显示日志 hxy.dream.dao: trace # 显示mybatis的操作时候所有级别的日志 - hxy.dream.app: debug + hxy.dream: debug com.fasterxml.jackson: debug diff --git a/app/src/test/resources/api/local.http b/app/src/test/resources/api/local.http index f29beb9582415bd5d466b661e928c967384af286..cf0cf2078a8c076edac41b5de866f45b95562219 100644 --- a/app/src/test/resources/api/local.http +++ b/app/src/test/resources/api/local.http @@ -1,4 +1,4 @@ -GET http://localhost:8080/get/12 +GET http://localhost:8080/user/get/12 ### 添加 POST http://localhost:8080/user/add/body diff --git a/common/src/main/java/hxy/dream/common/configuration/MybatisAuditHandler.java b/common/src/main/java/hxy/dream/common/configuration/MybatisAuditHandler.java new file mode 100644 index 0000000000000000000000000000000000000000..845d5f60b3c1bd6bba30e4863ef504e8dc45d7d1 --- /dev/null +++ b/common/src/main/java/hxy/dream/common/configuration/MybatisAuditHandler.java @@ -0,0 +1,41 @@ +package hxy.dream.common.configuration; + +import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler; +import org.apache.ibatis.reflection.MetaObject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Component; + +import java.time.LocalDateTime; + +/** + * mybatis-plus自动填充时间字段 + */ +@Component +public class MybatisAuditHandler implements MetaObjectHandler { + static final Logger LOG = LoggerFactory.getLogger(MybatisAuditHandler.class); + + @Override + public void insertFill(MetaObject metaObject) { + if (LOG.isDebugEnabled()){ + LOG.debug("\n====>mybatis自动填充创建时间字段"); + } + // 声明自动填充字段的逻辑。 +// String userId = AuthHolder.getCurrentUserId(); + String userId = ""; + this.strictInsertFill(metaObject,"creator",String.class, userId); + this.strictInsertFill(metaObject,"createTime", LocalDateTime.class,LocalDateTime.now()); + } + + @Override + public void updateFill(MetaObject metaObject) { + if (LOG.isDebugEnabled()){ + LOG.debug("\n====>mybatis自动填充更新时间字段"); + } + // 声明自动填充字段的逻辑。 +// String userId = AuthHolder.getCurrentUserId(); + String userId = ""; + this.strictUpdateFill(metaObject,"updater",String.class,userId); + this.strictUpdateFill(metaObject,"updateTime", LocalDateTime.class,LocalDateTime.now()); + } +} \ No newline at end of file diff --git a/common/src/main/java/hxy/dream/common/filter/TokenFilter.java b/common/src/main/java/hxy/dream/common/filter/TokenFilter.java new file mode 100644 index 0000000000000000000000000000000000000000..5d7c8ac243a4b9214c7fde87e484722c67eac948 --- /dev/null +++ b/common/src/main/java/hxy/dream/common/filter/TokenFilter.java @@ -0,0 +1,42 @@ +package hxy.dream.common.filter; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.core.annotation.Order; + +import javax.servlet.Filter; +import javax.servlet.FilterChain; +import javax.servlet.FilterConfig; +import javax.servlet.ServletException; +import javax.servlet.ServletRequest; +import javax.servlet.ServletResponse; +import javax.servlet.annotation.WebFilter; +import javax.servlet.annotation.WebInitParam; +import java.io.IOException; + +@Order(1) +@WebFilter(filterName = "TokenFilter", urlPatterns = "/*" , initParams = { + @WebInitParam(name = "URL", value = "http://localhost:8080")}) +public class TokenFilter implements Filter { + + Logger logger = LoggerFactory.getLogger(TokenFilter.class); + + @Override + public void init(FilterConfig filterConfig) throws ServletException { + logger.info("\n====>TokenFilter初始化配置信息[{}]", filterConfig); + } + + @Override + public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { + logger.info("\n====>TokenFilter过滤器使用[{}]", chain); + + + chain.doFilter(request, response); + } + + @Override + public void destroy() { + logger.info("\n====>TokenFilter销毁"); + + } +} diff --git a/dao/src/main/java/hxy/dream/dao/modle/BaseModel.java b/dao/src/main/java/hxy/dream/dao/modle/BaseModel.java new file mode 100644 index 0000000000000000000000000000000000000000..bcfe5938ff3dced2c88ab4595f722d0be3d06705 --- /dev/null +++ b/dao/src/main/java/hxy/dream/dao/modle/BaseModel.java @@ -0,0 +1,25 @@ +package hxy.dream.dao.modle; + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.extension.activerecord.Model; + +import java.time.LocalDateTime; + +/** + * @author eric + * @program eric-dream + * @description 基础的类模型,增加一些通用字段 + * @date 2020/9/21 + */ +public class BaseModel> extends Model { + +// @TableField(fill = FieldFill.INSERT) +// private String creator; + @TableField(fill = FieldFill.INSERT) + private LocalDateTime createTime; +// @TableField(fill = FieldFill.UPDATE) +// private String updater; + @TableField(fill = FieldFill.UPDATE) + private LocalDateTime updateTime; +} diff --git a/dao/src/main/java/hxy/dream/dao/modle/UserModel.java b/dao/src/main/java/hxy/dream/dao/modle/UserModel.java index d6951aa27bea7092af4d22692dc09a0e87681948..3812f139540742caf079833a43086192ae98c60d 100644 --- a/dao/src/main/java/hxy/dream/dao/modle/UserModel.java +++ b/dao/src/main/java/hxy/dream/dao/modle/UserModel.java @@ -3,7 +3,6 @@ package hxy.dream.dao.modle; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; -import com.baomidou.mybatisplus.extension.activerecord.Model; import hxy.dream.entity.enums.GenderEnum; import lombok.Data; import lombok.EqualsAndHashCode; @@ -14,7 +13,7 @@ import lombok.EqualsAndHashCode; @Data @TableName("users") @EqualsAndHashCode(callSuper=false) -public class UserModel extends Model { +public class UserModel extends BaseModel { @TableId(type = IdType.AUTO) String id; String name;