ESPIER 一只JAVA程序猿的日常

配置Clojure国内仓库

在项目中设置国内仓库

修改project.clj,参考如下内容进行设置

(defproject project-name 
  :dependencies [[org.clojure/clojure "1.10.0"]]
  
  :repositories [["central" "http://maven.aliyun.com/nexus/content/groups/public"]
                 ["clojars" "https://mirrors.tuna.tsinghua.edu.cn/clojars/"]])
 
;; 这个是官方的启用非严格检查方案
(require 'cemerick.pomegranate.aether)
(cemerick.pomegranate.aether/register-wagon-factory!
 "http" #(org.apache.maven.wagon.providers.http.HttpWagon.))

Windows端口转发

windows下转发虚拟机中的服务

PC C:\Users\leejoker> netsh interface portproxy add v4tov4 listenport=8080 listenaddress=10.10.1.233 connectport=8080 connectaddress=192.168.0.233

这个命令即可实现将虚拟机中的服务映射出去。

  • listenport:物理机监听端口,其他局域网内的机器通过这个端口访问虚拟机中的服务
  • listenaddress:物理机监听的地址,本机ip
  • connectport:虚拟机中服务暴露给本机的端口
  • connect address:虚拟机映射到本机的ip地址

普通用户直接运行docker命令

具体操作

  1. 添加docker group
$ sudo groupadd docker

IDEA升级2020.3后lombok编译报错

IDEA升级到2020.3后,使用lombok会报以下错误:

java: You aren't using a compiler supported by lombok, so lombok will not work and has been disabled.
  Your processor is: com.sun.proxy.$Proxy24
  Lombok supports: sun/apple javac 1.6, ECJ

Ubuntu安装mysql8

起因

最开始是因为出差要跑公司的项目,为了省事在笔记本上装了Docker Desktop for Windows和docker版本的mysql,因为docker依赖hyper-v虚拟化,所以我就把他打开了。

然后。。。我就发现,mumu模拟器居然不支持在开启hyper-v环境下启动,(╯‵□′)╯︵┻━┻,于是我几番折腾,找到了BlueStacks Hyper-V(测试版本)

当时我非常开心,以为终于找到了解决方案,于是开始安装FGO,运行,闪退。。。运行,闪退。。。。(╯‵□′)╯︵┻━┻

无果,"[docker] 一遍、死んで见る",docker 卒!

vagrant搞起!谁也阻挡不了我玩FGO,现在可是无限池!!!

Rustup代理设置

由于公司的网络问题,我用CCProxy挂了一个代理在能上网的机器上,利用代理上网。这两天对rust感兴趣,于是就开始按照官网的说明安装rustup。

然后,问题来了!挂的代理居然不能访问!

  # vim /etc/environment
  1 PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/game
  2 http_proxy="http://ip:port"
  3 https_proxy="https://ip:port"
  4 ftp_proxy="ftp://ip:port"
  5 socks_proxy="socks://ip:port"
  6 no_proxy="localhost,127.0.0.1,localaddress,.localdomain.com"

Idea中的Git无法正常忽略

这两天发现我在.gitignore文件中添加忽略后,每次提交已经被忽略的文件还是会出现在我的提交列表里,查了一下,应该是git缓存的问题,只要清理一下缓存就ok了。

$ cd $YOUR_PROJECT_DIR
$ git rm -r --cached .
$ git add .
$ git commit -m 'update .gitignore'

安装Ruby on Rails

安装rvm

# 安装gnupg2
$ sudo apt install gnupg2
# 安装rvm
$ gpg2 --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
$ \curl -sSL https://get.rvm.io | bash -s stable
$ source ~/.bashrc

# 替换ruby-china源
$ echo "ruby_url=https://cache.ruby-china.com/pub/ruby" > ~/.rvm/user/db
# 替换gem源
$ gem sources -l
$ gem sources --add https://gems.ruby-china.org/ --remove https://rubygems.org/
# 更新缓存
$ gem sources -u 

Mybatis中使用序列自动插入主键

Mapper中的使用

在insert中增加下面两个属性,useGeneratedKeys和keyProperty

useGeneratedKeys="true" keyProperty="id"

如果数据库支持自增主键,这样就可以了。如果不行,需要自己创建序列,然后通过序列获取主键值(使用的是postgresql中的函数,其他数据库视具体情况而定):

Springboot上传文件大小限制处理

今天在开发过程中遇到一个文件上传的问题

io.undertow.server.RequestTooBigException: UT000020: Connection terminated as request was larger than 10485760

Servlet容器使用的是undertow,看异常信息应该是默认存在10MB的文件大小限制。

百度了一下,找到如下配置,问题得以解决,记录一下

spring:
  servlet:
    multipart:
     # 文件最大限制
      max-file-size: 1024MB
      # 请求最大限制
      max-request-size: 1024MB
      enabled: true
      # 设置文件缓存的临界点,超过则先保存到临时目录,默认为0,所有文件都会进行缓存
      file-size-threshold: 0