Poison


  • 首页

  • 归档

  • 标签

  • 搜索
close
Poison

XOR

发表于 2021-08-05

相同的 bit 进行异或运算结果为 0,不同则为 1。若对 bit 进行异或 1 运算可以使对应 bit 取反,对 bit 进行异或 0 运算可以保持对应 bit 不变。

1
2
3
4
0 ^ 0 = 0
0 ^ 1 = 1
1 ^ 0 = 1
1 ^ 1 = 0
Reference

Exclusive or - Wikipedia

Poison

关于 web.xml 中的通配符匹配问题

发表于 2021-08-03

临近下班,帮同事查了个路径匹配的问题,在此简单记录。问题简化后如下,同事在 web.xml 中配置的路径匹配如下:

1
2
3
4
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/pc/*</url-pattern>
</servlet-mapping>

在 Spring MVC 中配置的注解为:@RequestMapping("/pc/**"),请求接口 /pc/index.htm 时服务器响应状态码为 404,经过调试,调用栈帧如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
getPathWithinServletMapping:192, UrlPathHelper (org.springframework.web.util)
getLookupPathForRequest:169, UrlPathHelper (org.springframework.web.util)
getHandlerInternal:310, AbstractHandlerMethodMapping (org.springframework.web.servlet.handler)
getHandlerInternal:62, AbstractHandlerMethodMapping (org.springframework.web.servlet.handler)
getHandler:350, AbstractHandlerMapping (org.springframework.web.servlet.handler)
getHandler:1188, DispatcherServlet (org.springframework.web.servlet)
doDispatch:964, DispatcherServlet (org.springframework.web.servlet)
doService:925, DispatcherServlet (org.springframework.web.servlet)
processRequest:974, FrameworkServlet (org.springframework.web.servlet)
doPost:877, FrameworkServlet (org.springframework.web.servlet)
service:652, HttpServlet (javax.servlet.http)
service:851, FrameworkServlet (org.springframework.web.servlet)
service:733, HttpServlet (javax.servlet.http)
internalDoFilter:231, ApplicationFilterChain (org.apache.catalina.core)
doFilter:166, ApplicationFilterChain (org.apache.catalina.core)
doFilterInternal:109, HttpPutFormContentFilter (org.springframework.web.filter)
doFilter:107, OncePerRequestFilter (org.springframework.web.filter)
internalDoFilter:193, ApplicationFilterChain (org.apache.catalina.core)
doFilter:166, ApplicationFilterChain (org.apache.catalina.core)
doFilter:52, WsFilter (org.apache.tomcat.websocket.server)
internalDoFilter:193, ApplicationFilterChain (org.apache.catalina.core)
doFilter:166, ApplicationFilterChain (org.apache.catalina.core)
doFilterInternal:200, CharacterEncodingFilter (org.springframework.web.filter)
doFilter:107, OncePerRequestFilter (org.springframework.web.filter)
internalDoFilter:193, ApplicationFilterChain (org.apache.catalina.core)
doFilter:166, ApplicationFilterChain (org.apache.catalina.core)
invoke:199, StandardWrapperValve (org.apache.catalina.core)
invoke:97, StandardContextValve (org.apache.catalina.core)
invoke:543, AuthenticatorBase (org.apache.catalina.authenticator)
invoke:143, StandardHostValve (org.apache.catalina.core)
invoke:81, ErrorReportValve (org.apache.catalina.valves)
invoke:690, AbstractAccessLogValve (org.apache.catalina.valves)
invoke:78, StandardEngineValve (org.apache.catalina.core)
service:343, CoyoteAdapter (org.apache.catalina.connector)
service:616, Http11Processor (org.apache.coyote.http11)
process:65, AbstractProcessorLight (org.apache.coyote)
process:818, AbstractProtocol$ConnectionHandler (org.apache.coyote)
doRun:1626, NioEndpoint$SocketProcessor (org.apache.tomcat.util.net)
run:49, SocketProcessorBase (org.apache.tomcat.util.net)
runWorker:1149, ThreadPoolExecutor (java.util.concurrent)
run:624, ThreadPoolExecutor$Worker (java.util.concurrent)
run:61, TaskThread$WrappingRunnable (org.apache.tomcat.util.threads)
run:748, Thread (java.lang)
阅读全文 »
Poison

Java 运行时获取方法参数名称

发表于 2021-08-03

最近开发 BPM 流程编排引擎,需要将部分 Java 方法注册为业务节点供界面上管理业务流程,此时需要获取 Java 方法的签名,其中参数名获取出来是 arg0, arg1, arg2 这样的,查询了下文档,.class 文件默认没有包含形式参数名称,因为含有形式参数名称时需要更大的静态及动态空间占用且部分场景形式参数名称会暴露安全敏感方法的信息,需要编译时加上 -parameters 以保留形式参数名称至运行时。

阅读全文 »
Poison

关于 shade jar 作为依赖时因含有传递依赖导致传递依赖被传递的问题

发表于 2021-08-02

在之前的场景中,我经常使用 Apache Maven Shade Plugin 给 Hive-UDF、Spark 应用等处理应用所需的依赖版本与系统库依赖版本不一致且不能兼容的问题,今天的场景为需要将一个工程的依赖进行重定位,且该工程构建的 fat jar 需要作为依赖被其他工程引入,但是引入后发现虽然设置的类被进行了重定位,但是构建的 jar 中的 pom.xml 依然含有之前的传递依赖,导致可能影响到引入依赖工程的依赖管理,查询了文档,发现这个持续 11 年的问题已经在 maven-shade-plugin 的 3.0.0 版本中被修复。

Reference

NOTES-shading-dependencies
MSHADE-36 Add option to include dependency reduced POM instead of original one - ASF JIRA

Poison

Two's complement

发表于 2021-08-02

此文记录简单的二进制补码与十进制值的转换逻辑,关于补码的更多原理可以参考文末的链接。

阅读全文 »
1…192021…26

130 日志
119 标签
GitHub LeetCode
© 2025 Poison 蜀ICP备16000644号
由 Hexo 强力驱动
主题 - NexT.Mist