Java Spring Boot VS .NetCore (一)来一个简单的 Hello World

Java Spring Boot VS .NetCore (二)实现一个过滤器Filter

Java Spring Boot VS .NetCore (三)Ioc容器处理

Java Spring Boot VS .NetCore (四)数据库操作 Spring Data JPA vs EFCore

Java Spring Boot VS .NetCore (五)MyBatis vs EFCore

Java Spring Boot VS .NetCore (六) UI thymeleaf vs cshtml

Java Spring Boot VS .NetCore (七) 配置文件

Java Spring Boot VS .NetCore (八) Java 注解 vs .NetCore Attribute

Java Spring Boot VS .NetCore (九) Spring Security vs .NetCore Security

Java Spring Boot VS .NetCore (十) Java Interceptor vs .NetCore Interceptor

Java Spring Boot VS .NetCore (十一)自定义标签 Java Tag Freemarker VS .NetCore Tag TagHelper

Java中实现过滤器是集成实现接口Filter 然后去添加相关的注册 FilterRegistration,下面就来对比下.NetCore 中的 Filter 来一次用法上的比较

说到Java中的Filter 这里就需要说明下 @Configuration @Bean 这两个注解

@Bean  给@Bean标注的方法产生一个Bean方法并交给Spring Ioc 容器管理的方法,这些@Bean标注的方法会被AnnotationConfigApplicationContext、AnnotationConfigWebApplicationContext 处理后最后添加到Spring 容器中,  我把它理解为 .NetCore 中的 注入DI 吧 ,使用 IServiceCollection 添加服务,注入后也是交给  Ioc 容器中的 交给 Microsoft.Extensions.DependencyInjection

@Configuration 这个标注是用来干什么的呢?用于定义配置类,里面需要包含被 @Bean注解标注的方法

下面上一些代码:

Java Filter 处理

@Configuration
public class WebConfig {
@Bean
public RemoteIpFilter remoteIpFilter()
{
return new RemoteIpFilter();
}
@Bean
public FilterRegistrationBean LYMRegistrationBean()
{
FilterRegistrationBean registration = new FilterRegistrationBean();
registration.setFilter(new LYMFilter());
registration.addUrlPatterns("/*");
registration.addInitParameter("myname", "这是我写的参数值");
registration.setName("LYMFilter");
registration.setOrder(1);
return registration;
}
public class LYMFilter implements Filter{ @Override
public void init(FilterConfig filterConfig) throws ServletException {
System.out.println("这是LYMFilter的初始化:"+filterConfig.getFilterName());
System.out.println("这是LYMFilter的初始化:"+filterConfig.getInitParameter("myname"));
} @Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) servletRequest;
System.out.println("这是Ip拦截器,拦截地址 :"+request.getRequestURI());
filterChain.doFilter(servletRequest, servletResponse);
} @Override
public void destroy() {
System.out.println("LYMFilter被销毁");
}
}

Java中这里用的 RemoteFilter  ,还有其他的过滤器,实现Filter接口的时候其实就可以看到 Filter有很多 来之不懂包里面的接口 ,这里实现的是Servlet

注册好Filter指定相关参数  如:设置名称  设置参数  指定过滤的地址 以及当前过滤器的一个顺序,这里顺序个人觉得给 .NetCore中的中间件 Middleware 顺序一个个处理,只是.NetCore中中间件执行的顺序是根据ConfigServices中的上下代码顺序来执行的

.NetCore 中 过滤器有几种基本的,这里我用授权过滤器来描述 IAuthorizationFilter ,然后在 IServiceCollection 添加好注册服务

public class LYMFilter : IAuthorizationFilter
{
public void OnAuthorization(AuthorizationFilterContext context)
{
// do something
}
}
services.AddMvc(options=>options.Filters.Add(new LYMFilter()));

.NetCore中的执行效果就不演示了,下面我们看下Java中的处理结果

我们输入之前的helloworld地址 可以看到如下输出

