From 2cfd50cfd8b5f128c49e0b065a4a581b65bcf32e Mon Sep 17 00:00:00 2001 From: aohanhongzhi Date: Sat, 19 Sep 2020 23:02:58 +0800 Subject: [PATCH 1/3] add filter --- README.md | 7 ++++ .../main/java/hxy/dream/app/Application.java | 2 + app/src/test/resources/api/local.http | 2 +- .../hxy/dream/common/filter/TokenFilter.java | 42 +++++++++++++++++++ 4 files changed, 52 insertions(+), 1 deletion(-) create mode 100644 common/src/main/java/hxy/dream/common/filter/TokenFilter.java diff --git a/README.md b/README.md index 15c7f1f..3605d8c 100644 --- a/README.md +++ b/README.md @@ -93,3 +93,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 3f89cff..a36bc55 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/test/resources/api/local.http b/app/src/test/resources/api/local.http index f29beb9..cf0cf20 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/filter/TokenFilter.java b/common/src/main/java/hxy/dream/common/filter/TokenFilter.java new file mode 100644 index 0000000..5d7c8ac --- /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销毁"); + + } +} -- Gitee From 765bcc0bb00110c7965fec834441afa5fbb6882a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=82=B2=E5=AF=92=E5=AE=8F=E5=BF=97?= Date: Mon, 21 Sep 2020 14:09:17 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E5=AD=97=E6=AE=B5=E5=A1=AB=E5=85=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hxy/dream/app/entity/param/UserParam.java | 1 - app/src/main/resources/application-beta.yml | 2 +- .../configuration/MybatisAuditHandler.java | 41 +++++++++++++++++++ .../java/hxy/dream/dao/modle/BaseModel.java | 25 +++++++++++ .../java/hxy/dream/dao/modle/UserModel.java | 3 +- 5 files changed, 68 insertions(+), 4 deletions(-) create mode 100644 common/src/main/java/hxy/dream/common/configuration/MybatisAuditHandler.java create mode 100644 dao/src/main/java/hxy/dream/dao/modle/BaseModel.java 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 3042ab9..b205e3b 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 10c9bcd..bbfedc9 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/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 0000000..845d5f6 --- /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/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 0000000..bcfe593 --- /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 d6951aa..3812f13 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; -- Gitee From e165f416a134a4727dcc7f20bdf64fab05a46fe6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=82=B2=E5=AF=92=E5=AE=8F=E5=BF=97?= Date: Mon, 21 Sep 2020 14:12:02 +0800 Subject: [PATCH 3/3] https://docs.qq.com/doc/DSG5Zbk9RR1FHRVZE --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 3605d8c..86ddac1 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层的转换操作,可以很好的处理枚举在应用中的形态,程序中可以很好的使用枚举了。 -- Gitee