「 SPRING 」 六月 27, 2021
玩转 @ConditionalOnMissingBean
文章字数 7k 阅读约需 6 mins.
在 男人,不能说不行! 中,留了两个问题:
- 为什么名为
testServiceImpl
的 Bean 会被注册? - 为什么无法注入 TestService 的实例?
先从可运行环境 https://github.com/AlphaHinex/conditional-on-missing-bean-demo 看下结果。
在测试用例中,通过 @Autowired
注解注入了 TestService,但调用时,报了空指针异常,说明容器中没有 TestService 类型的实例。
那么是 @ConditionalOnMi...
「 JAVA 」 四月 11, 2021
Java 应用远程调试
文章字数 10k 阅读约需 10 mins.
软件开发会时经常会遇到这样的场景:
- 现场反馈的问题,在本地环境无法重现,可能需要将现场数据库导回来才能重现问题
- 生产环境中的服务无法直接从本地开发环境进行连接,进而无法使用本地代码进行调试
在上面的场景中,无论是将现场库导出,还是开通生产环境服务的访问权限,都是非常困难且不安全的。
本文将介绍一种由 Java 平台提供的,远程调试 Java 应用的方法。
JPDA(Java Platform Debugging Architecture)是一个多层调试架构,支持在不同操作系统、虚拟机及 JDK...
查看全文「 OTHERS 」 四月 04, 2021
二进制算术运算
文章字数 4.7k 阅读约需 4 mins.
总体来讲,二进制算术运算可以采用竖式计算的方式,与十进制竖式计算的区别是,逢十进一变为了逢二进一。
以 8 和 4 为例,可参照 十进制整数与二进制数转换 中方法,分别计算出二进制形式:
8 (10) = 1000 (2)
4 (10) = 0100 (2)
加
1000
+ 0100
------
1100
1100 (2) = 12 (10)
减
1000
- 0100
------
0100
0100 (2) = 4 (10)
负数怎么表示
如果是 4 - 8 时会怎么样呢?
0100
-...
查看全文
「 OTHERS 」 三月 21, 2021
十进制整数与二进制数转换
文章字数 8.7k 阅读约需 8 mins.
因为人类有十根手指,所以十进制计数法,是目前使用范围最广泛的计数方式。
但在计算机中,只有 0 和 1 两个数,所以需要进行转换。
本文主要介绍一下十进制 整数 与二进制数的转换方法。
方法一
十进制整数转二进制时,可将十进制整数除以 2
(因为需转换为二进制数),得到余数,填入二进制低位,直至商为 0
时结束。
以 156
为例:
除数 | 被除数 | 余数 |
---|---|---|
2 | 156 | 0 |
78 |
将余数 0
填入二进制数的低位
- | - | - | - | - | - | - | 0 |
商不为...
查看全文「 SPRING 」 三月 14, 2021
如何给 Spring Boot 外挂 classpath?
文章字数 3.8k 阅读约需 3 mins.
假设使用 Spring Boot 开发了一个可使用不同数据库的应用,每个数据库的 jdbc 驱动包都不同,不想在 Fat Jar 中打入所有的数据库驱动 jar,又不想为每一个确定了具体数据库的场景都打一个对应的 Fat Jar 包,有没有优雅的方式来实现这个需求呢?
我们先来看下 Spring Boot 的 Fat Jar(Executable Jar)是如何运行的。
通常情况下,要启动一个 Spring Boot 应用,可通过如下方式:
$ java -jar example.jar
Spring...
查看全文「 SERVLET 」 十二月 27, 2020
Override same class
文章字数 7.5k 阅读约需 7 mins.
实际 Java Web 项目中经常会遇到这样的场景:希望对依赖的某个三方库中的行为进行覆盖式的定制(修改三方库中的某些行为),但并不希望发布定制的版本至私服。
通常在使用 WAR 包发布应用时,可将定制的类编译成 class 文件,放入 WEB-INF/classes
路径中,即可覆盖放置在 WEB-INF/lib
路径下的三方库中同名类,达到定制的目的。
那么为什么可以这样?
在两个相同的 class 必须都存在于 JAR 包中时,又怎么实现这种需求呢?
Servlet 规范
查看全文「 JAVA 」 十二月 06, 2020
如何确定装载了哪个类
文章字数 4.3k 阅读约需 4 mins.
某些时候,我们可能希望知道 ClassLoader 里到底装载的是哪个 class,比如当两个 jar 包中存在 package 和 Class 名完全相同的两个类时。
在 java 命令的帮助信息中,有如下内容(部分):
$ java -help
用法: java [-options] class [args...]
(执行类)
或 java [-options] -jar jarfile [args...]
(执行 jar 文件)
其中选项包括:
-d32 使用 32 位数据模型 (如果可用...
查看全文