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

Spring 数据初始化的时候没有执行 SQL

Spring Boot 项目在启动的时候可以对 H2 中的数据库进行初始化。 一般来说我们会定义下面的参数: spring.datasource.data=classpath:h2-data.sql 但是在 Spring Boot 项目运行以后,我们通过 H2 的控制台查看数据库的时候,发现 SQL 脚本没有执行。 问题原因和解决 我们都知道 Spring 数据库有下面 2 个配置参数:spring.datasource.schema 和 spring.datasource.data。 spring.datasource.schema 中定义的是数据库执行脚本,包括创建数据库表和关系等 DDL 脚本。 Spring 中这里有个小坑,如果在配置参数中不定义 spring.datasource.schema, 而直接spring.datasource.data 定义的话,spring.datasource.data 中定义的脚本是不会执行的。 因此你需要先定义 spring.datasource.schema,可以做的是: 在 resources 文件夹中定义一个空的 schema.sql 文件。 将所有的创建数据库脚本和插入数据的脚本放到 spring.datasource.schema 中定义     然后通过控制台可以查看根据数据库创建脚本创建的数据库表。   https://www.ossez.com/t/spring-sql/603

2020年10月22日 0Comments 847Browse 0Like Read more
Computer Science

Discourse 邮件被垃圾的检查程序

Discourse 高度依赖电子邮件,但是在很多时候你的网站可能也会因为发送的邮件频率过高而被邮件收件箱定义为垃圾邮件。 使用第三方的邮件发送工具能够有效的帮你解决这些问题,但如何检查你邮件发送后被垃圾的情况,从而做出调整让你的系统保持在正常并且健康的状态? MailGun 给的一个工具 首先声明,我们不是利益相关,我们只是单独觉得这个工具还挺好,所以推荐给大家。 这个工具的来源是我们使用的一个邮件服务商推荐的。网址是:https://www.mail-tester.com/ 你可用通过使用 Discourse 发送一个测试邮件到他们提供的地址,然后 mail-tester 这个网站将会根据你发送邮件的状况告诉你还有什么需要改进的地方,并且给出评分。 发送测试邮件 你并不需要注册才能使用他们的服务,在访问他们的地址后,他们会给出一个邮件地址,如下图所示: 拷贝上面的邮件地址,并且保存。 然后进入 Discourse 后台,然后选择 Emails(电子邮件)标签页。 在这个标签页下面有一个输入框,在输入框中,输入邮件测试网站提供给你的电子邮件地址,然后单击按钮发送。 在你单击按钮发送后,你会看到一个提示发送已经成功的标志。 检查结果 在邮件发送成功后,返回到邮件测试网站的页面中,然后单击页面下方的检查你的邮件成绩。 对方的系统会根据你的邮件发送情况,邮件信息分析出你的情况,并且给出你需要改进的地方。 结果如下图: 通过上面的配置和运行,你就应该能对你当前系统中有关邮件配置的情况有所了解并作出必要的改进。   https://www.ossez.com/t/discourse/602

2020年10月22日 0Comments 745Browse 0Like Read more
文化旅游

新罕布什尔州的怀特山(White Mountains)

新罕布什尔州的 White Mountains 经常被称为白山,不知道是翻译的问题还是其他的问题。 反而白山的翻译显得比 怀特山 更加容易让人接受和理解。 山上充满各种景点。开车上山,周围美丽的风景令人愉快。 乘坐慢慢的火车沿着康威风景铁路和华盛顿山齿轮铁路游览,乘坐加农山空中缆车和龙山天际缆车冲上山顶,再向下走到极地洞穴公园和福鲁姆峡谷,还可以去阿迪塔什滑雪度假村和夏季游乐场。 冬天和夏天都有很多户外活动,白山一整年都是旅游胜地。 Mt Washington Auto Road 如果想上山看看的话,Mt Washington Auto Road 这个绝对是应该首推的。边上悬崖有点陡峭。如果和我们的青藏高原比起来真的也不算是什么。 但沿途风景不错,值得一去。每年开放的时间其实并不长,只要下雪了,基本上也就上不去了。 今年算是等了一个上山的尾巴,看看车流。和上山已经开始积雪了,现在才 10 月上旬耶。     入口处的招牌。 想上山的人还是挺多的,最好 9 月份来吧,天气不错还能欣赏到树叶。     沿途的风景 不可想象的是 10月份就已经有积雪了。据天气预报说是因为昨天下了 20 公分的雪。有点遗憾的是没有上到山顶。只要下雪这条路就会封山了。   https://www.ossez.com/t/white-mountains/601

