This is an automated email from the ASF dual-hosted git repository.

duanzhengqiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git


The following commit(s) were added to refs/heads/master by this push:
     new 5cc3455af18 Refactor EncryptTokenGenerateBuilder (#32412)
5cc3455af18 is described below

commit 5cc3455af1833b8aa5247655ea56b03233a95eb6
Author: Liang Zhang <[email protected]>
AuthorDate: Mon Aug 5 22:17:00 2024 +0800

    Refactor EncryptTokenGenerateBuilder (#32412)
---
 .../rewrite/token/EncryptTokenGenerateBuilder.java | 30 +++++++++++-----------
 .../EncryptInsertAssignmentTokenGenerator.java     |  7 ++---
 .../EncryptUpdateAssignmentTokenGenerator.java     |  7 ++---
 .../ddl/EncryptAlterTableTokenGenerator.java       |  9 ++++---
 .../ddl/EncryptCreateTableTokenGenerator.java      | 11 ++++----
 .../EncryptInsertCipherNameTokenGenerator.java     |  9 ++++---
 .../EncryptInsertDefaultColumnsTokenGenerator.java | 11 +++++---
 .../EncryptInsertDerivedColumnsTokenGenerator.java | 11 +++++---
 .../EncryptInsertOnUpdateTokenGenerator.java       | 14 +++++-----
 .../insert/EncryptInsertValuesTokenGenerator.java  | 11 ++++----
 .../EncryptPredicateColumnTokenGenerator.java      |  7 ++---
 .../EncryptPredicateRightValueTokenGenerator.java  |  9 ++++---
 ...ncryptInsertSelectProjectionTokenGenerator.java |  9 ++++---
 .../EncryptSelectProjectionTokenGenerator.java     |  9 ++++---
 .../select/EncryptGroupByItemTokenGenerator.java   |  7 ++---
 .../select/EncryptIndexColumnTokenGenerator.java   |  9 ++++---
 .../EncryptInsertAssignmentTokenGeneratorTest.java |  4 +--
 .../EncryptUpdateAssignmentTokenGeneratorTest.java |  4 +--
 .../ddl/EncryptAlterTableTokenGeneratorTest.java   |  4 +--
 .../ddl/EncryptCreateTableTokenGeneratorTest.java  |  4 +--
 .../EncryptInsertCipherNameTokenGeneratorTest.java |  4 +--
 ...ryptInsertDefaultColumnsTokenGeneratorTest.java |  4 +--
 ...ryptInsertDerivedColumnsTokenGeneratorTest.java | 15 +++++------
 .../EncryptInsertOnUpdateTokenGeneratorTest.java   |  4 +--
 .../EncryptInsertValuesTokenGeneratorTest.java     |  4 +--
 .../EncryptPredicateColumnTokenGeneratorTest.java  |  4 +--
 ...cryptPredicateRightValueTokenGeneratorTest.java |  4 +--
 .../EncryptGroupByItemTokenGeneratorTest.java      |  4 +--
 28 files changed, 124 insertions(+), 105 deletions(-)

diff --git 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/EncryptTokenGenerateBuilder.java
 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/EncryptTokenGenerateBuilder.java
index 848cedbba04..056e8e07165 100644
--- 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/EncryptTokenGenerateBuilder.java
+++ 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/EncryptTokenGenerateBuilder.java
@@ -63,21 +63,21 @@ public final class EncryptTokenGenerateBuilder implements 
SQLTokenGeneratorBuild
     @Override
     public Collection<SQLTokenGenerator> getSQLTokenGenerators() {
         Collection<SQLTokenGenerator> result = new LinkedList<>();
-        addSQLTokenGenerator(result, new 
EncryptSelectProjectionTokenGenerator());
-        addSQLTokenGenerator(result, new 
EncryptInsertSelectProjectionTokenGenerator());
-        addSQLTokenGenerator(result, new 
EncryptInsertAssignmentTokenGenerator());
-        addSQLTokenGenerator(result, new 
EncryptUpdateAssignmentTokenGenerator());
-        addSQLTokenGenerator(result, new 
EncryptPredicateColumnTokenGenerator());
-        addSQLTokenGenerator(result, new 
EncryptPredicateRightValueTokenGenerator());
-        addSQLTokenGenerator(result, new EncryptInsertValuesTokenGenerator());
-        addSQLTokenGenerator(result, new 
EncryptInsertDefaultColumnsTokenGenerator());
-        addSQLTokenGenerator(result, new 
EncryptInsertCipherNameTokenGenerator());
-        addSQLTokenGenerator(result, new 
EncryptInsertDerivedColumnsTokenGenerator());
-        addSQLTokenGenerator(result, new 
EncryptInsertOnUpdateTokenGenerator());
-        addSQLTokenGenerator(result, new EncryptGroupByItemTokenGenerator());
-        addSQLTokenGenerator(result, new EncryptIndexColumnTokenGenerator());
-        addSQLTokenGenerator(result, new EncryptCreateTableTokenGenerator());
-        addSQLTokenGenerator(result, new EncryptAlterTableTokenGenerator());
+        addSQLTokenGenerator(result, new 
EncryptSelectProjectionTokenGenerator(encryptRule));
+        addSQLTokenGenerator(result, new 
EncryptInsertSelectProjectionTokenGenerator(encryptRule));
+        addSQLTokenGenerator(result, new 
EncryptInsertAssignmentTokenGenerator(encryptRule));
+        addSQLTokenGenerator(result, new 
EncryptUpdateAssignmentTokenGenerator(encryptRule));
+        addSQLTokenGenerator(result, new 
EncryptPredicateColumnTokenGenerator(encryptRule));
+        addSQLTokenGenerator(result, new 
EncryptPredicateRightValueTokenGenerator(encryptRule));
+        addSQLTokenGenerator(result, new 
EncryptInsertValuesTokenGenerator(encryptRule));
+        addSQLTokenGenerator(result, new 
EncryptInsertDefaultColumnsTokenGenerator(encryptRule));
+        addSQLTokenGenerator(result, new 
EncryptInsertCipherNameTokenGenerator(encryptRule));
+        addSQLTokenGenerator(result, new 
EncryptInsertDerivedColumnsTokenGenerator(encryptRule));
+        addSQLTokenGenerator(result, new 
EncryptInsertOnUpdateTokenGenerator(encryptRule));
+        addSQLTokenGenerator(result, new 
EncryptGroupByItemTokenGenerator(encryptRule));
+        addSQLTokenGenerator(result, new 
EncryptIndexColumnTokenGenerator(encryptRule));
+        addSQLTokenGenerator(result, new 
EncryptCreateTableTokenGenerator(encryptRule));
+        addSQLTokenGenerator(result, new 
EncryptAlterTableTokenGenerator(encryptRule));
         return result;
     }
     
diff --git 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/assignment/EncryptInsertAssignmentTokenGenerator.java
 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/assignment/EncryptInsertAssignmentTokenGenerator.java
index f2b61cc9628..7b40480fe41 100644
--- 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/assignment/EncryptInsertAssignmentTokenGenerator.java
+++ 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/assignment/EncryptInsertAssignmentTokenGenerator.java
@@ -17,9 +17,9 @@
 
 package org.apache.shardingsphere.encrypt.rewrite.token.generator.assignment;
 
+import lombok.RequiredArgsConstructor;
 import lombok.Setter;
 import org.apache.shardingsphere.encrypt.rewrite.aware.DatabaseNameAware;
-import org.apache.shardingsphere.encrypt.rewrite.aware.EncryptRuleAware;
 import org.apache.shardingsphere.encrypt.rule.EncryptRule;
 import org.apache.shardingsphere.infra.annotation.HighFrequencyInvocation;
 import 
org.apache.shardingsphere.infra.binder.context.statement.SQLStatementContext;
@@ -34,10 +34,11 @@ import java.util.Collection;
  * Insert assignment generator for encrypt.
  */
 @HighFrequencyInvocation
+@RequiredArgsConstructor
 @Setter
-public final class EncryptInsertAssignmentTokenGenerator implements 
CollectionSQLTokenGenerator<InsertStatementContext>, EncryptRuleAware, 
DatabaseNameAware {
+public final class EncryptInsertAssignmentTokenGenerator implements 
CollectionSQLTokenGenerator<InsertStatementContext>, DatabaseNameAware {
     
-    private EncryptRule encryptRule;
+    private final EncryptRule encryptRule;
     
     private String databaseName;
     
diff --git 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/assignment/EncryptUpdateAssignmentTokenGenerator.java
 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/assignment/EncryptUpdateAssignmentTokenGenerator.java
index 51444a02688..77248230f19 100644
--- 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/assignment/EncryptUpdateAssignmentTokenGenerator.java
+++ 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/assignment/EncryptUpdateAssignmentTokenGenerator.java
@@ -17,9 +17,9 @@
 
 package org.apache.shardingsphere.encrypt.rewrite.token.generator.assignment;
 
+import lombok.RequiredArgsConstructor;
 import lombok.Setter;
 import org.apache.shardingsphere.encrypt.rewrite.aware.DatabaseNameAware;
-import org.apache.shardingsphere.encrypt.rewrite.aware.EncryptRuleAware;
 import org.apache.shardingsphere.encrypt.rule.EncryptRule;
 import org.apache.shardingsphere.infra.annotation.HighFrequencyInvocation;
 import 
org.apache.shardingsphere.infra.binder.context.statement.SQLStatementContext;
@@ -34,10 +34,11 @@ import java.util.Collection;
  * Update assignment generator for encrypt.
  */
 @HighFrequencyInvocation
+@RequiredArgsConstructor
 @Setter
-public final class EncryptUpdateAssignmentTokenGenerator implements 
CollectionSQLTokenGenerator<UpdateStatementContext>, EncryptRuleAware, 
DatabaseNameAware {
+public final class EncryptUpdateAssignmentTokenGenerator implements 
CollectionSQLTokenGenerator<UpdateStatementContext>, DatabaseNameAware {
     
-    private EncryptRule encryptRule;
+    private final EncryptRule encryptRule;
     
     private String databaseName;
     
diff --git 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/ddl/EncryptAlterTableTokenGenerator.java
 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/ddl/EncryptAlterTableTokenGenerator.java
index ca641ee51f5..096ce3ef87f 100644
--- 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/ddl/EncryptAlterTableTokenGenerator.java
+++ 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/ddl/EncryptAlterTableTokenGenerator.java
@@ -17,17 +17,17 @@
 
 package org.apache.shardingsphere.encrypt.rewrite.token.generator.ddl;
 
+import lombok.RequiredArgsConstructor;
 import lombok.Setter;
 import org.apache.shardingsphere.encrypt.constant.EncryptColumnDataType;
 import 
org.apache.shardingsphere.encrypt.exception.metadata.EncryptColumnAlterException;
-import org.apache.shardingsphere.encrypt.rewrite.aware.EncryptRuleAware;
 import 
org.apache.shardingsphere.encrypt.rewrite.token.pojo.EncryptAlterTableToken;
 import org.apache.shardingsphere.encrypt.rewrite.token.pojo.EncryptColumnToken;
 import org.apache.shardingsphere.encrypt.rule.EncryptRule;
-import org.apache.shardingsphere.encrypt.rule.table.EncryptTable;
 import org.apache.shardingsphere.encrypt.rule.column.EncryptColumn;
 import 
org.apache.shardingsphere.encrypt.rule.column.item.AssistedQueryColumnItem;
 import org.apache.shardingsphere.encrypt.rule.column.item.LikeQueryColumnItem;
+import org.apache.shardingsphere.encrypt.rule.table.EncryptTable;
 import org.apache.shardingsphere.encrypt.spi.EncryptAlgorithm;
 import 
org.apache.shardingsphere.infra.binder.context.statement.SQLStatementContext;
 import 
org.apache.shardingsphere.infra.binder.context.statement.ddl.AlterTableStatementContext;
@@ -54,10 +54,11 @@ import java.util.Optional;
 /**
  * Alter table token generator for encrypt.
  */
+@RequiredArgsConstructor
 @Setter
-public final class EncryptAlterTableTokenGenerator implements 
CollectionSQLTokenGenerator<AlterTableStatementContext>, EncryptRuleAware {
+public final class EncryptAlterTableTokenGenerator implements 
CollectionSQLTokenGenerator<AlterTableStatementContext> {
     
-    private EncryptRule encryptRule;
+    private final EncryptRule encryptRule;
     
     @Override
     public boolean isGenerateSQLToken(final SQLStatementContext 
sqlStatementContext) {
diff --git 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/ddl/EncryptCreateTableTokenGenerator.java
 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/ddl/EncryptCreateTableTokenGenerator.java
index e9d26a8933b..d75f1f426ac 100644
--- 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/ddl/EncryptCreateTableTokenGenerator.java
+++ 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/ddl/EncryptCreateTableTokenGenerator.java
@@ -17,14 +17,13 @@
 
 package org.apache.shardingsphere.encrypt.rewrite.token.generator.ddl;
 
-import lombok.Setter;
+import lombok.RequiredArgsConstructor;
 import org.apache.shardingsphere.encrypt.constant.EncryptColumnDataType;
-import org.apache.shardingsphere.encrypt.rewrite.aware.EncryptRuleAware;
 import org.apache.shardingsphere.encrypt.rewrite.token.pojo.EncryptColumnToken;
 import org.apache.shardingsphere.encrypt.rule.EncryptRule;
-import org.apache.shardingsphere.encrypt.rule.table.EncryptTable;
 import org.apache.shardingsphere.encrypt.rule.column.EncryptColumn;
 import org.apache.shardingsphere.encrypt.rule.column.item.CipherColumnItem;
+import org.apache.shardingsphere.encrypt.rule.table.EncryptTable;
 import 
org.apache.shardingsphere.infra.binder.context.statement.SQLStatementContext;
 import 
org.apache.shardingsphere.infra.binder.context.statement.ddl.CreateTableStatementContext;
 import 
org.apache.shardingsphere.infra.rewrite.sql.token.common.generator.CollectionSQLTokenGenerator;
@@ -41,10 +40,10 @@ import java.util.Optional;
 /**
  * Create table token generator for encrypt.
  */
-@Setter
-public final class EncryptCreateTableTokenGenerator implements 
CollectionSQLTokenGenerator<CreateTableStatementContext>, EncryptRuleAware {
+@RequiredArgsConstructor
+public final class EncryptCreateTableTokenGenerator implements 
CollectionSQLTokenGenerator<CreateTableStatementContext> {
     
-    private EncryptRule encryptRule;
+    private final EncryptRule encryptRule;
     
     @Override
     public boolean isGenerateSQLToken(final SQLStatementContext 
sqlStatementContext) {
diff --git 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/insert/EncryptInsertCipherNameTokenGenerator.java
 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/insert/EncryptInsertCipherNameTokenGenerator.java
index fb0b221222c..9f22506b14f 100644
--- 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/insert/EncryptInsertCipherNameTokenGenerator.java
+++ 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/insert/EncryptInsertCipherNameTokenGenerator.java
@@ -18,11 +18,12 @@
 package org.apache.shardingsphere.encrypt.rewrite.token.generator.insert;
 
 import com.google.common.base.Preconditions;
+import lombok.RequiredArgsConstructor;
 import lombok.Setter;
-import org.apache.shardingsphere.encrypt.rewrite.aware.EncryptRuleAware;
 import 
org.apache.shardingsphere.encrypt.rewrite.token.comparator.InsertSelectColumnsEncryptorComparator;
 import org.apache.shardingsphere.encrypt.rule.EncryptRule;
 import org.apache.shardingsphere.encrypt.rule.table.EncryptTable;
+import org.apache.shardingsphere.infra.annotation.HighFrequencyInvocation;
 import 
org.apache.shardingsphere.infra.binder.context.segment.select.projection.Projection;
 import 
org.apache.shardingsphere.infra.binder.context.segment.select.projection.impl.ColumnProjection;
 import 
org.apache.shardingsphere.infra.binder.context.statement.SQLStatementContext;
@@ -43,10 +44,12 @@ import java.util.Optional;
 /**
  * Insert cipher column name token generator for encrypt.
  */
+@HighFrequencyInvocation
+@RequiredArgsConstructor
 @Setter
-public final class EncryptInsertCipherNameTokenGenerator implements 
CollectionSQLTokenGenerator<InsertStatementContext>, EncryptRuleAware {
+public final class EncryptInsertCipherNameTokenGenerator implements 
CollectionSQLTokenGenerator<InsertStatementContext> {
     
-    private EncryptRule encryptRule;
+    private final EncryptRule encryptRule;
     
     @Override
     public boolean isGenerateSQLToken(final SQLStatementContext 
sqlStatementContext) {
diff --git 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/insert/EncryptInsertDefaultColumnsTokenGenerator.java
 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/insert/EncryptInsertDefaultColumnsTokenGenerator.java
index 92024d5da8e..5dfe863eefe 100644
--- 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/insert/EncryptInsertDefaultColumnsTokenGenerator.java
+++ 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/insert/EncryptInsertDefaultColumnsTokenGenerator.java
@@ -18,12 +18,13 @@
 package org.apache.shardingsphere.encrypt.rewrite.token.generator.insert;
 
 import com.google.common.base.Preconditions;
+import lombok.RequiredArgsConstructor;
 import lombok.Setter;
-import org.apache.shardingsphere.encrypt.rewrite.aware.EncryptRuleAware;
 import 
org.apache.shardingsphere.encrypt.rewrite.token.comparator.InsertSelectColumnsEncryptorComparator;
 import org.apache.shardingsphere.encrypt.rule.EncryptRule;
 import org.apache.shardingsphere.encrypt.rule.column.EncryptColumn;
 import org.apache.shardingsphere.encrypt.rule.table.EncryptTable;
+import org.apache.shardingsphere.infra.annotation.HighFrequencyInvocation;
 import 
org.apache.shardingsphere.infra.binder.context.segment.select.projection.Projection;
 import 
org.apache.shardingsphere.infra.binder.context.statement.SQLStatementContext;
 import 
org.apache.shardingsphere.infra.binder.context.statement.dml.InsertStatementContext;
@@ -45,12 +46,14 @@ import java.util.Optional;
 /**
  * Insert default columns token generator for encrypt.
  */
+@HighFrequencyInvocation
+@RequiredArgsConstructor
 @Setter
-public final class EncryptInsertDefaultColumnsTokenGenerator implements 
OptionalSQLTokenGenerator<InsertStatementContext>, PreviousSQLTokensAware, 
EncryptRuleAware {
+public final class EncryptInsertDefaultColumnsTokenGenerator implements 
OptionalSQLTokenGenerator<InsertStatementContext>, PreviousSQLTokensAware {
     
-    private List<SQLToken> previousSQLTokens;
+    private final EncryptRule encryptRule;
     
-    private EncryptRule encryptRule;
+    private List<SQLToken> previousSQLTokens;
     
     @Override
     public boolean isGenerateSQLToken(final SQLStatementContext 
sqlStatementContext) {
diff --git 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/insert/EncryptInsertDerivedColumnsTokenGenerator.java
 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/insert/EncryptInsertDerivedColumnsTokenGenerator.java
index 563d841ddfe..26d6226e413 100644
--- 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/insert/EncryptInsertDerivedColumnsTokenGenerator.java
+++ 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/insert/EncryptInsertDerivedColumnsTokenGenerator.java
@@ -17,11 +17,12 @@
 
 package org.apache.shardingsphere.encrypt.rewrite.token.generator.insert;
 
+import lombok.RequiredArgsConstructor;
 import lombok.Setter;
-import org.apache.shardingsphere.encrypt.rewrite.aware.EncryptRuleAware;
 import org.apache.shardingsphere.encrypt.rule.EncryptRule;
-import org.apache.shardingsphere.encrypt.rule.table.EncryptTable;
 import org.apache.shardingsphere.encrypt.rule.column.EncryptColumn;
+import org.apache.shardingsphere.encrypt.rule.table.EncryptTable;
+import org.apache.shardingsphere.infra.annotation.HighFrequencyInvocation;
 import 
org.apache.shardingsphere.infra.binder.context.statement.SQLStatementContext;
 import 
org.apache.shardingsphere.infra.binder.context.statement.dml.InsertStatementContext;
 import 
org.apache.shardingsphere.infra.rewrite.sql.token.common.generator.CollectionSQLTokenGenerator;
@@ -37,10 +38,12 @@ import java.util.List;
 /**
  * Insert derived columns token generator for encrypt.
  */
+@HighFrequencyInvocation
+@RequiredArgsConstructor
 @Setter
-public final class EncryptInsertDerivedColumnsTokenGenerator implements 
CollectionSQLTokenGenerator<InsertStatementContext>, EncryptRuleAware {
+public final class EncryptInsertDerivedColumnsTokenGenerator implements 
CollectionSQLTokenGenerator<InsertStatementContext> {
     
-    private EncryptRule encryptRule;
+    private final EncryptRule encryptRule;
     
     @Override
     public boolean isGenerateSQLToken(final SQLStatementContext 
sqlStatementContext) {
diff --git 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/insert/EncryptInsertOnUpdateTokenGenerator.java
 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/insert/EncryptInsertOnUpdateTokenGenerator.java
index ac746983ec0..6f1b2ce03d1 100644
--- 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/insert/EncryptInsertOnUpdateTokenGenerator.java
+++ 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/insert/EncryptInsertOnUpdateTokenGenerator.java
@@ -18,19 +18,20 @@
 package org.apache.shardingsphere.encrypt.rewrite.token.generator.insert;
 
 import com.google.common.base.Preconditions;
+import lombok.RequiredArgsConstructor;
 import lombok.Setter;
 import 
org.apache.shardingsphere.encrypt.exception.syntax.UnsupportedEncryptSQLException;
 import org.apache.shardingsphere.encrypt.rewrite.aware.DatabaseNameAware;
-import org.apache.shardingsphere.encrypt.rewrite.aware.EncryptRuleAware;
 import 
org.apache.shardingsphere.encrypt.rewrite.token.pojo.EncryptAssignmentToken;
 import 
org.apache.shardingsphere.encrypt.rewrite.token.pojo.EncryptFunctionAssignmentToken;
 import 
org.apache.shardingsphere.encrypt.rewrite.token.pojo.EncryptLiteralAssignmentToken;
 import 
org.apache.shardingsphere.encrypt.rewrite.token.pojo.EncryptParameterAssignmentToken;
 import org.apache.shardingsphere.encrypt.rule.EncryptRule;
-import org.apache.shardingsphere.encrypt.rule.table.EncryptTable;
 import org.apache.shardingsphere.encrypt.rule.column.EncryptColumn;
 import 
org.apache.shardingsphere.encrypt.rule.column.item.AssistedQueryColumnItem;
 import org.apache.shardingsphere.encrypt.rule.column.item.LikeQueryColumnItem;
+import org.apache.shardingsphere.encrypt.rule.table.EncryptTable;
+import org.apache.shardingsphere.infra.annotation.HighFrequencyInvocation;
 import 
org.apache.shardingsphere.infra.binder.context.statement.SQLStatementContext;
 import 
org.apache.shardingsphere.infra.binder.context.statement.dml.InsertStatementContext;
 import org.apache.shardingsphere.infra.database.core.type.DatabaseTypeRegistry;
@@ -52,17 +53,18 @@ import java.util.Optional;
 /**
  * Insert on update values token generator for encrypt.
  */
+@HighFrequencyInvocation
+@RequiredArgsConstructor
 @Setter
-public final class EncryptInsertOnUpdateTokenGenerator implements 
CollectionSQLTokenGenerator<InsertStatementContext>, EncryptRuleAware, 
DatabaseNameAware {
+public final class EncryptInsertOnUpdateTokenGenerator implements 
CollectionSQLTokenGenerator<InsertStatementContext>, DatabaseNameAware {
     
-    private EncryptRule encryptRule;
+    private final EncryptRule encryptRule;
     
     private String databaseName;
     
     @Override
     public boolean isGenerateSQLToken(final SQLStatementContext 
sqlStatementContext) {
-        return sqlStatementContext instanceof InsertStatementContext
-                && (((InsertStatementContext) 
sqlStatementContext).getSqlStatement()).getOnDuplicateKeyColumns().isPresent();
+        return sqlStatementContext instanceof InsertStatementContext && 
(((InsertStatementContext) 
sqlStatementContext).getSqlStatement()).getOnDuplicateKeyColumns().isPresent();
     }
     
     @Override
diff --git 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/insert/EncryptInsertValuesTokenGenerator.java
 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/insert/EncryptInsertValuesTokenGenerator.java
index d82a7b9d3b4..18179b82e56 100644
--- 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/insert/EncryptInsertValuesTokenGenerator.java
+++ 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/insert/EncryptInsertValuesTokenGenerator.java
@@ -18,15 +18,15 @@
 package org.apache.shardingsphere.encrypt.rewrite.token.generator.insert;
 
 import com.google.common.base.Preconditions;
+import lombok.RequiredArgsConstructor;
 import lombok.Setter;
 import org.apache.shardingsphere.encrypt.rewrite.aware.DatabaseNameAware;
-import org.apache.shardingsphere.encrypt.rewrite.aware.EncryptRuleAware;
 import 
org.apache.shardingsphere.encrypt.rewrite.token.pojo.EncryptInsertValuesToken;
 import org.apache.shardingsphere.encrypt.rule.EncryptRule;
-import org.apache.shardingsphere.encrypt.rule.table.EncryptTable;
 import org.apache.shardingsphere.encrypt.rule.column.EncryptColumn;
 import 
org.apache.shardingsphere.encrypt.rule.column.item.AssistedQueryColumnItem;
 import org.apache.shardingsphere.encrypt.rule.column.item.LikeQueryColumnItem;
+import org.apache.shardingsphere.encrypt.rule.table.EncryptTable;
 import 
org.apache.shardingsphere.infra.binder.context.segment.insert.values.InsertValueContext;
 import 
org.apache.shardingsphere.infra.binder.context.segment.insert.values.expression.DerivedLiteralExpressionSegment;
 import 
org.apache.shardingsphere.infra.binder.context.segment.insert.values.expression.DerivedParameterMarkerExpressionSegment;
@@ -54,12 +54,13 @@ import java.util.Optional;
 /**
  * Insert values token generator for encrypt.
  */
+@RequiredArgsConstructor
 @Setter
-public final class EncryptInsertValuesTokenGenerator implements 
OptionalSQLTokenGenerator<InsertStatementContext>, PreviousSQLTokensAware, 
EncryptRuleAware, DatabaseNameAware {
+public final class EncryptInsertValuesTokenGenerator implements 
OptionalSQLTokenGenerator<InsertStatementContext>, PreviousSQLTokensAware, 
DatabaseNameAware {
     
-    private List<SQLToken> previousSQLTokens;
+    private final EncryptRule encryptRule;
     
-    private EncryptRule encryptRule;
+    private List<SQLToken> previousSQLTokens;
     
     private String databaseName;
     
diff --git 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/predicate/EncryptPredicateColumnTokenGenerator.java
 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/predicate/EncryptPredicateColumnTokenGenerator.java
index 76bec710ddc..5b7af3cfeb0 100644
--- 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/predicate/EncryptPredicateColumnTokenGenerator.java
+++ 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/predicate/EncryptPredicateColumnTokenGenerator.java
@@ -18,8 +18,8 @@
 package org.apache.shardingsphere.encrypt.rewrite.token.generator.predicate;
 
 import com.google.common.base.Preconditions;
+import lombok.RequiredArgsConstructor;
 import lombok.Setter;
-import org.apache.shardingsphere.encrypt.rewrite.aware.EncryptRuleAware;
 import org.apache.shardingsphere.encrypt.rule.EncryptRule;
 import org.apache.shardingsphere.encrypt.rule.column.EncryptColumn;
 import org.apache.shardingsphere.encrypt.rule.column.item.LikeQueryColumnItem;
@@ -55,10 +55,11 @@ import java.util.Optional;
  * Predicate column token generator for encrypt.
  */
 @HighFrequencyInvocation
+@RequiredArgsConstructor
 @Setter
-public final class EncryptPredicateColumnTokenGenerator implements 
CollectionSQLTokenGenerator<SQLStatementContext>, EncryptRuleAware, 
SchemaMetaDataAware {
+public final class EncryptPredicateColumnTokenGenerator implements 
CollectionSQLTokenGenerator<SQLStatementContext>, SchemaMetaDataAware {
     
-    private EncryptRule encryptRule;
+    private final EncryptRule encryptRule;
     
     private Map<String, ShardingSphereSchema> schemas;
     
diff --git 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/predicate/EncryptPredicateRightValueTokenGenerator.java
 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/predicate/EncryptPredicateRightValueTokenGenerator.java
index 017be868aab..5963c2d5b7c 100644
--- 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/predicate/EncryptPredicateRightValueTokenGenerator.java
+++ 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/predicate/EncryptPredicateRightValueTokenGenerator.java
@@ -17,11 +17,11 @@
 
 package org.apache.shardingsphere.encrypt.rewrite.token.generator.predicate;
 
+import lombok.RequiredArgsConstructor;
 import lombok.Setter;
 import 
org.apache.shardingsphere.encrypt.exception.metadata.MissingMatchedEncryptQueryAlgorithmException;
 import org.apache.shardingsphere.encrypt.rewrite.aware.DatabaseNameAware;
 import org.apache.shardingsphere.encrypt.rewrite.aware.EncryptConditionsAware;
-import org.apache.shardingsphere.encrypt.rewrite.aware.EncryptRuleAware;
 import org.apache.shardingsphere.encrypt.rewrite.condition.EncryptCondition;
 import 
org.apache.shardingsphere.encrypt.rewrite.condition.impl.EncryptBinaryCondition;
 import 
org.apache.shardingsphere.encrypt.rewrite.condition.impl.EncryptInCondition;
@@ -52,15 +52,16 @@ import java.util.Map;
  * Predicate right value token generator for encrypt.
  */
 @HighFrequencyInvocation
+@RequiredArgsConstructor
 @Setter
-public final class EncryptPredicateRightValueTokenGenerator implements 
CollectionSQLTokenGenerator<SQLStatementContext>, ParametersAware, 
EncryptConditionsAware, EncryptRuleAware, DatabaseNameAware {
+public final class EncryptPredicateRightValueTokenGenerator implements 
CollectionSQLTokenGenerator<SQLStatementContext>, ParametersAware, 
EncryptConditionsAware, DatabaseNameAware {
+    
+    private final EncryptRule encryptRule;
     
     private List<Object> parameters;
     
     private Collection<EncryptCondition> encryptConditions;
     
-    private EncryptRule encryptRule;
-    
     private String databaseName;
     
     @Override
diff --git 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/projection/EncryptInsertSelectProjectionTokenGenerator.java
 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/projection/EncryptInsertSelectProjectionTokenGenerator.java
index 6f9f47ccd29..a77a7633a66 100644
--- 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/projection/EncryptInsertSelectProjectionTokenGenerator.java
+++ 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/projection/EncryptInsertSelectProjectionTokenGenerator.java
@@ -17,9 +17,9 @@
 
 package org.apache.shardingsphere.encrypt.rewrite.token.generator.projection;
 
+import lombok.RequiredArgsConstructor;
 import lombok.Setter;
 import org.apache.shardingsphere.encrypt.rewrite.aware.DatabaseTypeAware;
-import org.apache.shardingsphere.encrypt.rewrite.aware.EncryptRuleAware;
 import org.apache.shardingsphere.encrypt.rule.EncryptRule;
 import org.apache.shardingsphere.infra.annotation.HighFrequencyInvocation;
 import 
org.apache.shardingsphere.infra.binder.context.statement.SQLStatementContext;
@@ -36,12 +36,13 @@ import java.util.List;
  * Insert select projection token generator for encrypt.
  */
 @HighFrequencyInvocation
+@RequiredArgsConstructor
 @Setter
-public final class EncryptInsertSelectProjectionTokenGenerator implements 
CollectionSQLTokenGenerator<InsertStatementContext>, PreviousSQLTokensAware, 
EncryptRuleAware, DatabaseTypeAware {
+public final class EncryptInsertSelectProjectionTokenGenerator implements 
CollectionSQLTokenGenerator<InsertStatementContext>, PreviousSQLTokensAware, 
DatabaseTypeAware {
     
-    private List<SQLToken> previousSQLTokens;
+    private final EncryptRule encryptRule;
     
-    private EncryptRule encryptRule;
+    private List<SQLToken> previousSQLTokens;
     
     private DatabaseType databaseType;
     
diff --git 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/projection/EncryptSelectProjectionTokenGenerator.java
 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/projection/EncryptSelectProjectionTokenGenerator.java
index 7f7b964ba38..d199ce3d3bd 100644
--- 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/projection/EncryptSelectProjectionTokenGenerator.java
+++ 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/projection/EncryptSelectProjectionTokenGenerator.java
@@ -17,9 +17,9 @@
 
 package org.apache.shardingsphere.encrypt.rewrite.token.generator.projection;
 
+import lombok.RequiredArgsConstructor;
 import lombok.Setter;
 import org.apache.shardingsphere.encrypt.rewrite.aware.DatabaseTypeAware;
-import org.apache.shardingsphere.encrypt.rewrite.aware.EncryptRuleAware;
 import org.apache.shardingsphere.encrypt.rule.EncryptRule;
 import org.apache.shardingsphere.infra.annotation.HighFrequencyInvocation;
 import 
org.apache.shardingsphere.infra.binder.context.statement.SQLStatementContext;
@@ -36,12 +36,13 @@ import java.util.List;
  * Select projection token generator for encrypt.
  */
 @HighFrequencyInvocation
+@RequiredArgsConstructor
 @Setter
-public final class EncryptSelectProjectionTokenGenerator implements 
CollectionSQLTokenGenerator<SelectStatementContext>, PreviousSQLTokensAware, 
EncryptRuleAware, DatabaseTypeAware {
+public final class EncryptSelectProjectionTokenGenerator implements 
CollectionSQLTokenGenerator<SelectStatementContext>, PreviousSQLTokensAware, 
DatabaseTypeAware {
     
-    private List<SQLToken> previousSQLTokens;
+    private final EncryptRule encryptRule;
     
-    private EncryptRule encryptRule;
+    private List<SQLToken> previousSQLTokens;
     
     private DatabaseType databaseType;
     
diff --git 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/select/EncryptGroupByItemTokenGenerator.java
 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/select/EncryptGroupByItemTokenGenerator.java
index 71dc9a8d202..3316c7bdad5 100644
--- 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/select/EncryptGroupByItemTokenGenerator.java
+++ 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/select/EncryptGroupByItemTokenGenerator.java
@@ -17,9 +17,9 @@
 
 package org.apache.shardingsphere.encrypt.rewrite.token.generator.select;
 
+import lombok.RequiredArgsConstructor;
 import lombok.Setter;
 import org.apache.shardingsphere.encrypt.rewrite.aware.DatabaseTypeAware;
-import org.apache.shardingsphere.encrypt.rewrite.aware.EncryptRuleAware;
 import org.apache.shardingsphere.encrypt.rule.EncryptRule;
 import org.apache.shardingsphere.encrypt.rule.column.EncryptColumn;
 import org.apache.shardingsphere.encrypt.rule.table.EncryptTable;
@@ -51,10 +51,11 @@ import java.util.Optional;
  * Group by item token generator for encrypt.
  */
 @HighFrequencyInvocation
+@RequiredArgsConstructor
 @Setter
-public final class EncryptGroupByItemTokenGenerator implements 
CollectionSQLTokenGenerator<SelectStatementContext>, EncryptRuleAware, 
SchemaMetaDataAware, DatabaseTypeAware {
+public final class EncryptGroupByItemTokenGenerator implements 
CollectionSQLTokenGenerator<SelectStatementContext>, SchemaMetaDataAware, 
DatabaseTypeAware {
     
-    private EncryptRule encryptRule;
+    private final EncryptRule encryptRule;
     
     private Map<String, ShardingSphereSchema> schemas;
     
diff --git 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/select/EncryptIndexColumnTokenGenerator.java
 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/select/EncryptIndexColumnTokenGenerator.java
index 8335612eedb..d6d07f01a76 100644
--- 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/select/EncryptIndexColumnTokenGenerator.java
+++ 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/select/EncryptIndexColumnTokenGenerator.java
@@ -17,12 +17,13 @@
 
 package org.apache.shardingsphere.encrypt.rewrite.token.generator.select;
 
+import lombok.RequiredArgsConstructor;
 import lombok.Setter;
 import org.apache.shardingsphere.encrypt.rewrite.aware.DatabaseTypeAware;
-import org.apache.shardingsphere.encrypt.rewrite.aware.EncryptRuleAware;
 import org.apache.shardingsphere.encrypt.rule.EncryptRule;
 import org.apache.shardingsphere.encrypt.rule.column.EncryptColumn;
 import org.apache.shardingsphere.encrypt.rule.table.EncryptTable;
+import org.apache.shardingsphere.infra.annotation.HighFrequencyInvocation;
 import 
org.apache.shardingsphere.infra.binder.context.segment.select.projection.Projection;
 import 
org.apache.shardingsphere.infra.binder.context.segment.select.projection.impl.ColumnProjection;
 import 
org.apache.shardingsphere.infra.binder.context.statement.SQLStatementContext;
@@ -44,10 +45,12 @@ import java.util.Optional;
 /**
  * Index column token generator for encrypt.
  */
+@HighFrequencyInvocation
+@RequiredArgsConstructor
 @Setter
-public final class EncryptIndexColumnTokenGenerator implements 
CollectionSQLTokenGenerator<SQLStatementContext>, EncryptRuleAware, 
DatabaseTypeAware {
+public final class EncryptIndexColumnTokenGenerator implements 
CollectionSQLTokenGenerator<SQLStatementContext>, DatabaseTypeAware {
     
-    private EncryptRule encryptRule;
+    private final EncryptRule encryptRule;
     
     private DatabaseType databaseType;
     
diff --git 
a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/assignment/EncryptInsertAssignmentTokenGeneratorTest.java
 
b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/assignment/EncryptInsertAssignmentTokenGeneratorTest.java
index 8c538a788e0..6c882557e37 100644
--- 
a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/assignment/EncryptInsertAssignmentTokenGeneratorTest.java
+++ 
b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/assignment/EncryptInsertAssignmentTokenGeneratorTest.java
@@ -39,7 +39,7 @@ import static org.mockito.Mockito.when;
 @ExtendWith(MockitoExtension.class)
 class EncryptInsertAssignmentTokenGeneratorTest {
     
-    private final EncryptInsertAssignmentTokenGenerator tokenGenerator = new 
EncryptInsertAssignmentTokenGenerator();
+    private EncryptInsertAssignmentTokenGenerator tokenGenerator;
     
     @Mock(answer = Answers.RETURNS_DEEP_STUBS)
     private InsertStatementContext insertStatementContext;
@@ -49,7 +49,7 @@ class EncryptInsertAssignmentTokenGeneratorTest {
     
     @BeforeEach
     void setup() {
-        tokenGenerator.setEncryptRule(mockEncryptRule());
+        tokenGenerator = new 
EncryptInsertAssignmentTokenGenerator(mockEncryptRule());
         
when(insertStatementContext.getTablesContext().getSimpleTables().iterator().next().getTableName().getIdentifier().getValue()).thenReturn("table");
         ColumnAssignmentSegment assignmentSegment = 
mock(ColumnAssignmentSegment.class);
         
when(setAssignmentSegment.getAssignments()).thenReturn(Collections.singleton(assignmentSegment));
diff --git 
a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/assignment/EncryptUpdateAssignmentTokenGeneratorTest.java
 
b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/assignment/EncryptUpdateAssignmentTokenGeneratorTest.java
index f3a67d43b8a..2038b25a38e 100644
--- 
a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/assignment/EncryptUpdateAssignmentTokenGeneratorTest.java
+++ 
b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/assignment/EncryptUpdateAssignmentTokenGeneratorTest.java
@@ -38,14 +38,14 @@ import static org.mockito.Mockito.when;
 @ExtendWith(MockitoExtension.class)
 class EncryptUpdateAssignmentTokenGeneratorTest {
     
-    private final EncryptUpdateAssignmentTokenGenerator tokenGenerator = new 
EncryptUpdateAssignmentTokenGenerator();
+    private EncryptUpdateAssignmentTokenGenerator tokenGenerator;
     
     @Mock(answer = Answers.RETURNS_DEEP_STUBS)
     private UpdateStatementContext updateStatementContext;
     
     @BeforeEach
     void setup() {
-        tokenGenerator.setEncryptRule(mockEncryptRule());
+        tokenGenerator = new 
EncryptUpdateAssignmentTokenGenerator(mockEncryptRule());
         
when(updateStatementContext.getTablesContext().getSimpleTables().iterator().next().getTableName().getIdentifier().getValue()).thenReturn("table");
         ColumnAssignmentSegment assignmentSegment = 
mock(ColumnAssignmentSegment.class);
         
when(updateStatementContext.getSqlStatement().getSetAssignment().getAssignments()).thenReturn(Collections.singleton(assignmentSegment));
diff --git 
a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/ddl/EncryptAlterTableTokenGeneratorTest.java
 
b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/ddl/EncryptAlterTableTokenGeneratorTest.java
index b17686e1c4a..341e059dfb7 100644
--- 
a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/ddl/EncryptAlterTableTokenGeneratorTest.java
+++ 
b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/ddl/EncryptAlterTableTokenGeneratorTest.java
@@ -52,11 +52,11 @@ import static org.mockito.Mockito.when;
 
 class EncryptAlterTableTokenGeneratorTest {
     
-    private final EncryptAlterTableTokenGenerator generator = new 
EncryptAlterTableTokenGenerator();
+    private EncryptAlterTableTokenGenerator generator;
     
     @BeforeEach
     void setup() {
-        generator.setEncryptRule(mockEncryptRule());
+        generator = new EncryptAlterTableTokenGenerator(mockEncryptRule());
     }
     
     private EncryptRule mockEncryptRule() {
diff --git 
a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/ddl/EncryptCreateTableTokenGeneratorTest.java
 
b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/ddl/EncryptCreateTableTokenGeneratorTest.java
index 4dcf7a2e852..cabd35062eb 100644
--- 
a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/ddl/EncryptCreateTableTokenGeneratorTest.java
+++ 
b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/ddl/EncryptCreateTableTokenGeneratorTest.java
@@ -48,11 +48,11 @@ import static org.mockito.Mockito.when;
 
 class EncryptCreateTableTokenGeneratorTest {
     
-    private final EncryptCreateTableTokenGenerator generator = new 
EncryptCreateTableTokenGenerator();
+    private EncryptCreateTableTokenGenerator generator;
     
     @BeforeEach
     void setup() {
-        generator.setEncryptRule(mockEncryptRule());
+        generator = new EncryptCreateTableTokenGenerator(mockEncryptRule());
     }
     
     private EncryptRule mockEncryptRule() {
diff --git 
a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/insert/EncryptInsertCipherNameTokenGeneratorTest.java
 
b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/insert/EncryptInsertCipherNameTokenGeneratorTest.java
index 8e32652550d..c99a130656a 100644
--- 
a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/insert/EncryptInsertCipherNameTokenGeneratorTest.java
+++ 
b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/insert/EncryptInsertCipherNameTokenGeneratorTest.java
@@ -34,11 +34,11 @@ import static org.mockito.Mockito.mock;
 
 class EncryptInsertCipherNameTokenGeneratorTest {
     
-    private final EncryptInsertCipherNameTokenGenerator generator = new 
EncryptInsertCipherNameTokenGenerator();
+    private EncryptInsertCipherNameTokenGenerator generator;
     
     @BeforeEach
     void setup() {
-        
generator.setEncryptRule(EncryptGeneratorFixtureBuilder.createEncryptRule());
+        generator = new 
EncryptInsertCipherNameTokenGenerator(EncryptGeneratorFixtureBuilder.createEncryptRule());
     }
     
     @Test
diff --git 
a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/insert/EncryptInsertDefaultColumnsTokenGeneratorTest.java
 
b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/insert/EncryptInsertDefaultColumnsTokenGeneratorTest.java
index ce3c8ce207e..774903a37f8 100644
--- 
a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/insert/EncryptInsertDefaultColumnsTokenGeneratorTest.java
+++ 
b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/insert/EncryptInsertDefaultColumnsTokenGeneratorTest.java
@@ -31,11 +31,11 @@ import static org.junit.jupiter.api.Assertions.assertThrows;
 
 class EncryptInsertDefaultColumnsTokenGeneratorTest {
     
-    private final EncryptInsertDefaultColumnsTokenGenerator generator = new 
EncryptInsertDefaultColumnsTokenGenerator();
+    private EncryptInsertDefaultColumnsTokenGenerator generator;
     
     @BeforeEach
     void setup() {
-        
generator.setEncryptRule(EncryptGeneratorFixtureBuilder.createEncryptRule());
+        generator = new 
EncryptInsertDefaultColumnsTokenGenerator(EncryptGeneratorFixtureBuilder.createEncryptRule());
     }
     
     @Test
diff --git 
a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/insert/EncryptInsertDerivedColumnsTokenGeneratorTest.java
 
b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/insert/EncryptInsertDerivedColumnsTokenGeneratorTest.java
index 12852236676..5dc6eab64ef 100644
--- 
a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/insert/EncryptInsertDerivedColumnsTokenGeneratorTest.java
+++ 
b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/insert/EncryptInsertDerivedColumnsTokenGeneratorTest.java
@@ -43,25 +43,24 @@ class EncryptInsertDerivedColumnsTokenGeneratorTest {
     
     @Test
     void assertIsNotGenerateSQLTokenWithNotInsertStatementContext() {
-        assertFalse(new 
EncryptInsertDerivedColumnsTokenGenerator().isGenerateSQLToken(mock(SQLStatementContext.class)));
+        assertFalse(new 
EncryptInsertDerivedColumnsTokenGenerator(mock(EncryptRule.class)).isGenerateSQLToken(mock(SQLStatementContext.class)));
     }
     
     @Test
     void assertIsNotGenerateSQLTokenWithoutInsertColumns() {
-        assertFalse(new 
EncryptInsertDerivedColumnsTokenGenerator().isGenerateSQLToken(mock(InsertStatementContext.class,
 RETURNS_DEEP_STUBS)));
+        assertFalse(new 
EncryptInsertDerivedColumnsTokenGenerator(mock(EncryptRule.class)).isGenerateSQLToken(mock(InsertStatementContext.class,
 RETURNS_DEEP_STUBS)));
     }
     
     @Test
     void assertIsGenerateSQLTokenWithInsertColumns() {
         InsertStatementContext insertStatementContext = 
mock(InsertStatementContext.class, RETURNS_DEEP_STUBS);
         when(insertStatementContext.containsInsertColumns()).thenReturn(true);
-        assertTrue(new 
EncryptInsertDerivedColumnsTokenGenerator().isGenerateSQLToken(insertStatementContext));
+        assertTrue(new 
EncryptInsertDerivedColumnsTokenGenerator(mock(EncryptRule.class)).isGenerateSQLToken(insertStatementContext));
     }
     
     @Test
     void assertGenerateSQLTokensNotContainColumns() {
-        EncryptInsertDerivedColumnsTokenGenerator tokenGenerator = new 
EncryptInsertDerivedColumnsTokenGenerator();
-        tokenGenerator.setEncryptRule(mockEncryptRule());
+        EncryptInsertDerivedColumnsTokenGenerator tokenGenerator = new 
EncryptInsertDerivedColumnsTokenGenerator(mockEncryptRule());
         InsertStatementContext insertStatementContext = 
mock(InsertStatementContext.class, RETURNS_DEEP_STUBS);
         
when(insertStatementContext.getSqlStatement().getTable().getTableName().getIdentifier().getValue()).thenReturn("foo_tbl");
         
assertTrue(tokenGenerator.generateSQLTokens(insertStatementContext).isEmpty());
@@ -69,8 +68,7 @@ class EncryptInsertDerivedColumnsTokenGeneratorTest {
     
     @Test
     void assertGenerateSQLTokensNotExistColumns() {
-        EncryptInsertDerivedColumnsTokenGenerator tokenGenerator = new 
EncryptInsertDerivedColumnsTokenGenerator();
-        tokenGenerator.setEncryptRule(mockEncryptRule());
+        EncryptInsertDerivedColumnsTokenGenerator tokenGenerator = new 
EncryptInsertDerivedColumnsTokenGenerator(mockEncryptRule());
         ColumnSegment columnSegment = mock(ColumnSegment.class, 
RETURNS_DEEP_STUBS);
         when(columnSegment.getIdentifier().getValue()).thenReturn("bar_col");
         InsertStatementContext insertStatementContext = 
mockInsertStatementContext();
@@ -80,8 +78,7 @@ class EncryptInsertDerivedColumnsTokenGeneratorTest {
     
     @Test
     void assertGenerateSQLTokensExistColumns() {
-        EncryptInsertDerivedColumnsTokenGenerator tokenGenerator = new 
EncryptInsertDerivedColumnsTokenGenerator();
-        tokenGenerator.setEncryptRule(mockEncryptRule());
+        EncryptInsertDerivedColumnsTokenGenerator tokenGenerator = new 
EncryptInsertDerivedColumnsTokenGenerator(mockEncryptRule());
         Collection<SQLToken> actual = 
tokenGenerator.generateSQLTokens(mockInsertStatementContext());
         assertThat(actual.size(), is(1));
         assertThat(actual.iterator().next().getStartIndex(), is(1));
diff --git 
a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/insert/EncryptInsertOnUpdateTokenGeneratorTest.java
 
b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/insert/EncryptInsertOnUpdateTokenGeneratorTest.java
index c4ead339a27..1863577e0a3 100644
--- 
a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/insert/EncryptInsertOnUpdateTokenGeneratorTest.java
+++ 
b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/insert/EncryptInsertOnUpdateTokenGeneratorTest.java
@@ -52,11 +52,11 @@ import static org.mockito.Mockito.when;
 
 class EncryptInsertOnUpdateTokenGeneratorTest {
     
-    private final EncryptInsertOnUpdateTokenGenerator generator = new 
EncryptInsertOnUpdateTokenGenerator();
+    private EncryptInsertOnUpdateTokenGenerator generator;
     
     @BeforeEach
     void setup() {
-        generator.setEncryptRule(mockEncryptRule());
+        generator = new EncryptInsertOnUpdateTokenGenerator(mockEncryptRule());
     }
     
     private EncryptRule mockEncryptRule() {
diff --git 
a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/insert/EncryptInsertValuesTokenGeneratorTest.java
 
b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/insert/EncryptInsertValuesTokenGeneratorTest.java
index 5ff93a590c1..c9e92255309 100644
--- 
a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/insert/EncryptInsertValuesTokenGeneratorTest.java
+++ 
b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/insert/EncryptInsertValuesTokenGeneratorTest.java
@@ -30,11 +30,11 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
 
 class EncryptInsertValuesTokenGeneratorTest {
     
-    private final EncryptInsertValuesTokenGenerator generator = new 
EncryptInsertValuesTokenGenerator();
+    private EncryptInsertValuesTokenGenerator generator;
     
     @BeforeEach
     void setup() {
-        
generator.setEncryptRule(EncryptGeneratorFixtureBuilder.createEncryptRule());
+        generator = new 
EncryptInsertValuesTokenGenerator(EncryptGeneratorFixtureBuilder.createEncryptRule());
     }
     
     @Test
diff --git 
a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/predicate/EncryptPredicateColumnTokenGeneratorTest.java
 
b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/predicate/EncryptPredicateColumnTokenGeneratorTest.java
index f0eeedc0688..5d9dd2c6a18 100644
--- 
a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/predicate/EncryptPredicateColumnTokenGeneratorTest.java
+++ 
b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/predicate/EncryptPredicateColumnTokenGeneratorTest.java
@@ -32,11 +32,11 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
 
 class EncryptPredicateColumnTokenGeneratorTest {
     
-    private final EncryptPredicateColumnTokenGenerator generator = new 
EncryptPredicateColumnTokenGenerator();
+    private EncryptPredicateColumnTokenGenerator generator;
     
     @BeforeEach
     void setup() {
-        
generator.setEncryptRule(EncryptGeneratorFixtureBuilder.createEncryptRule());
+        generator = new 
EncryptPredicateColumnTokenGenerator(EncryptGeneratorFixtureBuilder.createEncryptRule());
     }
     
     @Test
diff --git 
a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/predicate/EncryptPredicateRightValueTokenGeneratorTest.java
 
b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/predicate/EncryptPredicateRightValueTokenGeneratorTest.java
index f8aa3562606..fdf1e04dee9 100644
--- 
a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/predicate/EncryptPredicateRightValueTokenGeneratorTest.java
+++ 
b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/predicate/EncryptPredicateRightValueTokenGeneratorTest.java
@@ -37,11 +37,11 @@ import static org.mockito.Mockito.mock;
 
 class EncryptPredicateRightValueTokenGeneratorTest {
     
-    private final EncryptPredicateRightValueTokenGenerator generator = new 
EncryptPredicateRightValueTokenGenerator();
+    private EncryptPredicateRightValueTokenGenerator generator;
     
     @BeforeEach
     void setup() {
-        
generator.setEncryptRule(EncryptGeneratorFixtureBuilder.createEncryptRule());
+        generator = new 
EncryptPredicateRightValueTokenGenerator(EncryptGeneratorFixtureBuilder.createEncryptRule());
     }
     
     @Test
diff --git 
a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/select/EncryptGroupByItemTokenGeneratorTest.java
 
b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/select/EncryptGroupByItemTokenGeneratorTest.java
index b31622c841b..d9ecee17c25 100644
--- 
a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/select/EncryptGroupByItemTokenGeneratorTest.java
+++ 
b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/select/EncryptGroupByItemTokenGeneratorTest.java
@@ -50,13 +50,13 @@ import static org.mockito.Mockito.when;
 
 class EncryptGroupByItemTokenGeneratorTest {
     
-    private final EncryptGroupByItemTokenGenerator generator = new 
EncryptGroupByItemTokenGenerator();
+    private EncryptGroupByItemTokenGenerator generator;
     
     private final DatabaseType databaseType = 
TypedSPILoader.getService(DatabaseType.class, "FIXTURE");
     
     @BeforeEach
     void setup() {
-        generator.setEncryptRule(mockEncryptRule());
+        generator = new EncryptGroupByItemTokenGenerator(mockEncryptRule());
         generator.setSchemas(Collections.singletonMap("test", 
mock(ShardingSphereSchema.class)));
         generator.setDatabaseType(databaseType);
     }

Reply via email to