首页
归档
友链
关于
Search
1
网易云音乐黑胶会员月月免费赠送
3,115 阅读
2
十年之约RSS聚合订阅服务上线
2,610 阅读
3
工资发放日的区别
2,353 阅读
4
rsyslogd内存占用过高解决方案
2,239 阅读
5
Nginx反代MinIO后,上传文件签名异常
2,133 阅读
零碎
标本
码海
工具
其他
登录
Search
标签搜索
北京
摄影
Java
旅行
生活
学习笔记
教程
Linux
服务器
软件
SpringBoot
日记
Windows
服务
数据库
福利
Spring
系统
SQL
前端
萧瑟
累计撰写
191
篇文章
累计收到
1,282
条评论
首页
栏目
零碎
标本
码海
工具
其他
页面
归档
友链
关于
搜索到
191
篇与
萧瑟
的结果
2021-06-01
卸载腾讯云服务器自带监控插件
卸载腾讯云服务器自带监控插件,瞬间变成纯净无监控系统,节省内存使用。
2021年06月01日
770 阅读
5 评论
2021-05-31
Git常用命令笔记
Git图形化界面用的还可以,但是命令太多有些不太会了,索性做一个笔记跟大家一起学习下Git命令的用法... 一般来说,日常使用只要记住下图6个命令,就可以了。但是熟练使用,恐怕要记住60~100个命令。 下面是我整理的常用 Git 命令清单。几个专用名词的译名如下。Workspace:工作区 Index / Stage:暂存区 Repository:仓库区(或本地仓库) Remote:远程仓库一、新建代码库# 在当前目录新建一个Git代码库 $ git init # 新建一个目录,将其初始化为Git代码库 $ git init [项目名称] # 下载一个项目和它的整个代码历史 $ git clone [项目地址]二、配置Git的设置文件为.gitconfig,它可以在用户主目录下(全局配置),也可以在项目目录下(项目配置)。# 显示当前的Git配置 $ git config --list # 编辑Git配置文件 $ git config -e [--global] # 设置提交代码时的用户信息 $ git config [--global] user.name "[name]" $ git config [--global] user.email "[email address]” # git 修改当前的project的用户名的命令为: $ git config user.name 你的目标用户名; # git修改当前的project提交邮箱的命令为: $ git config user.email 你的目标邮箱名; # 如果你要修改当前全局的用户名和邮箱时,需要在上面的两条命令中添加一个参数,–global,代表的是全局。 # 命令分别为: $ git config --global user.name 你的目标用户名; $ git config --global user.email 你的目标邮箱名; # 临时 http 代理 # 地址和端口换成自己的代理服务器 export http_proxy=http://127.0.0.1:7777 export https_proxy=http://127.0.0.1:7777 # 永久 http 代理 $ git config --global http.proxy http://127.0.0.1:50015 $ git config --global https.proxy http://127.0.0.1:50015 # 手动修改修改配置文件方式 # 进入用户名根路径,找到 .gitconfig 文件,修改为 [http] proxy = http://127.0.0.1:50015 [https] proxy = http://127.0.0.1:50015 # 查看 http(s) 代理情况 $ git config --get --global http.proxy $ git config --get --global https.proxy # 永久 socks5 代理 $ git config --global http.proxy socks5://127.0.0.1:50014 $ git config --global https.proxy socks5://127.0.0.1:50014 # 修改配置文件方式:进入用户名根路径,找到 .gitconfig 文件,修改为: [http] proxy = socks5://127.0.0.1:50015 [https] proxy = socks5://127.0.0.1:50015 # 查看 socks5 代理情况 $ git config --get --global http.proxy $ git config --get --global https.proxy $ git config --get --global http.proxy socks5 $ git config --get --global https.proxy socks5 # 取消 http 或 socks 代理 $ git config --system (或 --global 或 --local) --unset http.proxy eg: $ git config --global --unset http.proxy $ git config --global --unset https.proxy三、增加/删除文件# 添加指定文件到暂存区 $ git add [file1] [file2] ... # 添加指定目录到暂存区,包括子目录 $ git add [dir] # 添加当前目录的所有文件到暂存区 $ git add . # 添加每个变化前,都会要求确认 # 对于同一个文件的多处变化,可以实现分次提交 $ git add -p # 删除工作区文件,并且将这次删除放入暂存区 $ git rm [file1] [file2] ... # 停止追踪指定文件,但该文件会保留在工作区 $ git rm --cached [file1] # 改名文件,并且将这个改名放入暂存区 $ git mv [file-original] [file-renamed]四、代码提交# 提交暂存区到仓库区 $ git commit -m [message] # 提交暂存区的指定文件到仓库区 $ git commit [file1] [file2] ... -m [message] # 提交工作区自上次commit之后的变化,直接到仓库区 $ git commit -a # 提交时显示所有diff信息 $ git commit -v # 使用一次新的commit,替代上一次提交 # 如果代码没有任何新变化,则用来改写上一次commit的提交信息 $ git commit --amend -m [message] # 重做上一次commit,并包括指定文件的新变化 $ git commit --amend [file1] [file2] ...五、分支# 列出所有本地分支 $ git branch # 列出所有远程分支 $ git branch -r # 列出所有本地分支和远程分支 $ git branch -a # 新建一个分支,但依然停留在当前分支 $ git branch [branch-name] # 新建一个分支,并切换到该分支 $ git checkout -b [branch] git checkout -b appoint_box(别名) origin/feature/20181128_1491627_appoint_box_1(分支名) # 新建一个分支,指向指定commit $ git branch [branch] [commit] # 新建一个分支,与指定的远程分支建立追踪关系 $ git branch --track [branch] [remote-branch] # 切换到指定分支,并更新工作区 $ git checkout [branch-name] # 切换到上一个分支 $ git checkout - # 建立追踪关系,在现有分支与指定的远程分支之间 $ git branch --set-upstream [branch] [remote-branch] # 合并指定分支到当前分支 $ git merge [branch] # 选择一个commit,合并进当前分支 $ git cherry-pick [commit] # 删除分支 $ git branch -d [branch-name] # 删除远程分支 $ git push origin --delete [branch-name] $ git branch -dr [remote/branch]六、标签# 列出所有tag $ git tag # 新建一个tag在当前commit $ git tag [tag] # 新建一个tag在指定commit $ git tag [tag] [commit] # 删除本地tag $ git tag -d [tag] # 删除远程tag $ git push origin :refs/tags/[tagName] # 查看tag信息 $ git show [tag] # 提交指定tag $ git push [remote] [tag] # 提交所有tag $ git push [remote] --tags # 新建一个分支,指向某个tag $ git checkout -b [branch] [tag]七、查看信息# 显示有变更的文件 $ git status # 显示当前分支的版本历史 $ git log # 显示commit历史,以及每次commit发生变更的文件 $ git log --stat # 搜索提交历史,根据关键词 $ git log -S [keyword] # 显示某个commit之后的所有变动,每个commit占据一行 $ git log [tag] HEAD --pretty=format:%s # 显示某个commit之后的所有变动,其"提交说明"必须符合搜索条件 $ git log [tag] HEAD --grep feature # 显示某个文件的版本历史,包括文件改名 $ git log --follow [file1] $ git whatchanged [file1] # 显示指定文件相关的每一次diff $ git log -p [file1] # 显示过去5次提交 $ git log -5 --pretty --oneline # 显示所有提交过的用户,按提交次数排序 $ git shortlog -sn # 显示指定文件是什么人在什么时间修改过 $ git blame [file1] # 显示暂存区和工作区的代码差异 $ git diff # 显示暂存区和上一个commit的差异 $ git diff --cached [file1] # 显示工作区与当前分支最新commit之间的差异 $ git diff HEAD # 显示两次提交之间的差异 $ git diff [first-branch]...[second-branch] # 显示今天你写了多少行代码 $ git diff --shortstat "@{0 day ago}" # 显示某次提交的元数据和内容变化 $ git show [commit] # 显示某次提交发生变化的文件 $ git show --name-only [commit] # 显示某次提交时,某个文件的内容 $ git show [commit]:[filename] # 显示当前分支的最近几次提交 $ git reflog 可以得到cimmit id # 从本地master拉取代码更新当前分支:branch 一般为master $ git rebase [branch]八、远程同步$ git remote update --更新远程仓储 # 下载远程仓库的所有变动 $ git fetch [remote] # 显示所有远程仓库 $ git remote -v # 显示某个远程仓库的信息 $ git remote show [remote] # 增加一个新的远程仓库,并命名 $ git remote add [shortname] [url1] # 取回远程仓库的变化,并与本地分支合并 $ git pull [remote] [branch] # 上传本地指定分支到远程仓库 $ git push [remote] [branch] # 强行推送当前分支到远程仓库,即使有冲突 $ git push [remote] --force # 推送所有分支到远程仓库 $ git push [remote] --all九、撤销# 恢复暂存区的指定文件到工作区 $ git checkout [file1] # 恢复某个commit的指定文件到暂存区和工作区 $ git checkout [commit] [file1] # 恢复暂存区的所有文件到工作区 $ git checkout . # 重置暂存区的指定文件,与上一次commit保持一致,但工作区不变 $ git reset [file1] # 重置暂存区与工作区,与上一次commit保持一致 $ git reset --hard # 重置当前分支的指针为指定commit,同时重置暂存区,但工作区不变 $ git reset [commit] # 重置当前分支的HEAD为指定commit,同时重置暂存区和工作区,与指定commit一致 $ git reset --hard [commit] # 重置当前HEAD为指定commit,但保持暂存区和工作区不变 $ git reset --keep [commit] # 新建一个commit,用来撤销指定commit # 后者的所有变化都将被前者抵消,并且应用到当前分支 $ git revert [commit] # 暂时将未提交的变化移除,稍后再移入 $ git stash $ git stash pop十、其他# 生成一个可供发布的压缩包 $ git archive 上传本地项目到远程仓库 1、(先进入项目文件夹)通过命令 git init 把这个目录变成git可以管理的仓库 git init 2、把文件添加到版本库中,使用命令 git add .添加到暂存区里面去,不要忘记后面的小数点“.”,意为添加文件夹下的所有文件 git add . 3、用命令 git commit告诉Git,把文件提交到仓库。引号内为提交说明 git commit -m 'first commit' 4、关联到远程库 git remote add origin 你的远程库地址 如: git remote add origin https://github.com/githubusername/demo.git 5、获取远程库与本地同步合并(如果远程库不为空必须做这一步,否则后面的提交会失败) git pull --rebase origin master 6、把本地库的内容推送到远程,使用 git push命令,实际上是把当前分支master推送到远程。执行此命令后会要求输入用户名、密码,验证通过后即开始上传。 git push -u origin master 7、状态查询命令 git statusfetch vs pullgit fetch是将远程主机的最新内容拉到本地,用户在检查了以后决定是否合并到工作本机分支中。而git pull 则是将远程主机的最新内容拉下来后直接合并,即:git pull = git fetch + git merge,这样可能会产生冲突,需要手动解决。
2021年05月31日
217 阅读
0 评论
2021-05-30
统信UOS去除桌面水印
用上UOS后,感觉还可以,只是桌面上多了一个水印,看起来很不爽,今天找了一下资料,终于可以去掉这个水印了。启用开发者模式在设置通用中开启这个功能,前提是需要登录统信UOS账户,然后就可以使用root账户。打开终端执行命令sudo dde-file-manager file:///usr/share/deepin上面的步骤是获取管理员权限,因为系统文件都有锁,不能直接删除。执行完后,会自动打开目录 usr/share/deepin ,里面有 uos_logo.svg 这个文件,这个就是桌面的水印,删除也行,改成自己的水印也可以。操作完成后,重启系统,即可生效。
2021年05月30日
1,335 阅读
1 评论
2021-05-29
Java poi设置页脚页码奇偶数不同展示
最近遇到一个问题,就是导出word设置页脚的页码且奇偶数不同,效果如下。 贴一下代码,记录一下。/** * 创建页脚 * * @param document doc对象 * @throws IOException * @throws NoSuchFieldException * @throws IllegalAccessException */ public static void createFooter(XWPFDocument document) throws IOException, NoSuchFieldException, IllegalAccessException { Field _settings = XWPFDocument.class.getDeclaredField("settings"); _settings.setAccessible(true); XWPFSettings xwpfsettings = (XWPFSettings) _settings.get(document); Field _ctSettings = XWPFSettings.class.getDeclaredField("ctSettings"); _ctSettings.setAccessible(true); org.openxmlformats.schemas.wordprocessingml.x2006.main.CTSettings ctSettings = (org.openxmlformats.schemas.wordprocessingml.x2006.main.CTSettings) _ctSettings.get(xwpfsettings); ctSettings.addNewEvenAndOddHeaders(); XWPFFooter footer = document.createFooter(HeaderFooterType.DEFAULT); //奇数 XWPFParagraph paragraph = footer.createParagraph(); paragraph.setAlignment(ParagraphAlignment.RIGHT); XWPFRun run; run = paragraph.createRun(); run.setText("— "); CTFldChar fldChar = run.getCTR().addNewFldChar(); fldChar.setFldCharType(STFldCharType.Enum.forString("begin")); setXWPFRunStyle(run, "宋体", 14); CTText ctText = run.getCTR().addNewInstrText(); ctText.setStringValue("PAGE \\* MERGEFORMAT"); ctText.setSpace(SpaceAttribute.Space.Enum.forString("preserve")); setXWPFRunStyle(run, "宋体", 14); fldChar = run.getCTR().addNewFldChar(); fldChar.setFldCharType(STFldCharType.Enum.forString("end")); run.setText(" —"); //偶数 XWPFParagraph paragraph1 = document.createFooter(HeaderFooterType.EVEN).createParagraph(); paragraph1.setAlignment(ParagraphAlignment.LEFT); XWPFRun run1; run1 = paragraph1.createRun(); run1.setText("— "); CTFldChar fldChar1 = run1.getCTR().addNewFldChar(); fldChar1.setFldCharType(STFldCharType.Enum.forString("begin")); setXWPFRunStyle(run1, "宋体", 14); CTText ctText1 = run1.getCTR().addNewInstrText(); ctText1.setStringValue("PAGE \\* MERGEFORMAT"); ctText1.setSpace(SpaceAttribute.Space.Enum.forString("preserve")); setXWPFRunStyle(run1, "宋体", 14); fldChar1 = run1.getCTR().addNewFldChar(); fldChar1.setFldCharType(STFldCharType.Enum.forString("end")); run1.setText(" —"); } /** * 设置页脚的字体样式 * * @param r1 段落元素 * @param font 字体 * @param fontSize 字体大小 */ private static void setXWPFRunStyle(XWPFRun r1, String font, int fontSize) { r1.setFontSize(fontSize); CTRPr rpr = r1.getCTR().isSetRPr() ? r1.getCTR().getRPr() : r1.getCTR().addNewRPr(); CTFonts fonts = rpr.isSetRFonts() ? rpr.getRFonts() : rpr.addNewRFonts(); fonts.setAscii(font); fonts.setEastAsia(font); fonts.setHAnsi(font); }参考文档: poi设置word奇偶页不同-segmentfault
2021年05月29日
373 阅读
0 评论
2021-05-27
Java 基础类型互相转换
Java 基础类型互相转换,int,String 转Integer、String 转Integer、String、Integer转为int、Integer转换为float, double, long、所有类型转String
2021年05月27日
169 阅读
2 评论
2021-05-24
yml基本语法
YML是什么YAML (YAML Aint Markup Language)是一种标记语言,通常以.yml或者.yaml为后缀的文件,是一种直观的能够被电脑识别的数据序列化格式,并且容易被人类阅读,容易和脚本语言交互的,可以被支持YAML库的不同的编程语言程序导入,一种专门用来写配置文件的语言。可用于如: Java,C/C++, Ruby, Python, Perl, C#, PHP等。YML的优点YAML易于人们阅读。YAML数据在编程语言之间是可移植的。YAML匹配敏捷语言的本机数据结构。YAML具有一致的模型来支持通用工具。YAML支持单程处理。YAML具有表现力和可扩展性。YAML易于实现和使用。YML语法1.约定 k: v 表示键值对关系,冒号后面必须有一个空格使用空格的缩进表示层级关系,空格数目不重要,只要是左对齐的一列数据,都是同一个层级的大小写敏感缩进时不允许使用Tab键,只允许使用空格。松散表示,Java中对于驼峰命名法,可用原名或使用-代替驼峰,如java中的lastName属性,在yml中使用lastName或 last-name都可正确映射。2.键值关系 (以Java语言为例,其它语言类似)对于键与值主要是看能否表示以下内容。普通的值(数字、字符串、布尔)、日期、对象、数组、集合等。1) 普通值(字面量)k: v:字面量直接写;字符串默认不用加上单引号或者双绰号;“”: 双引号;不会转义字符串里面的特殊字符;特殊字符会作为本身想表示的意思name: “zhangsan \n lisi”:输出;zhangsan 换行 lisi‘’:单引号;会转义特殊字符,特殊字符最终只是一个普通的字符串数据name1: zhangsan name2: 'zhangsan \n lisi' name3: "zhangsan \n lisi" age: 18 flag: true2)日期date: 2019/01/013)对象(属性和值)、Map(键值对)在下一行来写对象的属性和值的关系,注意缩进people: name: zhangsan age: 20行内写法:people: {name:zhangsan,age: 20}4)数组、list、set用- 值表示数组中的一个元素pets: - dog - pig - cat行内写法:pets: [dog,pig,cat]5)数组对象、list对象、set对象peoples: - name: zhangsan age: 22 - name: lisi age: 20 - {name: wangwu,age: 18}6)Java代码示例Java代码(省略get,set方法)public class Person { private String lastName; private Integer age; private Boolean boss; private Date birth; private Map<String,Object> maps; private List<Dog> lists; private Dog dog; private String[] arr; } public class Dog { private String name; private Integer age; }对应的ymlperson: boss: false maps: k1: v1 k2: 14 lists: - name: d1 age: 2 - name: d2 age: 3 - {name: d3,age: 4} birth: 2017/12/15 dog: name: p_dog age: 15 age: 13 last-name: 张三 arr: [s1,s2,s3]3.文档块对于测试环境,预生产环境,生产环境可以使用不同的配置,如果只想写到一个文件中,yml与是支持的,每个块用----隔开server: port: 8081 spring: profiles: active: prod #激活对应的文档块 --- server: port: 8083 spring: profiles: dev #指定属于哪个环境 --- server: port: 8084 spring: profiles: prod #指定属于哪个环境
2021年05月24日
203 阅读
0 评论
2021-05-23
统信UOS个人版试用体验
前段时间刚刚在统信商场购买了珍藏版安装套件,也顺手将很早之前买的二手微软 Surface Pro 3系统重做了一下,安装上了统信USO个人版。
2021年05月23日
916 阅读
4 评论
2021-05-23
SpringBoot yml配置文件注入List和Map
SpringBoot 在yml配置文件注入List和Map,可动态修改,方便快速。
2021年05月23日
668 阅读
0 评论
2021-05-21
Java Spring @autowired和@resource注解的区别
区别1、@Autowired注解由Spring提供,只按照byType注入;@resource注解由J2EE提供,默认按照byName自动注入。2、@Autowired默认按类型进行装配,@Resource默认按照名称进行装配。Spring不但支持自己定义的@Autowired注解,还支持由JSR-250规范定义的几个注解。如:@Resource、@PostConstruct及@PreDestroy@Autowired由Spring提供,只按照byType注入@Resource由J2EE提供,默认按照byName自动注入@Resource有两个重要的属性:name和typeSpring将@Resource注解的name属性解析为bean的名字,type属性则解析为bean的类型。所以如果使用name属性,则使用byName的自动注入策略,而使用type属性则使用byType自动注入策略。如果既不指定name也不指定type属性,这时将通过反射机制使用byName自动注入策略。@Resource装配顺序:(1)如果同时指定了name和type,则从Spring上下文中找到唯一匹配的bean进行装配,找不到则抛出异常(2)如果指定了name,则从Spring上下文中查找名称(id)匹配的bean进行装配,找不到则抛出异常(3)如果指定了type,则从Spring上下文中找到类型匹配的唯一bean进行装配,找不到或找到多个,都抛出异常(4)如果既没指定name,也没指定type,则自动按照byName方式进行装配。如果没有匹配,则回退为一个原始类型进行匹配,如果匹配则自动装配。@Resource的作用相当于@Autowired,只不过@Autowired按byType自动注入。使用区别(1)@Autowired与@Resource都可以用来装配bean,都可以写在字段或setter方法上(2)@Autowired默认按类型装配,默认情况下必须要求依赖对象存在,如果要允许null值,可以设置它的required属性为false。如果想使用名称装配可以结合@Qualifier注解进行使用。(3)@Resource,默认按照名称进行装配,名称可以通过name属性进行指定,如果没有指定name属性,当注解写在字段上时,默认取字段名进行名称查找。如果注解写在setter方法上默认取属性名进行装配。当找不到与名称匹配的bean时才按照类型进行装配。但是需要注意的是,如果name属性一旦指定,就只会按照名称进行装配。推荐使用@Resource注解在字段上,这样就不用写setter方法了,并且这个注解是属于J2EE的,减少了与Spring的耦合。
2021年05月21日
210 阅读
0 评论
2021-05-21
Java Map中forEach小结
HashMapHashMap 继承于AbstractMap,实现了Map、Cloneable、java.io.Serializable接口。AbstractMap实现了Map接口,Map接口里面有一个forEach方法。官方解释对此映射中的每个条目执行给定操作,直到所有条目已处理或操作引发异常。除非由实现类指定,操作将在入口集迭代的顺序(如果指定了迭代顺序)。操作引发的异常将中继到调用方。解读使用了try catch 抛出的异常为ConcurrentModificationException,标示在线程并发进行读写的时候会出现异常,即,不支持并发操作。使用方法Map<Object, Object> map = new HashMap<>(); map.put("name", "xiaose"); map.put("gender", "男"); map.put("phone", "18888888888"); map.put(null, null); //1.Map的迭代 // 通用的Map迭代方式 System.out.println("==============Map的迭代======================"); for (Map.Entry<Object, Object> entry : map.entrySet()) { System.out.println(entry.getKey() + ":" + entry.getValue()); } System.out.println("===================================="); // JDK8的迭代方式 map.forEach((key, value) -> { System.out.println(key + ":" + value); });输出内容==============Map的迭代====================== null:null gender:男 phone:18888888888 name:xiaose ==================================== null:null gender:男 phone:18888888888 name:xiaose
2021年05月21日
218 阅读
0 评论
1
...
14
15
16
...
20