开发工具分享
  • 首页
  • 计算科学
  • 文化旅游
  • 项目和网站
    • OSSEZ 计算技术
    • USRealEstate 社区
    • 地区文化
    • CWIKI.US
    • BUG.OSSEZ.COM
    • RSS.OSSEZ.COM
CWIKIUS.CN
一个有独立思考和温度的清新站
Computer Science

IntelliJ IDEA 的 Maven 如何设置自动下载源代码和文档

如果在你的 Maven 项目中,如果你使用了一个 jar,但是这个 jar 没有源代码。 IntelliJ IDEA 会先自动帮你反编译,然后提示你下载源代码。 你也可以设置自动下载源代码和文档。 自动下载源代码和文档 选择 IntelliJ IDEA 的设置。 快捷键是 Ctrl + Alt + S 然后你可以使用关键字 maven 搜索。 在搜索的结果中,选择 importing,然后选择自动下载的选项。     然后 OK 退出就可以了。 如何在项目中下载 如果你没有下载过所有的源代码的话,你可以在项目中下载。 在你的 Maven 项目中的右侧 Maven 选项。 选择你需要下载的包,然后右键可以选择下载源代码和文档。     当然,你也可以在界面的上端,直接一次全部下载。 你可以在需要下载的包上先进行选择,然后单击上部的全部下载源代码和文档。     如何查看文档 选择你需要查看的类,或者方法。然后使用快捷键 Ctrl + Q。这个将会弹出一个文档的界面。     如果你已经选择下载了文档和源代码的话。 那么在弹出文档对话框的最下面有一个链接,单击这个链接就可以在浏览器上查看 API 文档了。     请参考下图,是从浏览器中打开的 API 文档。     如何查看源代码 要查看源代码就非常简单了,你可以按住 Ctrl 键,然后按鼠标右键就可以查看类的源代码了。 如果你的源代码已经下载了那么 IntelliJ IDEA 是不会在编辑器的最上面提示你重新下载的。 如果你觉得源代码过期了或者需要更新,你可以主动到你本地 Maven 的仓库中删除老的就可以了。 https://www.ossez.com/t/intellij-idea-maven/586

2020年10月15日 0Comments 823Browse 0Like Read more
Computer Science

Spring 的 WebSecurityConfigurerAdapter 过滤器

你需要一个 WebSecurityConfigurerAdapter 来对用户提供安全的校验,确保用户能够访问必要的资源。 一个基于 Spring Boot 的应用程序将会帮你完成安全的校验(通过在 HTTP 的基础授权上添加自己的 WebSecurityConfigurerAdapter)。 这个将会添加 过滤器链表的 Order = 0(这个是默认配置),同时将会保护所有的资源,除非你能够提供正确的配置。 注解 @EnableResourceServer 将会做同样的事情,但是过滤器链表的顺序默认是 Order = 3。 因此可以知道 WebSecurityConfigurerAdapter 和 ResourceServerConfigurerAdapter 都是Spring 使用的过滤器,用来对访问进行过滤的。 但是过滤的顺序是多少呢? WebSecurityConfigurerAdapter 的 @Order(100)     如果我们想让WebSecurityConfigurerAdapter比ResourceServerConfigurerAdapter优先级高的话,只需要让前者的@Order值比后者的@Order值更低就行了。 @EnableResourceServer 的注解的 Order 是 3     在spring 的体系里Order值越小优先级越高,所以ResourceServerConfigurerAdapter优先级比另外一个更高,他会优先处理,而WebSecurityConfigurerAdapter会失效。 所以,在不同在上面 2 个定义的过滤器上面,如果你加了注解,会影响过滤器的调用顺序。     比如说这个注解,因为添加到代码中了,所以这个过滤器会被先调用。 https://www.ossez.com/t/spring-websecurityconfigureradapter/585

2020年10月15日 0Comments 1007Browse 0Like Read more
Computer Science

Java NIO Path 接口

