mvnd结合idea使用

前言

2021年看到apache新出了mvnd这么一个项目,属于maven的子项目,但是介绍是maven加强版,超过maven和gradle的速度,是maven的2~10倍,当时体验了下,还不错,但是一直没法配合idea使用,所以暂时搁置没记录下来。2024年升级了下idea,最近无意发现可以配置mvnd命令并且结合插件maven helper无缝使用,编译和打包速度确实快,而且跟原始maven使用体验一样。

……

阅读全文

SpringBoot接入Thymeleaf完整指南:语法速查、布局复用与可运行样例

前言

Thymeleaf 是 Spring 官方文档里默认的模板引擎,最大的卖点是原生 HTML 模板:模板文件不经过引擎也能直接用浏览器打开看排版,设计稿改改就能当模板用。FreeMarker 那套见 接入指南 和 语法详解,这篇给 Thymeleaf 同样的一套。

1、引入依赖

1
2
3
4
5
6
7
8
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

模板默认放 classpath:/templates/,后缀 .html。

……

阅读全文

SpringBoot接入FreeMarker完整指南:依赖、配置与可运行样例

前言

FTL 模板语法在 FreeMarker常用语法与指令详解里整理过了,这篇解决另一半问题:怎么把 FreeMarker 接进 SpringBoot。依赖、配置、渲染、全局变量,配一套能直接跑的样例。

1、引入依赖

1
2
3
4
5
6
7
8
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

starter 会自动带上 freemarker 核心包和 FreeMarkerAutoConfiguration,不加任何配置就能跑。

2、目录结构

src/main/java
  └── com.example.demo
      ├── DemoApplication.java
      └── controller/PageController.java
src/main/resources
  ├── application.yml
  ├── static/                  # 静态资源(css/js)
  └── templates/               # 模板默认目录(classpath:/templates/)
      ├── index.ftl
      ├── user/
      │   └── detail.ftl
      └── common/
          ├── header.ftl
          └── footer.ftl

约定就三条:模板放 classpath:/templates/,后缀 .ftl,Controller 返回视图名不带后缀。

……

阅读全文

FreeMarker FTL语法速查:从插值到宏的完整笔记

前言

FreeMarker 在老项目和邮件模板、报表模板场景里依然大量存在。FTL 语法细节多、容易忘,这篇按「输出 → 运算 → 流程控制 → 集合 → 指令 → 宏」的顺序整理成速查笔记。

基本原则:所有标签必须闭合,否则 FreeMarker 无法解析。注释格式 <#-- 注释内容 -->,不会输出。

一、字符输出

${emp.name?if_exists}            <#-- 变量存在输出,否则不输出 -->
${emp.name!}                     <#-- 同上 -->
${emp.name?default("xxx")}       <#-- 变量不存在,取默认值xxx -->
${emp.name!"xxx"}                <#-- 同上 -->

常用内建函数:

……

阅读全文

大模型术语人话版:把LLM当成一个打工人

前言

大模型一年之内名词井喷:预训练、SFT、RAG、多模态、Agent……每个词都认识,连起来就看不懂。这篇用一个人话版的比喻把它们串起来——把大模型当成一个打工人,你会发现所有概念都顺理成章。

一、模型本体:这是个什么样的打工人

大模型:一个替代人来打工的打工人。知识工作者他基本都能替代——设计师、客服、文员,顶多缺点创意;体力活也能干,但需要一副好身体(机器人硬件)。

……

阅读全文

postgresql数据库常用记录

前言

因项目需要,整理下mysql迁移postgresql的常用工具搜集

1、迁移工具

开发的pgloader是一个mysql迁移到pg的工具,性能和表现都良好,开发和测试环境迁移已经验正,github地址: https://github.com/dimitri/pgloader

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
LOAD DATABASE
 FROM mysql://admin1:***@10.10.214.205:3306/t230530_B
 INTO pgsql://admin:***@10.10.216.108:5432/B


WITH
     include drop, create tables, no truncate, create indexes, reset sequences, foreign keys
 CAST type datetime to timestamp
     drop default drop not null using zero-dates-to-null,
     type date drop not null drop default using zero-dates-to-null

 ALTER SCHEMA 't230530_B' RENAME TO 'public'

SET PostgreSQL PARAMETERS
    maintenance_work_mem to '1GB',
    work_mem to '1GB'

SET MySQL PARAMETERS
    net_read_timeout  = '600',
    net_write_timeout = '600'

执行迁移,观察日志没有报错正常结束即可

……

阅读全文

JDK 8到21迁移指南:参数变化、GC演进与虚拟线程实战

前言

手上一批老服务还跑在 JDK 8 上,Oracle 的免费更新早就停了,趁着最近有空把几个服务迁到 21 试了试,过程不算复杂,但坑主要在两个地方:老参数会直接启动失败,还有依赖库的字节码兼容。把迁移过程和注意事项记录下,方便后来者。

站内 tomcat-jvm 那篇有 JDK21 的参数对照,oom 那篇有 OOM 新旧形态对照,这篇侧重怎么迁。

……

阅读全文

Python双下划线详解:__name__与魔术方法/属性全面整理(含版本限制)

前言

Python 里到处都是双下划线:__name__、__init__、__all__、__getattr__……刚学的时候只知道 if __name__ == '__main__' 这么抄,不清楚背后的整套设计。这篇把双下划线家族(俗称 dunder,double underscore 的缩写)按用途全面整理一遍,每个都带小样例,有版本要求的标明版本。

先给个总原则(PEP 8 的原话):__xxx__ 这种前后双下划线的命名权属于 Python 解释器,自己写类不要发明这种名字,想表达内部属性用单下划线 _foo 或者双下划线前缀 __foo(后面讲它的改写机制)。

……

阅读全文

挖矿病毒5-私有云机房挖矿病毒定位

前言

6月16日晚,一位朋友咨询说私有云机房服务器有占用cpu比较高的进程无法kill,我通过向日葵远程跳板机分析了下,发现一些不同于以往挖矿病毒有趣的现象,总结下

1、初查

初步筛查,发现crontab、top如其他挖矿病毒差不多

1.1 进程名称模仿系统进程

初步看进程名kthreaddk,这个挖矿的进程名挺像内核进程kthreadd,但是系统内核进程不太可能cpu占用异常,就继续往下检查 查看crontab,发现异常,结果多次执行,发现路径会变……,总结下规律,发现一直在/dev/cpu/、/dev/mapper/、/dev/disk/、/dev/一直出现在这几层跳跃

……

阅读全文

git工程化实践:commit规范、emoji、多账号与分支规范

前言

单人项目里 git 怎么提交都行,团队协作时就需要约定:commit 怎么写、分支怎么建、一台机器上公司账号和个人账号怎么共存。这篇把这几件事一次说清。

一、commit message 规范

commit 一共由五部分组成:

(1)type:提交类型

  • feat: 新功能
  • fix: 修复问题
  • docs: 修改文档
  • style: 修改代码格式,不影响代码逻辑
  • refactor: 重构代码,理论上不影响现有功能
  • perf: 提升性能
  • test: 增加修改测试用例
  • chore: 修改工具相关(包括但不限于文档、代码生成等)
  • deps: 升级依赖

(2)scope:修改文件的范围(包括但不限于 doc、middleware、core、config、plugin)。

……

阅读全文

最近文章

分类

标签

其它