2020年10月21日 0Comments 991Browse 0Like Read more
Computer Science

Discourse 如何指派用户管理员权限

与所有的系统用户分类是一致的,Discourse 也会分类使用用户和用户组。 但是 Discourse 的管理员用户组是没有办法从用户组上添加用户的,你需要登录 Discourse 的后台后,找到你希望指派的用户,然后将这个用户指定为管理员。 Discourse 希望通过这个操作来提高安全性。 操作路径 登录你的管理员后台后选择用户(Users)然后找到你需要操作的用户。     在权限部分有一个指派管理员权限。 你需要单击选择(Grant Admin)这个的意思是将这个用户的管理员权限指派上了。     当你完成上面的操作后,你的用户就具有管理员权限了。 这个就是 Discourse 可以将用户指派为管理员的地方。   https://www.ossez.com/t/discourse/600

2020年10月21日 0Comments 694Browse 0Like Read more
Computer Science

Spring 日志输出错误字符 -e[0;39m e[2m[

Spring 的日志在输出的时候,出现了类似 -e[0;39m e[2m[ 的错误。     原因和问题解决 能够出现上面的原因是你的控制台输出工具不支持 ANSI 彩色字符,但是你的 Spring 配置文件中又强制了使用彩色字符。 查找你的 Spring 配置文件:application.properties 中的配置: spring.output.ansi.enabled=ALWAYS 如果你看到上面的参数是 ALWAYS 的话,你需要调整使用为:DETECT 这个配置选项有 3 个参数: ALWAYS:总是输出彩色日志 DETECT:根据控制台的情况确定是否输出彩色日志 NEVER:永远不输出彩色日志 修改后的配置参数应该为: spring.output.ansi.enabled=DETECT     然后重新编译后重新运行。 然后检查日志后,你就可以发现你的日志能够显示正常,而不是显示错误的字符了。     其实上面的特殊字符就是 Spring 日志文件中的配色, ANSI 会根据上面的配色来进行显示。   https://www.ossez.com/t/spring-0-39m-2m/599

2020年10月21日 0Comments 728Browse 0Like Read more
Computer Science

作为一位计算机专业的大学生,大学四年毕业时怎样才算合格

学无止境,学海无涯。 这东西没有个头,今年出这个框架,明年出那个框架,永远没有个头。 光缓存部分的内容就能熬白少年头。好在很多东西都已经有人做了。你不需要过于操心这个。 主要的是能看得懂文档,API ,知道别人为什么这样做,实在不知道也没有关系,能够找到需要的东西和代码示例,自己调通也行。 对基础数据结构比较了解。 对存储结构比较了解。 对基础算法比较清楚,能搞明白树,B+,以及一些查找算法就更好了。 至少熟悉一个 IDE 工具,了解一些常用的快捷键。 如果要做软件领域,软件的一些思维方式,开发模式,代码管理方式,团队组织形式这些有个大致的印象。   如果你检查下觉得自己都还差不多了解了,恭喜你,可以顺利出去忽悠工作了。

2020年10月21日 0Comments 713Browse 0Like Read more
Computer Science

Python 学习一定用pycharm吗

工欲善其事,必先利其器。 pycharm 是收费工具,针对学生有些优惠。 pycharm 就是一个工具而已,如果你觉得拼写错误也无所谓,那么其实记事本也是可以的。但是每次编译的时候都会出现一堆错误,然后你得回头去找这个过程非常繁琐。 为什么不要一个工具解决所有问题呢?这个就是 IDE 的由来,可以说 pycharm 本身就是生产力工具。既然是工具每个人用得顺不顺手就看个人了和工具有关,但是还真没有那么大的关系。 现在 IDE 市场选择非常多,大浪淘沙下来也就许下那么几个了。需求不一样要求不一样。 比如说 Java 世界中,从最开始的 JBuilder > Eclipse > IDEA。其实每一次选择就是进步的过程,IDE 的功能越来越多,集成性越来越高。如果你是做 Web 全栈,或者后台调试 IEDA 确实是你非常好的帮手和生产力工具。 如果你就只做个前台,整个 IDEA,确实显得过重了。 pycharm 针对 Python 来说功能非常全,而且快捷键也比较通用。如果你打算用 JetBrains 的全栈工具的话,早点开始使用应该也不是坏事。 如果你就是轻量使用,不涉及到项目,不涉及到协同开发,不涉及到和其他同事交互,VS Code 能够满足你基本的需求,还是免费的。 结论就是离开使用场景谈工具就是耍流氓,什么工具都会满足你的大部分需求。如果要使用 pycharm ,多是公司使用的,许可证都是公司买的,不需要自己太担心许可证的事情。

2020年10月21日 0Comments 716Browse 0Like Read more
Computer Science

Spring Azure applicationinsights 运行时出现 tcnative 错误

启动运行的时候出现错误: 2020-10-20 12:01:21.628 DEBUG 69140 --- [ main] i.n.util.internal.NativeLibraryLoader : netty_tcnative_windows_x86_64 cannot be loaded from java.library.path, now trying export to -Dio.netty.native.workdir: C:\Users\yhu\AppData\Local\Temp java.lang.UnsatisfiedLinkError: no netty_tcnative_windows_x86_64 in java.library.path: [C:\Dkits\Java\OpenJDK\11.0.4\bin, C:\windows\Sun\Java\bin, C:\windows\system32, C:\windows, %JAVA_HOME%\bin, %MAVEN_HOME%\bin, %GRADLE_HOME%\bin, C:\Program Files (x86)\NetSarang\Xshell 6\, C:\windows\system32, C:\windows, C:\windows\System32\Wbem, C:\windows\System32\WindowsPowerShell\v1.0\, C:\windows\System32\OpenSSH\, C:\Program Files (x86)\Webex\Webex\Applications, C:\Program Files (x86)\Plantronics\Spokes3G\, C:\Program Files (x86)\Enterprise Vault\EVClient\x64\, C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL, C:\Program Files\Intel\Intel(R) Management Engine Components\DAL, C:\Program Files\Intel\WiFi\bin\, C:\Program Files\Common Files\Intel\WirelessCommon\, C:\Program Files\PuTTY\, C:\Program Files (x86)\GnuWin32\bin\, C:\Program Files\nodejs\, C:\Program Files (x86)\Yarn\bin\, C:\Users\yhu\Dkits\protoc\bin\, C:\Program Files\Git\cmd, C:\Program Files\TortoiseGit\bin, C:\Program Files\TortoiseSVN\bin, C:\Program Files\Amazon\AWSCLIV2\, C:\Program Files (x86)\Microsoft SQL Server\150\DTS\Binn\, C:\Dkits\Java\OpenJDK\11.0.4\bin, C:\Users\yhu\Dkits\maven\bin, C:\Users\yhu\Dkits\scala\bin, C:\Dkits\gradle\bin, C:\Users\yhu\AppData\Local\Microsoft\WindowsApps, C:\Users\yhu\AppData\Local\atom\bin, C:\Users\yhu\AppData\Local\Programs\Microsoft VS Code\bin, C:\Users\yhu\AppData\Local\GitHubDesktop\bin, C:\Users\yhu\AppData\Roaming\npm, C:\Users\yhu\AppData\Local\Yarn\bin, C:\Users\yhu\Dkits\protoc\bin, .] at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2660) at java.base/java.lang.Runtime.loadLibrary0(Runtime.java:829) at java.base/java.lang.System.loadLibrary(System.java:1867) 错误原因和分析 这个错误的原因是包的冲突。     如果你的配置文件中有下面 2 个包。 这 2 个包是冲突的。 <dependency> <groupId>com.microsoft.azure</groupId> <artifactId>applicationinsights-spring-boot-starter</artifactId> <version>1.1.1</version> </dependency> <dependency> <groupId>com.microsoft.azure</groupId> <artifactId>spring-cloud-azure-appconfiguration-config</artifactId> <version>1.2.7</version> </dependency> 所以你需要将 spring-cloud-azure-appconfiguration-config 这个包删除后才可以启动。   https://www.ossez.com/t/spring-azure-applicationinsights-tcnative/595

2020年10月21日 0Comments 646Browse 0Like Read more
Computer Science

Discourse CentOS 8 全新安装手册

Discourse 在 CentOS 8 上的全新安装指南和过程,请参考本文档。 安装 Docker Discourse 是基于 Docker 运行的,所以你需要先安装 Docker。 针对 CentOS 8 ,你需要运行下面 2 个命令,将 Docker 的仓库注册上去。 $ sudo yum install -y yum-utils $ sudo yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo 在完成上面的配置后运行下面的命令进行安装: sudo yum install docker-ce docker-ce-cli containerd.io 在中途可能要求你同意密钥,输入 Y 后同意即可。 运行下面的命令启动 Docker sudo systemctl start docker 运行下面的命令,确定你的 Docker 已经被正确安装和启动了。 sudo docker run hello-world     如果你能看到上面的输出,就能确定 Docker 已经安装成功了。 安装 Discourse 在安装 Discourse 之前,你一定需要一个已经注册成功的域名,并且已经注册成功的域名已经指向到了你需要安装的服务器地址。 如果你不配置好上面的配置,你是没有办法完成 Discourse 安装的。 设置 DNS 假设,我们现在需要安装的域名为 myustao.com,那么你需要修改你的 DNS 到你需要安装的服务器上。 最好的,你需要设置 主域名和 www 域名都指向同一个服务器地址。     设置邮件服务器 Discourse 和 mailgun 是好基友,也算是对 mailgun 的宣传吧。因此,你需要注册一个 mailguan 的账号。或者你有其他的 SMTP 邮件账号也是可以的。 如果你不配置你的邮件服务器,Discourse 在安装以后没有办法发送邮件到你的管理员账号,因此你就没有办法登录和重新激活。 可以按照 MailGun 上面的提示配置 DNS,在配置完成后可以再次检查 DNS,确保配置是成功的。     然后选择 SMTP 的配置部分,获得你的配置参数。 如果你不知道你的用户名密码是多少,你可以选择重置密码。     将上面的配置内容拷贝到文本文件中,备用。 你需要准备的参数是 smtp 地址 username password 从 GitHub 中克隆代码 运行下面的命令,从 GitHub 中将 Discourse 的代码克隆到你的服务器上。 sudo -s git clone https://github.com/discourse/discourse_docker.git /var/discourse cd /var/discourse 然后进入你已经克隆成功代码的文件夹。 当然,如果你的操作系统没有安装 git 的话,你需要先进行安装。 安装 git 的命令是: dnf install git 如果你能够看到下面的输出,则表示代码克隆成功了: [root@www ~]# git clone https://github.com/discourse/discourse_docker.git /var/discourse Cloning into '/var/discourse'... remote: Enumerating objects: 28, done. remote: Counting objects: 100% (28/28), done. remote: Compressing objects: 100% (22/22), done. remote: Total 4893 (delta 10), reused 12 (delta 5), pack-reused 4865 Receiving objects: 100% (4893/4893), 1.07 MiB | 9.57 MiB/s, done. Resolving deltas: 100% (3155/3155), done. [root@www ~]#     随后你需要进入你克隆的代码的文件夹。 运行安装配置 在进入克隆的 Discourse 文件夹下,执行下面的命令: ./discourse-setup 你可能还需要安装 netcat,这个用来在 ContOS 检查端口是否被占用。 如果你还没有安装的话,你可以使用下面的命令进行安装: dnf install nmap 系统将会返回下面的代码: [root@vps263579 discourse]# dnf install nmap Last metadata expiration check: 0:12:58 ago on Mon 19 Oct 2020 02:09:31 PM EDT. Dependencies resolved. ====================================================================================================================================================================================================================================== Package Architecture Version Repository Size ====================================================================================================================================================================================================================================== Installing: nmap x86_64 2:7.70-5.el8 AppStream 5.8 M Installing dependencies: nmap-ncat x86_64 2:7.70-5.el8 AppStream 237 k Transaction Summary ====================================================================================================================================================================================================================================== Install 2 Packages…

2020年10月20日 0Comments 708Browse 0Like Read more
Computer Science

JWT 使用 nimbus-jose-jwt 进行解码

在程序中获得 JWT 的Token 代码后,可以对 JWT 进行解码。 常用的可以使用 OAuth0 提供的解码包,你也可能会使用 nimbus-jose-jwt 包。 Maven 配置参数为: <dependency> <groupId>com.nimbusds</groupId> <artifactId>nimbus-jose-jwt</artifactId> <version>8.19</version> </dependency> 首先你需要有准确可以解码的 JWT。 然后将这个 JWT 转换为 SignedJWT SignedJWT sjwt = SignedJWT.parse(token); 然后你可以使用下面的代码获得所有的 claims。nimbus-jose-jwt 返回的结果是 set。随后你就可以根据返回的 Set 去查询你需要的内容了。 请注意,有时候返回的内容可能是不同的数据格式,你可能需要转换。 比如说我们这里是 roles,nimbus-jose-jwt 返回的是 JSONArray。 如果你不能确定返回的 set 存储的是什么数据类型,你可以使用 IJ 的调试窗口看看,就知道怎么去定义数据类型了。     如这个例子,我们使用的 JWT 通过查看为下面的情况。     我们需要返回 roles 的结构,因此我们需要转换为 JSONArray 数据类型。 完整的测试代码为: @Test public void claimsValueTest() { String token = "eyJ0eXAiOiJKV1Qi"; // Change your Token try { SignedJWT sjwt = SignedJWT.parse(token); JWTClaimsSet claims = sjwt.getJWTClaimsSet(); JSONArray groups = (JSONArray) claims.getClaim("roles"); logger.debug("roles - {}", groups.toJSONString()); } catch (Exception e) { e.printStackTrace(); } } 上面的测试代码,将会有下面的输出内容: 17:43:24.431 [main] DEBUG com.ossez.jwt.JWTTest - roles - ["3343f157-c768-4b31-95ad-3f81487914d1","0e287 请参考 GitHub 中的内容:https://github.com/cwiki-us-demo/java-tutorials/blob/1881848ff1c90d7beaa52b662fbb6c9e5c81aa53/core-java-modules/core-java-io/src/test/java/com/ossez/jwt/JWTTest.java   https://www.ossez.com/t/jwt-nimbus-jose-jwt/593  

2020年10月18日 0Comments 746Browse 0Like Read more
12345…7
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,367)
    • Confluence (663)
    • Gradle (12)
  • U.S. (511)
  • 文化旅游 (146)

COPYRIGHT © 2020 CWIKIUS. ALL RIGHTS RESERVED.

THEME KRATOS MADE BY VTROIS

湘ICP备2020018253号-1