Java 路径接口是 Java NIO 2 更新的一部分,Java NIO 在 Java 6 和 Java 7 中接收 Java 路径接口。 Java路径接口已添加到Java 7中的Java NIO。路径接口位于 java.nio.file 包中,所以Java Path接口的完全包名是 java.nio.file.Path。 java.io.File => java.nio.file.Path 可以考察下面的代码来对 Path 进行测试。 @Test public void getPathfromFile() { // Convert File to Path File file = new File("/home/cwikius/test/file.txt"); Path path = file.toPath(); assertNotNull(path); }     将 Path 转换为 File 请考察下面的代码,可以将 path 转换为文件。 @Test public void getPathToFile() { // Convert Path to File Path path = Paths.get("/home/cwikius/test/file.txt"); File file = path.toFile(); assertNotNull(file); } https://www.ossez.com/t/java-nio-path/584

2020年10月14日 0Comments 819Browse 0Like Read more
Computer Science

Joda-Time – 可用的时区列表

在我们对 Joda 日期对象进行转换的时候,我们需要将 joda 设置时区,这样才能针对不同的时区输出正确的日期格式。 时区的设置是在: logger.debug("dateTime for EST is - [{}]", dateTime.toDateTime(DateTimeZone.forID("America/New_York"))); 中的方法 DateTimeZone.forID 方法中进行设置的。 这个方法使用的参数是字符串,因此你需要定义你需要的字符串。 时区字符串 时区字符串从哪里来呢? 请参考下面的链接:https://www.joda.org/joda-time/timezones.html 可以参考的字符串可以从上面的链接中找到。 你也可以参考下面的表格,找到你需要设置的时区。   Standard Offset Canonical ID Aliases -12:00 Etc/GMT+12 -11:00 Etc/GMT+11 -11:00 Pacific/Midway -11:00 Pacific/Niue -11:00 Pacific/Pago_Pago Pacific/Samoa, US/Samoa -10:00 America/Adak America/Atka, US/Aleutian -10:00 Etc/GMT+10 -10:00 HST -10:00 Pacific/Honolulu Pacific/Johnston, US/Hawaii -10:00 Pacific/Rarotonga -10:00 Pacific/Tahiti -09:30 Pacific/Marquesas -09:00 America/Anchorage US/Alaska -09:00 America/Juneau -09:00 America/Metlakatla -09:00 America/Nome -09:00 America/Sitka -09:00 America/Yakutat -09:00 Etc/GMT+9 -09:00 Pacific/Gambier -08:00 America/Dawson -08:00 America/Los_Angeles US/Pacific, US/Pacific-New -08:00 America/Tijuana America/Ensenada, America/Santa_Isabel, Mexico/BajaNorte -08:00 America/Vancouver Canada/Pacific -08:00 America/Whitehorse Canada/Yukon -08:00 Etc/GMT+8 -08:00 PST8PDT -08:00 Pacific/Pitcairn -07:00 America/Boise -07:00 America/Cambridge_Bay -07:00 America/Chihuahua -07:00 America/Creston -07:00 America/Dawson_Creek -07:00 America/Denver America/Shiprock, Navajo, US/Mountain -07:00 America/Edmonton Canada/Mountain -07:00 America/Fort_Nelson -07:00 America/Hermosillo -07:00 America/Inuvik -07:00 America/Mazatlan Mexico/BajaSur -07:00 America/Ojinaga -07:00 America/Phoenix US/Arizona -07:00 America/Yellowknife -07:00 Etc/GMT+7 -07:00 MST -07:00 MST7MDT -06:00 America/Bahia_Banderas -06:00 America/Belize -06:00 America/Chicago US/Central -06:00 America/Costa_Rica -06:00 America/El_Salvador -06:00 America/Guatemala -06:00 America/Indiana/Knox America/Knox_IN, US/Indiana-Starke -06:00 America/Indiana/Tell_City -06:00 America/Managua -06:00 America/Matamoros -06:00 America/Menominee -06:00 America/Merida -06:00 America/Mexico_City Mexico/General -06:00 America/Monterrey -06:00 America/North_Dakota/Beulah -06:00 America/North_Dakota/Center -06:00 America/North_Dakota/New_Salem -06:00 America/Rainy_River -06:00 America/Rankin_Inlet -06:00 America/Regina Canada/Saskatchewan -06:00 America/Resolute -06:00 America/Swift_Current -06:00 America/Tegucigalpa -06:00 America/Winnipeg Canada/Central -06:00 CST6CDT -06:00 Etc/GMT+6 -06:00 Pacific/Easter Chile/EasterIsland -06:00 Pacific/Galapagos -05:00 America/Atikokan America/Coral_Harbour -05:00 America/Bogota -05:00 America/Cancun -05:00 America/Cayman -05:00 America/Detroit US/Michigan -05:00 America/Eirunepe -05:00 America/Grand_Turk -05:00 America/Guayaquil -05:00 America/Havana Cuba -05:00 America/Indiana/Indianapolis America/Fort_Wayne, America/Indianapolis, US/East-Indiana -05:00 America/Indiana/Marengo -05:00 America/Indiana/Petersburg -05:00 America/Indiana/Vevay -05:00 America/Indiana/Vincennes -05:00 America/Indiana/Winamac -05:00 America/Iqaluit -05:00 America/Jamaica Jamaica -05:00 America/Kentucky/Louisville America/Louisville -05:00 America/Kentucky/Monticello -05:00 America/Lima -05:00 America/Nassau -05:00 America/New_York US/Eastern -05:00 America/Nipigon -05:00 America/Panama -05:00 America/Pangnirtung…

2020年10月13日 0Comments 536Browse 0Like Read more
Computer Science

JWT 如何解码和获得令牌失效的日期

如果你有一个 JWT 的字符串。 你在使用 JWT 的时候可能希望了解 JWT 这个令牌过期的时间。你可以对 JWT进行解码,解码的网站是 JWT 的官网 。 访问上面的网站,然后将你的 JWT 字符串拷贝到需要解码的字符串上,然后对字符串进行解码。     在解码的对象后,你会看到 exp。 上面的 exp 就是JWT 过期的日期。 JWT 的 exp 是一个数字的组合,这是因为这个字符串使用的是 Unix 的时间。 1970年, Unix正式诞生,在第一版《Unix Programmer’s Manual》中把“1971年11月3日”定义为“自1970年1月1日0時0分0秒以来以1/60秒为单位的时间”。此后,这个定义由于可定义的时间范围,时区,闰秒等问题被重新定义。 可以使用下面的方法,将 Unix 时间戳,转换为可以识别的日期对象。 /** * Format Unix Time UTC TimeZone to EST Time * * @throws Exception */ @Test public void unixTimeStampTest() throws Exception { DateTime dateTime = new DateTime(1602516354 * 1000L, DateTimeZone.UTC); logger.debug("dateTime for EST is - [{}]", dateTime.toDateTime(DateTimeZone.forID("America/New_York"))); } 运行上面的代码,将会输出为: 2020-10-12 16:06:31.858 DEBUG --- [ main] com.insight.sco.service.test.UtilTest : dateTime for EST is - [2020-10-12T11:25:54.000-04:00] 上面的时间是将时间转换为美国东部时间。   https://www.ossez.com/t/jwt/580

2020年10月13日 0Comments 975Browse 0Like Read more
Computer Science

Junit-jupiter-api 和 junit-jupiter-engine 的区别是什么

我们都知道 JUnit 是用于进行单元测试的。但是 Junit 5 和 Junit 4 的区别比较大。 很多时候你可能会遇到 Junit 引擎配置错误导致测试无法进行。 junit-jupiter-api JUnit 5 Jupiter API 的测试,你需要使用这个 API 来写测试和进行扩展。 junit-jupiter-engine JUnit 5 的测试引擎,从 Junit 5 开始,Junit 使用 jupiter 来作为测试引擎。在运行时(runtime)的时候,你需要使用这个引擎来进行测试。 junit-vintage-engine 针对 Junit 5 以下的版本,包括 Junit 4 和 3,Junit 使用的是 vintage 测试引擎。 如果你的测试使用的是 Junit 4 的代码进行编写的话,那么你需要 Junit 4 的测试引擎。 总结 你需要 junit-jupiter-api 和 junit-jupiter-engine 来在 Junit 5 中书写和运行测试。 因此,你需要在你的 POM 中定义上面 2 个 Package。     针对老的 JUnit 4 的的项目,你需要将 junit-jupiter-engine 引擎替换为 junit-vintage-engine 引擎才能够让你的测试正式跑起来。 https://www.ossez.com/t/junit-jupiter-api-junit-jupiter-engine/579

2020年10月12日 0Comments 710Browse 0Like Read more
Computer Science

Maven 依赖中的 dependencies 和 dependencyManagement

有时候我们对 dependencies 和 dependencyManagement 可能会有点晕。 我们简单来说这个就常考虑在 parent pom 中定义的情况。 简单来说就是 dependencyManagement 管版本,dependencies 管依赖。 dependencies 所有在 dependencies 中定义的依赖都会被在子项目中自动引入,并被子项目继承。 dependencyManagement dependencyManagement 提供的是版本号的管理方式。 举个常用的例子: 如果我们在 parent pom 中定义了: <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter-engine</artifactId> <version>5.6.1</version> <scope>test</scope> </dependency> 那么在子 pom 中,就不需要重新定义 <artifactId>junit-jupiter-engine</artifactId> 的版本号了,子项目会到父项目中去找 junit-jupiter-engine 的版本号。当然你也可以在子项目中定义 junit-jupiter-engine 的版本号。 这个允许你来选择与父版本不同的版本号。     区别和使用 如果你想定义一个 jar 或者 Package 在所有子项目都使用的话,你需要使用 dependencies 来进行定义。这样所有你在 dependencies 中定义的 Package 将会自动被导入到子项目中。 dependencyManagement 只是声明依赖,并不实际导入 Package。所以在 dependencyManagement 中声明的 Package 还必须在子项目中再声明一次。 https://www.ossez.com/t/maven-dependencies-dependencymanagement/578

2020年10月12日 0Comments 982Browse 0Like Read more
Computer Science

Discourse 对发布的内容没有办法进行编辑

按照 Discourse 的快捷键来说,你可以使用键盘上的 e 来对发布的内容进行编辑。     但你会发现不管你怎么用鼠标选择都没有办法编辑,哪怕是把你的鼠标放到要编辑的主题上面。 ##原因和解决 出现上面情况的原因是 Discourse 不知道你选择了那个主题,不知道你要对那个主题进行编辑。 你需要使用键盘上的 K / J 键先对主题进行导航和选择。     当主题被选择后,会在左侧显示为红色,然后你就可以使用快捷键 e 对选择的主题进行编辑了。 https://www.ossez.com/t/discourse/575/2

2020年10月11日 0Comments 597Browse 0Like Read more
Computer Science

Jackson 的 JsonManagedReference 和 JsonBackReference 注解

在 Hibernate 或者 ORM 映射中,我们可能会存在 1 对多的情况。 在这个时候,如果你使用 Jackson 将对象序列化的时候,就会出现双向引用导致的无限递归(infinite recursion)的情况。 @JsonManagedReference 和 @JsonBackReference 注解就是为了避免这个双向引用的情况。 @JsonBackReference 和 @JsonManagedReference:这两个标注通常配对使用,通常用在父子关系中。 假设我们有 2 个对象。 一个对象是 QIndex 和 QTitle 一个 QIndex 可能对应有多个 QTitle。 那么在 JPA 中的对应关系的 QIndex 应该定义为: @OneToMany(mappedBy = "qIndex", cascade = CascadeType.ALL, orphanRemoval = true) @OrderBy("questionNumber ASC") @JsonManagedReference private List<QTitle> qTitleList = new ArrayList<>(); 在 JPA 的 QTitle 中应该定义为: @ManyToOne() @JsonBackReference private QIndex qIndex; 在序列化的时候,@JsonManagedReference 注解的属性则会被序列化,@JsonBackReference 的注解将会被忽略。 @JsonManagedReference 注解,通常说明这个字段是一个双向引用的字段,这个字段在这个双向引用中的角色为 “父”,与这个字段对应的引用需要注解为 @JsonBackReference。 @JsonBackReference 注解,通常说明这个字段是关联的一个双向引用字段,这个字段在这个双向引用的角色是 “孩子”。这个字段的值只能是对象(Bean),不能是 集合(Collection),图(Map),数组(Array)和枚举类型(enumeration)。 总结 @JsonManagedReference 和 @JsonBackReference 总是成对出现的 @JsonManagedReference 定义在父级角色 @JsonBackReference 定义在孩子级角色 @JsonBackReference 不能使用任何集合和数组等多的数据结构     有了上面的解释,应该比较容易的理解为了避免双向引用导致无限递归而出现的问题的。 https://www.ossez.com/t/jackson-jsonmanagedreference-jsonbackreference/574  

2020年10月11日 0Comments 977Browse 0Like Read more
Computer Science

CentOS 8 Apache 安装后 SSL 重定向提示证书错误

在启用 SSL 后,我们也希望将主域名重定向到 www。 希望实现的操作是,当用户访问 https://cwikius.cn 的时候,浏览器应该能够自动重定向到 https://www.cwikius.cn。 如果我们按照 80 端口的 http 配置的,你可能会得到浏览器的安全配置。 比如说,我们最开始的配置是: # --- CWIKIUS.CN --- <VirtualHost *:443> ServerName cwikius.cn Redirect 301 / https://www.cwikius.cn/ </VirtualHost> 当我们访问的时候,浏览器会提示连接的 SSL 问题。     原因和解决 这是因为如果你在 HTTPS 的 SSL 中也这样配置是不允许的。因为这个可能会导致安全性问题和攻击。 在 HTTPS 建立连接之前,浏览器会首先校验你的证书,如果你的证书有问题,或者没有配置,浏览器是不会给你重定向。 因此你需要修改上面的参数配置为: # --- CWIKIUS.CN --- <VirtualHost *:443> ServerName cwikius.cn SSLEngine on SSLProtocol ALL -SSLv2 -SSLv3 SSLCertificateFile 证书存储的绝对路径 SSLCertificateKeyFile 证书存储的绝对路径 SSLCertificateChainFile 证书存储的绝对路径 Redirect 301 / https://www.cwikius.cn/ </VirtualHost> 通过上面的配置,你的 HTTPD 和浏览器在校验证书完成后给你的访问重定向了。     简单来说,出现这个问题的原因就是 SSL 必须在校验证书完成后才能进行下一步的操作,不管是重定向还是访问网站。 https://www.ossez.com/t/centos-8-apache-ssl/573

2020年10月10日 0Comments 752Browse 0Like Read more
1…179180181182183…304
Archives
  • June 2026
  • May 2026
  • April 2026
  • March 2026
  • February 2026
  • January 2026
  • December 2025
  • November 2025
  • October 2025
  • September 2025
  • August 2025
  • July 2025
  • June 2025
  • May 2025
  • April 2025
  • March 2025
  • February 2025
  • January 2025
  • December 2024
  • November 2024
  • October 2024
  • September 2024
  • August 2024
  • July 2024
  • June 2024
  • May 2024
  • April 2024
  • March 2024
  • February 2024
  • January 2024
  • December 2023
  • November 2023
  • October 2023
  • September 2023
  • August 2023
  • July 2023
  • June 2023
  • May 2023
  • April 2023
  • December 2022
  • November 2022
  • October 2022
  • September 2022
  • August 2022
  • May 2022
  • April 2022
  • March 2022
  • February 2022
  • January 2022
  • December 2021
  • November 2021
  • October 2021
  • September 2021
  • August 2021
  • July 2021
  • June 2021
  • May 2021
  • April 2021
  • March 2021
  • February 2021
  • January 2021
  • December 2020
  • November 2020
  • October 2020
  • September 2020
  • August 2020
  • July 2020
  • June 2020
  • May 2020
  • April 2020
  • March 2020
  • February 2020
  • January 2020
  • December 2019
  • November 2019
  • October 2019
  • September 2019
  • August 2019
  • July 2019
  • June 2019
  • May 2019
  • April 2019
  • March 2019
  • February 2019
  • January 2019
  • December 2018
  • November 2018
  • October 2018
  • September 2018
  • August 2018
  • July 2018
  • June 2018
  • May 2018
  • April 2018
  • March 2018
Categories
  • Computer Science (2,369)
    • Confluence (663)
    • Gradle (12)
  • U.S. (524)
  • 文化旅游 (146)

COPYRIGHT © 2020 CWIKIUS. ALL RIGHTS RESERVED.

THEME KRATOS MADE BY VTROIS

湘ICP备2020018253号-1