avatar
Articles
39
Tags
15
Categories
0
Home
Archives
Bookmarks
About
fengye's blog
Search
Home
Archives
Bookmarks
About

fengye's blog

nps搭建内网穿透
Created2022-02-10|Updated2025-01-11
前言最近在玩 MC ,买了个 腾讯云2核4G 的服务器跑 MC 服务端,但是 mod 加多了之后还是有点卡,于是就用了个老的电脑搭建服务器,之前的买的服务器用来搭建内网穿透服务端。 一开始使用的是 frp ,后来被安利了 nps,因为有 web gui ,使用起来更友好一点。 客户端服务端是买的 腾讯云2核4G 服务器 centos7 x86_64 下载1wget https://github.com/ehang-io/nps/releases/download/v0.26.10/linux_amd64_server.tar.gz 解压1tar -zxvf linux_amd64_server.tar.gz 安装1./nps install 启动1nps start 启动后就可以访问了,默认: http://ip:8080 服务端客户端是老的笔记本 windows10 64 手动下载解压后,文件结构 12345│ npc.exe│└─conf multi_account.conf npc.conf 启动配置文件启动 1.\npc.exe -c...
Docker笔记
Created2022-01-28|Updated2025-01-11
镜像命令查看本机所有镜像 1234docker images参数:-a 列出所有镜像(默认自带)-q 只显示镜像id 搜索镜像 1234docker search 镜像名参数:-s 指定值 列出收藏数不少于指定值的镜像--no-trunc 显示完整的镜像信息 下载镜像 1docker pull 镜像名[:TAG] 删除镜像 123docker rmi 镜像名参数:-f 强制删除 加载.tar镜像文件到本地docker仓库 1docker load -i 镜像文件名 容器命令运行镜像,新建容器并启动 123456docker run 镜像名参数:--name 为容器起别名-d 在后台启动容器-p 主机端口号:容器端口号 映射端口号 例: docker run -d --name mytomcat -p 8081:8080 tomcat 查看正在运行的容器 1234docker ps参数:-a 查看正在运行的...
Java手写异步调用
Created2021-12-27|Updated2025-01-11
Java 手写异步调用前言今天在写 mirai 机器人的一个小功能时,遇到了这样一个需求:机器人需要先发出一条消息,然后间隔 3 秒钟撤回这条消息 。 当然mirai本身提供了现成的方法,支持异步调用 最朴素的想法是使用Thread.sleep(3000) 1234567891011121314151617181920public class Test { public void A() { System.out.println("A"); try { Thread.sleep(3000); System.out.println("3S after"); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println("B"); ...
Angular规范的git-commit-message
Created2021-10-22|Updated2025-01-11
介绍 Git 每次提交代码,都要写 Commit message(提交说明),否则就不允许提交。 1>$ git commit -m "hello world" 上面代码的-m参数,就是用来指定 commit mesage 的。 如果一行不够,可以只执行git commit,就会跳出文本编译器,让你写多行。 1>$ git commit 原则上是写什么都行的。 但是一般来说,commit message 应该清晰明了,说明本次提交的目的。 目前,社区有多种 Commit message 的写法规范。本文介绍Angular 规范(见上图),这是目前使用最广的写法,比较合理和系统化,并且有配套的工具。 格式每次提交,Commit message 都包括三个部分:Header,Body 和 Footer。 1<type>(<scope>): <subject>// 空一行<body>// 空一行<footer> 其中,Header 是必需的,Body 和 Footer 可以省略。 不管是...
RestTemplate的简单使用
Created2021-09-18|Updated2025-01-11
什么是RestTemplate RestTemplate 是 Spring 提供的一个Http请求工具。它支持常见的Rest请求方案的模板,例如 GET 请求、POST 请求、PUT 请求、DELETE 请求以及一些通用的请求执行方法 exchange 以及 execute。 说白了,它的功能就类似 HttpClient。 在Spring项目中,使用 RestTemplate 发送 Http 请求无疑比 HttpClient 更加方便。 (但由于 RestTemplate 是阻塞、同步的,因此在面对大批请求时可能会有性能损失。因此在Spring5.x 以后,出现了 WebClient 来替代 RestTemplate) 发起Get请求get请求都需要在url后面手动拼接上参数 getForObject获取响应对象 1234567891011121314151617181920212223242526272829@RestControllerpublic class UserController { @Autowired RestTemplate restT...
SpringBoot使用HibernateValidator实现参数校验
Created2021-09-10|Updated2025-01-11
Hibernate Validator依赖Hibernate Validator是Spring Boot集成的参数校验框架; 但从Spring Boot 2.3版本开始默认移除了校验功能,如果想要开启的话需要添加如下依赖。 1234<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-validation</artifactId></dependency> 常用注解 @Null:被注释的属性必须为null; @NotNull:被注释的属性不能为null; @AssertTrue:被注释的属性必须为true; @AssertFalse:被注释的属性必须为false; @Min:被注释的属性必须大于等于其value值; @Max:被注释的属性必须小于等于其value值; @Size:被注释的属性必须在其min和max值之间; @Pattern:被注释的属性必须符合其regexp...
Spring中Aop的注解使用
Created2021-09-09|Updated2025-01-11
AOP的相关术语切面(Aspect)切点+通知 切点(Pointcut)切点定义了通知功能被应用的范围。比如日志切面的应用范围就是所有接口,即所有controller层的接口方法。 通知(Advice)通知描述了切面要完成的工作以及何时执行。 前置通知(Before):在目标方法调用前调用通知功能; 后置通知(After):在目标方法调用之后调用通知功能,不关心方法的返回结果; 返回通知(AfterReturning):在目标方法成功执行之后调用通知功能; 异常通知(AfterThrowing):在目标方法抛出异常后调用通知功能; 环绕通知(Around):通知包裹了目标方法,在目标方法调用之前和之后执行自定义的行为。 连接点(JoinPoint)通知功能被应用的时机。比如接口方法被调用的时候就是日志切面的连接点。 引入(Introduction)在无需修改现有类的情况下,向现有的类添加新方法或属性。 织入(Weaving)把切面应用到目标对象并创建新的代理对象的过程。 Spring中使用注解创建切面 相关注解: @Aspect:用于定义切面 @Before:通知方法会在目标...
RabbitMQ笔记
Created2021-08-28|Updated2025-01-11
docker安装RabbitMQ1234567docker run \-d --name myrabbitmq \-p 5672:5672 -p 15672:15672 \-v rabbitmqData:/var/lib/rabbitmq \-e RABBITMQ_DEFAULT_USER=username \-e RABBITMQ_DEFAULT_PASS=password \rabbitmq:management 几种基础模型基础生产者与消费者模型 一对一 生产者生产消息后放入消息队列,消费者从队列中获得消息后进行消费。 生产者代码 1234567891011121314151617181920212223242526272829303132333435363738394041public class Provider { @Test public void testSendMessage() throws IOException, TimeoutException { //创建连接mq的连接工厂对象 Conne...
MySQL基础
Created2021-04-20|Updated2025-01-11
DQL查询基础查询 语法 1234SELECT 查询列表FROM 表名; 起别名 12345678910# 起别名SELECT name AS my_name # 第一种方式FROM students; SELECT name my_name # 第二种方式FROM students; 去重 1234SELECT DISTINCT name FROM students; 字段拼接 12345MySQL中的'+'号只能作为运算符SELECT CONCAT(last_name,first_name) AS nameFROM students; 条件查询 语法 123456SELECT 查询列表FROM 表名WHERE 筛选条件; 逻辑运算符 12345678910&& 等价于AND || 等价于OR !等价于NOT# 从students表中选取id在10到20之间的学生的name(开区间)SELECT name FROM studentsWHERE id &...
1…34
avatar
风业
fengye's blog
Articles
39
Tags
15
Categories
0
Follow Me
Recent Posts
手把手带工程同学从零实现一个完整的LLM(CS336)——预训练篇2026-10-14
Untitled2026-10-14
128G 满血版 M5 Max Mac Studio 运行 Qwen3.8-Flash-Next 最佳实践报告2026-10-11
手把手带工程同学从零实现一个完整的LLM(CS336)——Transformer篇2026-09-20
从 Prompt Engineering 到 Harness Engineering:TermPilot 的改造实践2026-03-22
Tags
Transformer Qwen AI OpenAI 软件架构 LLM 本地部署 GitHub Actions 工程化 GitHub MLX PyTorch Agent 自动化 CS336
Archives
  • October 2026 3
  • September 2026 1
  • March 2026 3
  • December 2025 1
  • June 2025 1
  • March 2025 2
  • January 2025 1
  • September 2024 1
Website Info
Article Count :
39
Runtime :
Total Word Count :
191.7k
Unique Visitors :
Page Views :
Last Update :
© 2024 - 2026 By 风业Framework Hexo 7.3.0|Theme Butterfly 5.5.4
Search
Loading Database