majhdkl's blog

  • 首页

  • 关于

  • 标签

  • 分类

  • 归档

  • 搜索

SSH快速远程连接配置

发表于 2019-11-11 更新于 2019-12-01 分类于 Network 阅读次数: Valine:

在连接SSH时候,往往要输入一串的命令,包括用户名密码及端口,比如ssh userName@serverIP,该命令为连接到serverIP端口号为22的远程主机,连接时需要输入密码进行认证。这种方式命令较长较难记,如果密码也很难记,那每次SSH都很麻烦。

通过密钥认证方式可以在避免输入密码的情况下连接到SSH远程主机,该方式通过ssh-copy-id将本地公钥传输到SSH远程主机的authorized_keys文件中,目的是在SSH客户端登录的时候,通过该公钥来验证客户端。

ssh-copy-id的基本语法为ssh-copy-id [-i [identity_file]] [user@]machine [-p port],其中,-i为指定公钥文件,-p为指定端口。

示例:

ssh-copy-id -i ~/.ssh/id_rsa.pub userName@serverIP -p port

如果用户权限不足,可以通过命令chmod 700 ~/.ssh和chmod 600 ~/.ssh/authorized_keys更改文件权限。

以上只是简化了密码的输入,还可以通过简化命令的方式实现快速进入,即通过配置命令别名的方式实现。在本地环境中,进入~/.bash_profile文件,追加别名命令alais sshCommand="ssh userName@serverIP -p port",如果~/.bash_profile文件不存在,则新建,配置完成后,通过命令source ~/.bash_profile使其生效。

如果Mac中使用iterm,可能快捷命令并不会生效,需要编辑.zshrc文件,添加以下内容即可避免每次进入都需要使用source命令编译。

1
2
3
if [ -f ~/.bash_profile ]; then
. ~/.bash_profile
fi

最后,在终端中输入命令别名sshCommand即可连接到远程主机。

解决Springboot2中依赖本地项目Gradle5编译异常问题

发表于 2019-11-04 分类于 问题 阅读次数: Valine:

问题描述

在Idea中使用gradle5配置springboot2项目,该项目下有两个子项目,如:Project {subA, subB},其中subA项目依赖subB(非springboot项目)项目implementation project(':subB'),在使用gradle build时,控制台抛出类似如下异常:

1
2
3
/Users/xxxx/xxx/xxx/solby/xboot/src/main/java/me/solby/xboot/tookit/aspect/RequestLimitAspect.java:6: 错误: 程序包me.solby.xoauth.common不存在
import me.solby.xtool.common.UserSessionHolder;
^

该类异常表示找不到类所在包,但是通过idea的方式编译或运行,都不会有问题。

阅读全文 »

java11+springboot2+gradle5+idea+lombok 编译失败问题记录

发表于 2019-11-02 更新于 2019-11-04 分类于 问题 阅读次数: Valine:

问题描述

在开发个人项目时,使用到了Java11+Springboot2+Gradle5+IDEA+Lombok技术,采用Gradle多项目模式,其中A项目依赖B项目,在IDEA中Lombok使用正常,但是使用Gradle编译构建时,会抛出异常,提示找不到符号,即无法获取到到使用了Lombok相关注解的类和属性。

阅读全文 »

SpringBoot多模块I18N配置无效,导致No message found under code 'xxx' for locale 'zh_CN_#Hans'问题

发表于 2019-08-28 更新于 2019-11-11 分类于 问题 阅读次数: Valine:

在SpringBoot多模块项目开发中,新增了国际化配置

1
2
3
4
5
6
spring: 
# 国际化文件路径配置
messages:
basename: i18n/messages
encoding: UTF-8
fallbackToSystemLocale: false

Resource目录下存在i18n/messages,文件中配置key=value。

异常

使用时遇到org.springframework.context.NoSuchMessageException: No message found under code 'error.xxxx.message' for locale 'zh_CN_#Hans'。

