08 2022 档案
摘要:Spring 的项目严重依赖注解。 @Repository 注解 在Spring2.0之前的版本中,@Repository注解可以标记在任何的类上,用来表明该类是用来执行与数据库相关的操作(即dao对象),并支持自动处理数据库操作产生的异常 在Spring2.5版本中,引入了更多的Spring类注解
阅读全文
摘要:大家都知道 Spring 严重依赖注解。 实际开发的时候,我们用得最多的可能就是下面几个注解了。 注解用途 @Component 最最普通的注解,表示这个类可以被注入到 Spring 容器中 。 @Repository 用于数据持久层,有关数据库的操作用这个就没错了。 @Service 用于业务逻辑
阅读全文
摘要:最近应该项目的需要,需要使用一个工具类来访问数据库。 但是这个工具类又被定义成静态访问了。 我们也需要设置一个静态变量来访问数据库。 @Autowired private static VisaRepository visaRepository; private static VisaCheckee
阅读全文
摘要:错误信息如下: java.lang.NullPointerException at com.usvisatrack.common.data.tests.jpa.UserRepositoryTest.testInsert(UserRepositoryTest.java:57) at java.base
阅读全文
摘要:@DataJpaTest 这个注解主要用来在 Spring 项目中测试 JPA 数据源。 默认情况下,带有 @DataJpaTest 注解的测试使用嵌入式内存数据库。 因此 @DataJpaTest 这个注解还是有点坑的。 默认数据库 默认采用的是嵌入的 H2 数据库。 就算你配置了数据库链接,如果
阅读全文
摘要:提示的错误信息为: Caused by: java.lang.IllegalArgumentException: LoggerFactory is not a Logback LoggerContext but Logback is on the classpath. Either remove L
阅读全文
摘要:启动 Spring 项目的时候提示下面的错误信息: Exception in thread "main" java.lang.IllegalArgumentException: Cannot instantiate interface org.springframework.context.Appl
阅读全文
摘要:在本文章中,我们将会解决在 Spring Boot 运行测试的时候,得到 NoSuchMethodError 和 NoClassDefFoundError 的 JUnit 错误。 这个错误的原因,通常是因为我们的系统中有 2 个不同的 JUnit 版本,在运行的时候 JUnit 不知道使用哪个版本来
阅读全文
摘要:首先需要确定的是你的系统中已经安装了 JDK 可以输入 java -version 命令进行查看。 然后可以通过项目的配置 JDK 进行查看。 更换 JDK 版本 选择上面的添加 JDK 版本,然后选择 IBM Semeru 在你本地计算机上的安装路径即可。 可以看到添加的版本为 IBM-11 的版
阅读全文
摘要:可以访问:IBM Developer 来下载。 在界面中,选择你需要的版本和操作系统。 semeru 有认证版和非认证版,主要是因为和 OpenJ9 的关系和操作系统的关系而使用不同的许可证罢了,本质代码是一样的。 在 Windows 下没有认证版,直接下开源版就行。 可以下载 msi 包,让安装程
阅读全文
摘要:自从 Oracle 收购 Sun 以后,Java 世界也变了不少。 好在 Oracle 还开源了个 OpenJDK,并且很多东西都变了。 OpenJDK 就是一个桶,什么都可以往里面装,各大公司又纷纷推出自己的 JDK,简直可以直呼看不懂。 OpenJDK 在 Windows 环境下的诟病就是不好装
阅读全文
摘要:OpenJ9 简单来说就是 JVM 的其中一个开源版本。 如果你默认安装的是使用 Oracle 的话,那么跑不了会看到一个 HotSpot,这个就是 Oracle 使用的版本。 这个 JVM 版本是从 SUN 系统开始就使用的版本。 Java 在开源的时候因为这个 JVM 版本有些内容是不开源的,所
阅读全文
摘要:大部分情况下我们都使用这几个修饰来修饰方法。 当然对类来说,相信大部分都默认使用 Public,大部分人都不去纠结。 Public: 简单来说就是谁都可以访问,你写个类除了特殊要求,当然都是希望大部分人用的。 Private:私有。 除了class自己之外,任何人都不可直接使用。简单来说就是一个方法
阅读全文
摘要:当项目比较多的时候,我们可能需要经常的打开和关闭一些项目。 不幸的是 IntelliJ IDEA 没有提供打开近期项目的快捷键。 当然,我们是可以通过文件中的设置来打开的。 同时你也可以指定一个快捷键。 根据每个人的使用习惯不一样,如果想多敲下字的话,可以使用 cmd + shift + a (Ma
阅读全文
摘要:回车换行问题 在不同操作系统中对回车换行的定义是不一样的。 Windows 的回车换行是 2 个字符,对应的是回车+换行,写法就是我们常用的 \r\n Unix 系统下对这个回车换行进行了简化,变成了使用 \n 来表示。 这里就出现了一个问题,对应不同的操作系统,同样的文本,如果只用 \n 的话,
阅读全文
摘要:在 Edge 中,可以通过拖动标签来对标签进行分组。 这个功能在有很多标签的时候还是比较实用,最好还是不要在浏览器中保留过多标签。 首先,打开新版Edge浏览器,在地址栏处输入“edge://flags”并访问 接着,在“实验”页面中,在搜索栏输入并搜索“Tab Groups”,并将下方三项都设置为
阅读全文
摘要:Discourse 提供了一个关闭主题的功能。 简单的来说就是如果一个主题长期不用或者时间过长了,DIscourse 可以进行关闭。 关闭这个主题可以是自动的,也可以是手动的。 这个关闭主题主要是对级别不高的用户有影响,当用户级别不高,主题被关闭后,用户就没有办法进行回复了。 对高级别用户,这个功能
阅读全文
摘要:在本文中,我们来说说 Java 的多行字符串(multiline strings )。 从 JDK 15 开始,Java 提供了一个称为 Text Blocks 的语法,你可以在代码中直接使用这个功能,如果你安装这个版本的 JDK 的话,那么需要使用一些特定方法实现这个目标。 在本文中,我们还讨论使
阅读全文
摘要:这个问题是编译时错误,在 Java 的运行时没有这个限制。 当我们在 Java 编译器中输入的变量值超过 64 KB 的话,Java 编译器是不会让编译通过的,你将会得到一个 constant string too long” error from the compiler 错误。 在本文中,我们将
阅读全文
摘要:Discourse 使用一段时间以后会发现硬盘空间占用非常多。 主要是因为 Docker Image 的问题,如果升级次数越多,空间占用越多。 运行下面的命令: ./launcher cleanup 能够帮助你清理 Discourse 占用的空间。 如下面代码所示: [root@WWW discou
阅读全文
摘要:这个问题应该是所有使用过 Java 第一课的人都会告诉你不要使用通配符导入。 主要问题 主要的问题是它使你的本地命名空间变得混乱。 用最简单的说法就是 Date 这个对象,你可能在 java.sql.Date 和 java.util.Date 都会有这个对象。 如果你使用通配符导入的话,就完全不知道
阅读全文
摘要:很多开发过 Java 的小朋友都有一个定义就是不导入 * 但 IDEA 自动导入的配置中的默认选项是通配符导入( wildcard imports)。 在默认情况下,如果同一个包中的类导入超过 5 个,IDEA 默认配置将会使用通配符 * 导入。 这个默认配置是可以修改的。 如上图的配置界面,默认为
阅读全文
摘要:最近在编译 GRPC 的时候遇到了一个奇怪的问题,提示没有找到 GRPC 编译上使用的编译器。 主要原因就是 Java 使用的 Maven 插件将新的 Apple 操作系统识别成了 protoc-3.11.4-osx-aarch_64.exe。 如果你的 GRPC 使用插件的版本不够的话,这个可执行
阅读全文