Tùy chọn cấu hình¶
Cấu hình trong LarkBatis được phân chia rõ ràng theo từng giai đoạn: tùy chọn compiler processor lúc biên dịch, cấu hình build plugin, và thiết lập runtime khi ứng dụng khởi chạy.
Tùy chọn Annotation Processor (Compile-time)¶
Truyền cho javac dưới dạng tham số -A<key>=<value>:
| Tùy chọn | Ý nghĩa | Giá trị mặc định |
|---|---|---|
larkbatis.registryPackage |
Tên package cho class factory LarkBatisMappers sinh ra |
Tiền tố package chung của các mapper |
larkbatis.mapperDir |
Danh sách thư mục chứa mapper XML (phân tách bằng dấu phẩy) | Build plugin tự động gán src/main/resources |
larkbatis.mapUnderscoreToCamelCase |
Tự động ánh xạ snake_case sang camelCase lúc build |
true |
larkbatis.typeHandlers |
Đăng ký TypeHandler toàn cục dạng javaType:handlerClass,... |
Không có |
larkbatis.springConfig |
Bật/tắt tự động sinh class @Configuration cho Spring |
true (khi có spring-context trên classpath) |
larkbatis.springConfigPackage |
Package cho class LarkBatisMapperConfiguration |
Giống registryPackage |
Ánh xạ tên cột (Column Naming)¶
Mặc định, cột created_at sẽ tự động được ánh xạ sang setter setCreatedAt. Để tắt quy tắc này (giữ nguyên cách xử lý cũ của MyBatis), cấu hình:
Đăng ký TypeHandler toàn dự án¶
Thay vì cấu hình thẻ <typeHandlers> trong XML runtime, bạn khai báo trực tiếp cho javac:
-Alarkbatis.typeHandlers=com.example.Money:com.example.MoneyHandler,\
com.example.JsonNode:com.example.JsonNodeHandler
Compiler sẽ xác thực cả kiểu dữ liệu Java lẫn class handler trong quá trình build, đảm bảo handler tồn tại và implement LarkBatisTypeHandler hợp lệ.
Cờ trình biên dịch bắt buộc¶
| Cờ compiler | Lý do |
|---|---|
-parameters |
Yêu cầu javac lưu tên tham số phương thức vào bytecode. Điều này rất quan trọng để Gradle incremental build không bị mất tên biến #{id} thành arg0. Nếu không bật cờ này, bạn bắt buộc phải gắn @Param cho từng tham số |
Cấu hình Build Plugin¶
Cấu hình nhiều thư mục XML¶
Cấu hình Runtime¶
Kiểm soát chi phí bộ nhớ của statement cache khi sử dụng ${}:
| Thuộc tính | Mặc định | Ý nghĩa |
|---|---|---|
max-sql-variants |
64 |
Số lượng câu SQL động riêng biệt tối đa cho một statement trước khi phát cảnh báo |
fail-on-unbounded-fragment |
false |
Khi bật true, ném LarkBatisUnboundedVariantsException thay vì chỉ ghi log cảnh báo |
Tùy biến Spring @Configuration sinh sẵn¶
| Nhu cầu | Giải pháp |
|---|---|
| Mapper nằm ngoài package quét mặc định | Thêm -Alarkbatis.springConfigPackage=com.example.app hoặc khai báo @Import(LarkBatisMapperConfiguration.class) |
| Tự cấu hình mapper bean thủ công | Thêm -Alarkbatis.springConfig=false để tắt sinh @Configuration tự động |
| Dự án có nhiều DataSource | Đánh dấu một DataSource là @Primary, hoặc tắt auto configuration để tự inject SpringLarkBatisSession riêng |