排查
  • 检查配置项是否正确;
  • 检查Resource目录下文件是否存在;
  • 检查文件中key=value是否存在;
  • 检查编码文件编码是否为UTF_8;

经过排查,发现以上问题均不存在,且断点进入MessageSource相关方法中发现parentMessageSource始终为空。

解决

后来,看了下messages的配置位置,是在被依赖模块的application.yml配置文件中,想到应该是项目启动后,使用过程中并未在启动项目的Resource目录下发现i18n/messages,而配置生效的路径则为被依赖模块的Resource目录下,因此,导致在被依赖模块目录下找不到i18n/messages而报错。

将配置转移到启动项目的配置文件中,再次测试国际化正常。

Redis数据类型

发表于 2019-01-20 更新于 2019-08-20 分类于 技术 阅读次数: Valine:

Redis常用数据类型:

  • strings:二进制安全的字符串;
  • lists:根据插入顺序排序的字符串元素的集合,基本上是链表;
  • sets:唯一的,未排序的字符串元素的集合;
  • zsets:有序集合,没个字符串元素都与一个浮点数关联,称为分数,元素总是按分数排序;
  • hashs:散列或字典,是由与值相关联的字段组成的映射,字段和值都是字符串;
阅读全文 »

Java 性能调优(一)

发表于 2018-12-15 更新于 2019-08-19 分类于 技术 阅读次数: Valine:

造成系统瓶颈计算资源的因素有很多,包括CPU资源的调度、内存的读写、磁盘IO、网络IO、数据库、竞争锁、异常等。而系统性能的衡量指标有响应时间、启动时间、执行时间、执行速度、磁盘吞吐量、网络吞吐量、负载承受能力等。那么,从软件的角度看,性能优化的目标有,编写更高效的代码、使用更高效的算法、减少竞争锁、分布式集群、微服务等。而性能的优化策略有,用空间换时间、用时间换空间、优化代码、并行处理等。系统的优化来自三个方面,基础技术、层次方面、架构方面。

阅读全文 »

Mybatis知识点梳理

发表于 2018-12-12 更新于 2019-08-19 分类于 技术 阅读次数: Valine:

Mybatis架构图:

Mybatis架构图

阅读全文 »

技术类相关概念整理

发表于 2018-12-12 更新于 2019-08-20 分类于 技术 阅读次数: Valine:

技术名称/概念太多,一些很少用到但是要接触的概念还是要记录下来,写在这里的目的是,进来就能看到。

阅读全文 »

spring boot custom HttpMessageConverter with kotlin

发表于 2017-04-13 更新于 2019-08-20 分类于 技术 阅读次数: Valine:
Make everything as simple as possible, but not simpler. --- Albert Einstein

在 Spring Boot 开发过程中,有时候需要自定义数据类型,而默认的 HttpMessageConverter 不能将自定义数据类型序列化为想要的数据,因此需要自定义序列化与反序列化。Gson 或 Jackson 实现

阅读全文 »

Kotlin & Spring boot 使用@Valid校验无效解决方法

发表于 2017-04-12 更新于 2019-08-19 分类于 技术 阅读次数: Valine:

kotlin data (对应Java实体类

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
@Entity
@Table(name = "user")
data class User(
@NotNull(message = "用户名不能为空")
@Column(name = "user_name", nullable = false)
var userName: String = "",

@NotNull(message = "用户ID不能为空")
@Column(name = "user_id", unique = true)
var userId: String = "",

@Email(message = "无效的邮箱")
var email: String = "",

@Column(nullable = false)
var password: String = ""

) : Serializable
阅读全文 »
12
majhdkl

majhdkl

Programming technology
12 日志
4 分类
17 标签
RSS
GitHub StackOverflow
Creative Commons
© 2016 – 2019 majhdkl
由 Hexo 强力驱动 v3.9.0
|
主题 – NexT.Pisces v7.3.0
0%