Java Spring Boot VS .NetCore (二)实现一个过滤器Filter的更多相关文章

  1. Java Spring Boot VS .NetCore (一)来一个简单的 Hello World

    系列文章 Java Spring Boot VS .NetCore (一)来一个简单的 Hello World Java Spring Boot VS .NetCore (二)实现一个过滤器Filte ...

  2. Java Spring Boot VS .NetCore (三)Ioc容器处理

    Java Spring Boot VS .NetCore (一)来一个简单的 Hello World Java Spring Boot VS .NetCore (二)实现一个过滤器Filter Jav ...

  3. Java Spring Boot VS .NetCore (四)数据库操作 Spring Data JPA vs EFCore

    Java Spring Boot VS .NetCore (一)来一个简单的 Hello World Java Spring Boot VS .NetCore (二)实现一个过滤器Filter Jav ...

  4. Java Spring Boot VS .NetCore (五)MyBatis vs EFCore

    Java Spring Boot VS .NetCore (一)来一个简单的 Hello World Java Spring Boot VS .NetCore (二)实现一个过滤器Filter Jav ...

  5. Java Spring Boot VS .NetCore (六) UI thymeleaf vs cshtml

    Java Spring Boot VS .NetCore (一)来一个简单的 Hello World Java Spring Boot VS .NetCore (二)实现一个过滤器Filter Jav ...

  6. Java Spring Boot VS .NetCore (七) 配置文件

    Java Spring Boot VS .NetCore (一)来一个简单的 Hello World Java Spring Boot VS .NetCore (二)实现一个过滤器Filter Jav ...

  7. Java Spring Boot VS .NetCore (八) Java 注解 vs .NetCore Attribute

    Java Spring Boot VS .NetCore (一)来一个简单的 Hello World Java Spring Boot VS .NetCore (二)实现一个过滤器Filter Jav ...

  8. Java Spring Boot VS .NetCore (九) Spring Security vs .NetCore Security

    Java Spring Boot VS .NetCore (一)来一个简单的 Hello World Java Spring Boot VS .NetCore (二)实现一个过滤器Filter Jav ...

  9. Java Spring Boot VS .NetCore (十) Java Interceptor vs .NetCore Interceptor

    Java Spring Boot VS .NetCore (一)来一个简单的 Hello World Java Spring Boot VS .NetCore (二)实现一个过滤器Filter Jav ...

随机推荐

  1. Jenkins与sonar扫描的集成问题

    记录本周遇到的头疼了很久的一个问题,由于公司需要使用jenkins来自动管理构建项目,然后在关联sonar对项目代码质量进行审核. 接着坑爹的问题来了,原有的技术手段为项目构建成功后通过jenkins ...

  2. 拷贝文件到服务器 提示FTP文件夹错误

    FTP文件夹错误将文件复制到FTP服务器时发生错误.请检查是否有权限将文件放到该服务器上.详细信息:200 Type set to I.227Entering Passive Mode (122,11 ...

  3. 五、Java多人博客系统-2.0版本-数据库设计

    数据库设计表如下:文章类别表.文章表.评论表.留言表. 文章列表表:存放文章类别,首页菜单生成也是从这个表取的. 文章表:存放文章标题.发表时间.内容等信息. 评论表:文章评论内容. 留言表:用户发表 ...

  4. vbox安装增强功能,实现宿主机文件夹共享并浏览器访问

    虚拟机版本:6.0.4 r128413 (Qt5.6.2) linux:centos7/6 点击菜单栏中的设备->安装增强功能,再reboot 获取内核版本号 uname -r 查看yum的内核 ...

  5. maven wrapper使用本地maven

    修改maven-wrapper.properties内容如下: #distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apa ...

  6. Kubernetes之存储

    存储卷概述 容器磁盘上的文件的生命周期是短暂的,这就使得在容器中运行重要应用时会出现一些问题.首先,当容器崩溃时,kubelet 会重启它,但是容器中的文件将丢失——容器以干净的状态(镜像最初的状态) ...

  7. 分布式监控系统开发【day38】:报警策略设计(二)

    一.策略和动作多对多的好处坏处 1.好处: 相同服务,相同策略的服务可以不用重复写好多次触发器 2.坏处: 1.策略A给小李和小罗发邮件2.策略B给小胡和小崔发邮件3.策略A是第三部发邮件4.策略B是 ...

  8. Docker:常用命令大全 [七]

    一.docker的命令的解释 1.命令解释 docker run -d -p 80:80 nginx run (创建并运行一个容器) -d 放在后台 -p 端口映射 nginx docker镜像的名字 ...

  9. oh-my-zsh安装和简单定制

    我使用的是deepin系统,deepin的终端做的已经很好了,最近想换一个新的命令的提示符风格.据说oh-my-zsh很好用,花一点时间安装,记录这个过程. oh-my-zsh的安装是非常方便的,安装 ...

  10. C#使用ServiceStack读写Redis

    通过C#第三方库向Redis存储数据遇到的几个问题 https://github.com/ServiceStack/ServiceStack.Redis 1.将对象转json字符串 JsonObjec ...