
Java
文章平均质量分 58
HoneyMoose
这个作者很懒,什么都没留下…
展开
-
Windows 10 中的 Py 和 python 命令行
在 Python 环境变量的设置中。我们可以通过输入 python 访问 python 的命令,但是在输入 py 的时候却得到了命令不能识别的错误。如下图所示的内容:问题和解决在解决这个问题之前,我们需要了解下 Python 中 python 的命令和 py 的命令有什么不同。Python可以这样解释的是 Python 就是 Python 环境的命令,如果你需要运行 Python 程序,那么你必须要安装 Python 解释器。想象的是,当我们的系统中有安装多个版本..原创 2021-03-05 00:31:16 · 1489 阅读 · 1 评论 -
Discourse 发送邀请邮件不能发送
尝试使用 Discourse 的邀请功能来发送邮件。但是发送邮件显示成功了,实际上这些邮件并没有发送出去。例如,下图显示邮件已经发送成功了。但是通过发送邮件的记录查看后,发现邮件并没有发送出去。从上图可以看到邮件发送的记录是空的。问题和解答通过对官方的提交问题后寻求答案后得知。官方提示需要将 disable emails 设置为 NO 才可以。通过修改上面的配置,再次测试后发现已经能够正常发送邀请电子邮件了。...原创 2021-03-04 11:45:28 · 605 阅读 · 1 评论 -
千万级别的数据量如何设计导出
我们平台最近有个需求需要查询每天的业务日志,然后也有导出功能。每天业务量数据很大。每天都好几千万的数据。问题分析首先你这日志存哪里呀?文件系统还是数据库表,还是 NoSQL,存的位置不一样处理方式不一样。另外你的数据结构是怎么样的,是简单的数据结构,还是复杂结构,字段是不是很多。假设你数据就在数据库中,查询的结果返回多少的数据?如果就返回几万,可以考虑转换为 CSV 文件,CSV 文件 Excel 是可以打开的,而且 Excel 也有打开限制,记录太多了 Excel 也会..原创 2021-02-28 21:15:26 · 1083 阅读 · 0 评论 -
计算机相关技术需求还将继续扩大
计算机是具备数据存储、修改功能,并实现对相关逻辑与数据的计算,是现代化智能电子设备。计算机干得最多的就是从存储中获得数据,进行计算,返回结果(重新存储或者展示)。工具计算机就是工具,现代信息技术的基础就是计算机。计算机本身就是一个系统工程,软件开发只是在计算机基础上的应用罢了,语言就是开发这些应用的工具。只要有信息化的需求,那么就有计算机存在的地方,有计算机存在的地方就有需要为开发一些东西能够更快的实现信息交换和处理。历来我们都是注重应用多,少关注基础,导致很多人认为..原创 2021-02-26 23:48:27 · 269 阅读 · 0 评论 -
Java 为什么都推荐下载 JDK 8 或 11
相信我,很多公司在从 1.4 升级到 8 的时候都哭晕在厕所里过。历史问题JDK 的选择有很多历史遗留问题。很多公司甚至银行现在还在用 1.2 和 1.4。这是因为在很多 JAR 的开发历史中,已经没有办法维护已经编译好的 jar 的,老的源代码可能也没有办法用新 JDK 编译。如果要将平台升级到 8,必须要求所有的老的 Jar 都要用 8 编译一次。在历史情况下,这种可能性很低,而且 Maven 平台也不是 2000 年就有了,在 2000 年的时候还有个 lib 目录的。随着现在 A原创 2021-02-26 22:48:23 · 775 阅读 · 0 评论 -
联想 usb-c 扩展坞不支持双支持 2560x1440 分辨率
联想 USB-C 扩展坞能不能支持 2560x1440 双屏吗?问题和解决计算机是使用 Intel 620 的显卡的,参考的文档上说的是能够支持双屏的 2560x1440 分辨率。但是实际使用 DP 接口后,发现第二个显示器的分辨率一直刷不上去,同时刷新率也只有 23 Hz。经过考古后发现,USB-C 在实际显示的时候因为带宽的限制,是没有办法支持双屏的 2560x1440 显示分辨率。https://www.ossez.com/t/usb-c-2560x1440/...原创 2021-02-21 04:23:39 · 1017 阅读 · 0 评论 -
Spring Data JPA 文档翻译的时候引用错误
在导入 Spring-Data-JPA 项目后对文档进行编译以便于中文化的时候,发现有一个导入数据的引用错误。错误的内容如上图。问题原因这是在 Spring-Data-JPA 文档的编写的时候引用了另外一个称为: spring-data-commons 的项目。你需要将 spring-data-commons 项目 Check 到本地。Check Out 的路径需要与 Spring-Data-JPA 相同。如下图所示:这是因为官方的文档引用了 spring-data.原创 2021-02-19 23:53:13 · 302 阅读 · 0 评论 -
Spring 和 Spring Boot
很多在开始的时候可能对 Spring 和 Spring boot 之间的关系可能有些混淆,在开始的时候如果能够对这 2 个概念有所了解的话,能够对后面的使用起到一些帮助作用。什么是 Spring可以理解 Spring 是一个框架。这个框架最早来源于在差不多的 20 年前的 2002 年。在那个时候 Java 世界的开发还是以 EJB 为主,因为在这之前的大部分应用都会使用服务器客户端的应用模式。其实这个模式在现在还是在使用的,例如 IBM 系统上的 AS400。在这个开发模式的基础上,你需要原创 2021-02-14 00:30:16 · 306 阅读 · 0 评论 -
AWS 不使用 region 和 zone 的服务有哪些
一般来说 AWS 的所有服务都需要指定 region 和 zone。只有一个服务是全局的,不需要指定 region 和 zone。这个服务就是 IAM什么是 IAMAWS Identity and Access Management (IAM) 是一种 Web 服务,可以帮助您安全地控制对 AWS 资源的访问。您可以使用 IAM 控制对哪个用户进行身份验证 (登录) 和授权 (具有权限) 以使用资源。当您首次创建 AWS 账户时,最初使用的是一个对账户中所有 AWS 服务和资源有完全访问权限原创 2021-02-10 06:05:58 · 457 阅读 · 0 评论 -
AWS 的全球基础设施和网络
AWS 使用全球基础设施和网络。在这里有 2 个概念需要了解下 region 和 zonesregionAWS 的所有服务都是使用 region 来进行区分的。需要注意的是不同 region 之间的数据和服务是不同的,比如说我们在美东地区常见的 US East (N. Virginia)us-east-1 和 US East (Ohio)us-east-2。上面 2 个分别为不同的 region,在 US East (Ohio)us-east-2 没有之前,我们绝大部分使用的是 US E原创 2021-02-10 04:21:51 · 842 阅读 · 0 评论 -
AWS 认证考试中提到的几种服务类型比较
在 AWS 认证考试中可能会考察几种服务类型。按照服务被管理的程度级别进行的区分为:On-Premises - IaaS - PaaS - SaaSOn-Premises就是传统的软件服务器架构。你将会管理所有类型的服务,包括网络等。IaaS相对 On-Premises 来说,将网络和基础架构部分让其他的服务商来进行管理。这种类型通常和我们说的服务器托管差不多。你可以将你的服务器托管到一些 IDC 中心,并由 IDC 来多网络,服务器,虚拟化等基础服务进行管理..原创 2021-02-10 00:33:41 · 494 阅读 · 2 评论 -
那个浏览器好用
浏览器都差不多的,不是崇洋媚外,只要你不用国产的都挺好。Edge,FireFox,Chrome 和手机上的Safari 都挺好。大部分人都不会用 F12 调试代码吧,所以都差不多,FireFox 和 Chrome 的自带调试功能挺好的,Edge 也不错,大概是因为都使用同一个内核吧。还是有点推荐你使用 FireFox,因为有 FireFox 的开源才让微软不再垄断,才有我们现在这么多选择。使用下 FireFox 也是对开源世界的支持。https://www.ossez.com..原创 2021-02-07 00:14:27 · 355 阅读 · 0 评论 -
群晖(Synology)NAS 升级硬盘扩展空间小记
经历过几次硬盘损坏完全丢失数据后,痛定思痛,在 2019 年的时候上了个 NAS。在上这个 NAS 的时候买了个 8 盘位的,顺便把手上的各种容量的硬盘都拿来装上了,所以硬盘的容量在 NAS 里面也是五花八门。这样的配置通常不能够将容量用到最大化,但是好歹比单盘的要保险多了。中途经历过一次硬盘损坏,换过一次硬盘升级过一次空间。最近又有一块从老台式机上的硬盘被替换下来了,所以想着替换掉 NAS 中容量比较小的 500G 的硬盘。扩充流程是:更换硬盘 扩充存储池 扩充卷必须要按照上原创 2021-02-05 21:40:52 · 6110 阅读 · 1 评论 -
IntelliJ IDEA 如何显示类的结构
在 IntelliJ IDEA 中可以通过快捷键和左侧的链接单击后查看当前类的方法结构。Windows 的快捷键是 Ctrl + F12当然,你还可以在编辑框中选择左侧的结构,同样也会显示方法的结构。单击左侧就能够显示结构了。通过显示类中方法的结构,我们就可以更加容易的在类中对方法进行搜索和查看。https://www.ossez.com/t/intellij-idea/13283...原创 2021-02-05 02:34:07 · 3130 阅读 · 0 评论 -
Java 线程安全 Thread-Safety
在 Java 的线程安全是老生常谈的问题。经常是各种写法说法一大堆,感觉很多的来源都是在面试的时候,很多考官都喜欢问线程安全的问题。起源这个问题的起源就是 Java 是支持多线程的。如果对进程和线程是什么不太清楚的话,可以恶补下大学课程《操作系统》。一般来说,JVM 是会以一个进程来运行,当进程启动后,会启动多个线程来提高 CPU 的利用率。如果是多线程的话,那会在访问同一个变量,同一个代码的的时候出现数据不同步的情况。简单来说对于一个变量 V,如果线程 TA 反问了,并且修改了,在这个原创 2021-02-04 08:39:29 · 383 阅读 · 0 评论 -
Gradle 比 Maven 好为什么用的人少
都是编译工具,各有各的优势。貌似常用的几个大项目都将构建移到了 Gradle,例如 Hibernate,Spring。相对来说也会增加不少 Gradle 的人气吧。因为不怎么调整编译,很多时候感觉都差不多,但是 Gradle 的学习曲线确实比 Maven 要陡峭一点点。可以说是成也萧何败也萧何,Gradle 就是因为灵活性比 Maven 要好,所以开发插件,提供新的功能就要比 Maven 要容易。同时 Gradle 也使用 Maven 的中央仓库,很多时候可以说是站在巨人的肩膀上面,在原创 2021-02-04 00:56:24 · 902 阅读 · 0 评论 -
Java 中 StringBuffer 线程安全的小介绍
因为最近在研究线程安全和相关的可变对象和不可变对象的内容。查看了下 StringBuffer 的源代码。StringBuffer 的官方解释是,一个线程安全可变序列的字符串。StringBuffer 与 String 是一样的,但是是线程安全的。你可以在任何时候会存储一些字符串。有关 StringBuffer 的长度和存储的字符串,你可以使用 StringBuffer 提供的一些方法来进行修改。StringBuffer 提供进行修改的这些方法是线程安全的。StringBuffer 为一些方法原创 2021-02-04 00:06:48 · 695 阅读 · 0 评论 -
一个程序员水平的高低
Happy Coding,好相处,无形之间解决麻烦。程序员的水平高低没有绝对值,有学习能力的高低,有发现问题能力的强弱。大部分人是知其然不知其所以然,这个和个人没有太大关系,因为语言部分的变化太快,概念太多。所以水平高低也只局限于在自己了解比较多的领域,很多人定义是给你一个语言,琢磨琢磨几个月能上手,写点代码,来点 debug,如果可以还能来点设计思路啥的,这就算不错了。程序员其实永远不要把自己定义为自己就是程序员,如果你自己觉得你自己就是写代码的,那你可能在某个代码领域水平很好..原创 2021-02-02 23:43:57 · 335 阅读 · 1 评论 -
Java 的 StringBuffer 和 StringBuilder 的不同
StringBuffer 和 StringBuilder 的存在是为了解决 String 对象的 immutable (不可变对象)的问题。因此 StringBuffer 和 StringBuilder 都是可变对象,但是它们之间还是有一点点不同的,主要是在线程安全上面。No. StringBuffer StringBuilder 1) StringBuffer is 是同步的 可以说 StringBuffer 是线程安全的。因此 2 个线程不能同时调用 Str..原创 2021-02-02 21:28:23 · 283 阅读 · 0 评论 -
Java 的 Mutable 和 Immutable 对象
Mutable object(可变对象) :当对象被创建后,你可以修改对象的状态以及字段。例如 StringBuilder, java.util.DateImmutable object (不可变对象):当对象被创建后,你不能修改对象的状态以及字段,例如包装类,如: Integer, Long,String 等。绕的地方当对象被创建后不能被改变?这个说法可能有点绕。其实说的是当对象被创建后就会一直在那里,如果你对对象进行调整,其实不是对老的对象的调整,其实等于你创建了一个新的对象,并对新的对原创 2021-02-02 21:27:06 · 388 阅读 · 0 评论 -
Spring @Autowired注解提示 Field injection is not recommended 警告
Field injection is not recommended 警告的主要原因是:使用变量的依赖注入不被推荐。 @Autowired private REListingRepository reListingRepository;可能很多人都会使用上面代码来进行依赖注入,因为上面的代码最简单,也是可以用的,但有时候你会遇到 IJ 的提示。原因和处理这个代码与 Spring 的 Autowired 3 种类注入依赖有关。变量注入上面的写法就是变量..原创 2021-02-02 03:26:03 · 955 阅读 · 0 评论 -
除了应付面试,程序员为什么要学习数据结构与算法
数据结构和算法是计算机处理信息的基础。抛开所有的东西都不看的话,计算机做的事情就是存储,然后计算。数据结构解决存储的问题,一些算法解决计算的问题,所以程序员必须要了解必须使用数据结构和算法。比如 Java 中的集合,链表,变量定义都是解决存储的问题,这个存储的定义不是硬件中的存储,而是存储在内存中的数据结构。你的方法也好,算法也好,必须要拿到数据才能计算,怎么算,这个就是算法。举个最简单的栗子,读取 CSV 文件,存入到数据库中。抽象来说就是先把 CSV 文件读取到内存中,存..原创 2021-01-30 20:41:34 · 889 阅读 · 0 评论 -
Java 如何删除 List 中的重复元素
我们知道在 Java 的 List 中是允许对象或者元素是重复的。不允许重复的集合,我们可以使用 set。在有时候,我们希望 List 集合中的内容是不重复的,所以我们需要对 List 进行一次去重。使用 Guava其实有多个办法来去重,相对简单实用点的可以使用 Guava。使用下面的这句话就可以了:List<String> townsName = FileUtils.readLines(new File("C:\\Users\\yhu\\Documents\\town原创 2021-01-30 05:21:51 · 416 阅读 · 0 评论 -
显示源代码及其子目录中的文件结构
有时候,我们希望在论坛或者 MD 文件中展示下文件夹的目录结构。在 windows 中,我们可以使用 tree 这个命令。在上面的命令中,我们可以查看当前目录,以及当前目录的所有子目录。连同文件显示如果你还想显示目录中的文件的话,你可以使用参数 /f需要执行的命令为: tree /f添加上面的参数后可以显示文件的内容。C:.├───main│ ├───java│ │ └───com│ │ └───ossez│...原创 2021-01-30 02:30:45 · 564 阅读 · 0 评论 -
显示源代码及其子目录中的文件结构
有时候,我们希望在论坛或者 MD 文件中展示下文件夹的目录结构。在 windows 中,我们可以使用 tree 这个命令。在上面的命令中,我们可以查看当前目录,以及当前目录的所有子目录。连同文件显示如果你还想显示目录中的文件的话,你可以使用参数 /f需要执行的命令为: tree /f添加上面的参数后可以显示文件的内容。C:.├───main│ ├───java│ │ └───com│ │ └───ossez│...原创 2021-01-30 01:12:34 · 398 阅读 · 0 评论 -
Spring 2.4.0 的测试引擎 junit-vintage
从 Spring Boot 2.4.0 的测试引擎已经使用 Junit 5 的测试了。因此测试引擎不再需要 exclude junit-vintage 到 Spring Boot 的测试依赖了。2.4.0 的测试实例应该使用下面的依赖配置: <!-- TESTS --> <dependency> <groupId>org.springframework.boot</groupId>原创 2021-01-29 03:47:37 · 527 阅读 · 0 评论 -
微软 clarity Beta 版本上线测试
微软推出了一项全新的分析服务,它就是能够帮助你深入了解“客户如何使用网站”的 Clarity 。对网站运营方来说,这项服务有助于找到问题并做出改进。此外,Clarity 允许站方重复推演客户的会话。访问的网站为:https://clarity.microsoft.com/当前已经是 Beta 版的测试了。Session Replay可能足以激起Web开发人员的好奇心,但微软对Clarity做的计划更有趣,名为“Interesting sessions”,此功能将使用Clarit...原创 2021-01-29 03:05:21 · 531 阅读 · 0 评论 -
Discourse 设置 GTM
随着网站的持续运行,我们可能需要在网站上面添加很多其他网站的标签来进行网站的校验。一个比较好的方法就是设置 GTM,这样能够让你所有的标签在一个地方设置而不需要在 Discourse 中安装插件等。GTM 是 Google Tag Manager 的简称。Discourse 设置 GTM在 Discourse 的后台中,搜索关键字 : gtm在空白的地方输入 GTM 的标签变量。这个变量是在你 Google 的 Google Tag Manager 设置的。访问...原创 2021-01-29 01:09:11 · 552 阅读 · 0 评论 -
Spring Boot API 的 x-www-form-urlencoded 提交
在使用 Sprint Boot 提交 x-www-form-urlencoded 的时候,我们首先需要知道 x-www-form-urlencoded 这个是什么东西。application/x-www-form-urlencoded这应该是最常见的 POST 提交数据的方式了。浏览器的原生 表单,如果不设置enctype属性,那么最终就会以 application/x-www-form-urlencoded 方式提交数据。就是浏览器将会将表单中的内容转换为 URL 的方式提交到后台进行处理..原创 2021-01-28 00:06:22 · 1314 阅读 · 0 评论 -
Spring Boot API 的 x-www-form-urlencoded 提交
在使用 Sprint Boot 提交 x-www-form-urlencoded 的时候,我们首先需要知道 x-www-form-urlencoded 这个是什么东西。application/x-www-form-urlencoded这应该是最常见的 POST 提交数据的方式了。浏览器的原生 表单,如果不设置enctype属性,那么最终就会以 application/x-www-form-urlencoded 方式提交数据。就是浏览器将会将表单中的内容转换为 URL 的方式提交到后台进行处理..原创 2021-01-27 23:57:50 · 2747 阅读 · 0 评论 -
Spring Boot API 的 Controller 如何获得发送的 JSON 数据
我们知道可以发送 JSON 数据到 API 上面。通常我们都会使用 POST 方法,在实际编程的时候我们应该如何获得发送的 JSON 数据呢?Controller 获得 JSON 数据在客户端通过 API 发送 JSON 数据到 Controller 的时候,我们可以在 Controller 使用 RequestBody 注解来获得 JSON 数据。考察下面的代码: /** * Search Question Index * * @return原创 2021-01-27 06:14:02 · 533 阅读 · 0 评论 -
Spring 发送 JSON 数据到 API 的时候提示 Unsupported Media Type 错误
在我们调试 API 的时候,我们可以向服务器发送 POST 数据。在 POST 数据的时候,我们可能会使用 JSON 为数据源,但是在发送后,我们得到下面的错误信息:{ "timestamp": 1611687768255, "status": 415, "error": "Unsupported Media Type", "message": "", "path": "/re/sold"}问题和解决办法出现这个错误的原因是你发送的数据是 J原创 2021-01-27 04:14:19 · 1304 阅读 · 0 评论 -
Spring Boot 在升级到 2.4 的时候 EnableResourceServer 提示将会丢弃
在升级 Spring Boot 从 2.3.3 到 2.4 的时候提示:@EnableResourceServer将会被丢弃。@EnableResourceServer 开启资源服务配置,会配置资源服务相关的安全配置。一个资源服务(可以和授权服务在同一个应用中,当然也可以分离开成为两个不同的应用程序)提供一些受token令牌保护的资源,Spring OAuth提供者是通过Spring Security authentication filter 即验证过滤器来实现的保护,你可以通过 @En原创 2021-01-26 04:27:56 · 2852 阅读 · 0 评论 -
Spring Boot 测试错误 SQLFeatureNotSupported
提示的错误信息如下:Caused by: java.sql.SQLFeatureNotSupportedException问题和解决不知道为什么一直提示上面的错误。return useCredentials ? dataSource.getConnection( user, pass ) : dataSource.getConnection();因为上面的这句话 dataSource.getConnection( user, pass ) 在给出用户名和密码的时候提..原创 2021-01-26 03:13:28 · 2569 阅读 · 0 评论 -
Spring Boot 进行测试提示 TestContextAnnotationUtils 错误
在 Spring Boot 运行测试的时候提示错误:java.lang.NoClassDefFoundError: org/springframework/test/context/TestContextAnnotationUtils问题和解决办法出现上面的问题是因为我们将 Spring Boot 从版本 2.3.3 升级到了 2.4在依赖 spring-test 中,我们还是定义 5.2.8.RELEASE 了这个版本。<dependency>原创 2021-01-26 02:28:25 · 9006 阅读 · 2 评论 -
Spring Data 测试数据查询测试的时候提示 hibernate.dialect
在使用 Spring Data 测试进行数据查询的时候提示错误:Caused by: org.hibernate.HibernateException: Access to DialectResolutionInfo cannot be null when 'hibernate.dialect' not set问题和解决一般来说这个问题的出现是在你的 Spring Boot 项目中的 application.properties 没有设置spring.jpa.databa..原创 2021-01-24 23:22:26 · 561 阅读 · 0 评论 -
Spring Boot 测试的一个小调试
我们有一个测试方法:@Test public void testGetREListing() throws IOException, InterruptedException { logger.debug("{}", listingService.getREListingById()); }这个测试方法的目的是从数据库中查询一条表的记录,然后返回结果。在运行测试的时候,我们得到一个错误是:java.lang.NullPointerException原创 2021-01-24 20:58:45 · 492 阅读 · 0 评论 -
@DataJpaTest 注解测试提示错误 Wrong user name or password
提示的错误信息如下:Caused by: org.h2.jdbc.JdbcSQLInvalidAuthorizationSpecException: Wrong user name or password [28000-200] at org.h2.message.DbException.getJdbcSQLException(DbException.java:461) at org.h2.message.DbException.getJdbcSQLException(DbException.ja原创 2021-01-23 06:32:58 · 894 阅读 · 1 评论 -
@DataJpaTest 注解测试提示 No ServletContext set 错误
错误日志如下:Caused by: java.lang.IllegalStateException: No ServletContext set at org.springframework.util.Assert.state(Assert.java:76) at org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport.resourceHandlerMapping(WebMvcConfiguratio原创 2021-01-23 06:32:12 · 746 阅读 · 0 评论 -
Discourse 如何查看主题的查看数量
在默认的界面中,Discourse 将会按照下面的方式进行显示主题和回复的时间。显示的内容不是非常多,让人有点迷糊,其实这也是 Discourse 简约化显示的表现。如果你希望了解更详细的内容,你需要将鼠标放到时间上,上面的时间将会显示发布的具体的时间,包括是几点钟发布的。在进入主题或者回复的具体页面后,将鼠标移动到时间上,你也可以看到当前主题发布的具体时间。简单来说,Discourse 的设计逻辑就是将鼠标移动到特定的位置后才能查看时间有关的详细信息。h...原创 2021-01-20 22:55:58 · 290 阅读 · 0 评论