Фреймворк MyBatis имеет ограничение на количество элементов в списке List
при выполнении операций массового ввода или обновления — 2100 элементов. По мере роста бизнес-данных список может превышать это значение. Если вам сложно менять старый бизнес-код, этот JAR-файл поможет решить проблему. Он позволяет преодолеть ограничение на количество данных в массовой обработке MyBatis (2100 элементов) без изменения исходного кода. Второе применение заключается в использовании этого JAR-файла как средства автоматической сегментации данных для отправки, что помогает избежать ситуации, когда одна большая транзакция увеличивает уровень блокировки базы данных.### Настройка Maven
<profile>
<id>washmore</id>
<repositories>
<repository>
<id>public</id>
<url>http://maven.washmore.tech/nexus/content/repositories/public</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>central</id>
<url>http://maven.washmore.tech/nexus/content/repositories/public</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
<dependency>
<groupId>tech.washmore</groupId>
<artifactId>util.batchhacker</artifactId>
<version>1.5-SNAPSHOT</version>
</dependency>
```### Пример использования
1. Сначала добавьте AOP-интерцептор в Spring.
Используйте декларативный способ объявления:
Добавьте следующую строку в конфигурационный файл Spring:
@BatchHacker
над методом, который выполняет массовое действие. Если в параметрах есть несколько списков (List
), то вам потребуется дополнительно добавить аннотацию @BatchHackerParam
к параметрам списка с массовыми данными;Поддерживаемые формы входных параметров:
a. Один параметр типа List
;
b. Несколько параметров, один из которых является типом List
;
c. Несколько параметров, содержащие несколько списков (List
), один из которых имеет аннотацию @BatchHackerParam
;
d. Один параметр типа Map
, где одно значение ключа соответствует списку (List
);
Формы выходных данных поддерживаются только в виде Integer
(int).#### советы:
Этот механизм имеет недостаток — методы, вызываемые через ключевое слово this
, не могут быть усилены, так как они не попадают под влияние AOP. Официальное мнение Spring AOP гласит, что при использовании AOP следует избегать внутренних вызовов методов. Конечно, можно обойти это ограничение, заменив this
на полученный из среды Spring бин и затем выполнив вызов метода, но тогда придётся модифицировать исходный код логики, что противоречит цели использования этого небольшого плагина. Однако вы также можете реализовать этот процесс с помощью аннотаций и AOP, но это уже будет история о другом небольшом плагине (автоматическое прокси/усиление внутренних вызовов методов посредством аннотаций)... если вас интересует эта тема, вы можете попробовать самостоятельно (^U^)ノ~YO
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )