19
19
import java .util .Map ;
20
20
import java .util .Set ;
21
21
22
+ import javax .annotation .Nullable ;
22
23
import javax .inject .Provider ;
23
24
import javax .inject .Singleton ;
24
25
import javax .sql .DataSource ;
27
28
import org .apache .ibatis .mapping .DatabaseIdProvider ;
28
29
import org .apache .ibatis .mapping .Environment ;
29
30
import org .apache .ibatis .plugin .Interceptor ;
31
+ import org .apache .ibatis .session .AutoMappingBehavior ;
30
32
import org .apache .ibatis .session .Configuration ;
33
+ import org .apache .ibatis .session .ExecutorType ;
31
34
import org .apache .ibatis .type .TypeHandler ;
32
35
import org .mybatis .guice .configuration .settings .ConfigurationSetting ;
33
36
import org .mybatis .guice .configuration .settings .ConfigurationSettings ;
34
- import org .mybatis .guice .configuration .settings .FailFastSetting ;
35
37
36
38
import com .google .inject .ProvisionException ;
39
+ import com .google .inject .name .Named ;
37
40
38
41
/**
39
42
* Provides the myBatis Configuration.
@@ -46,6 +49,55 @@ public class ConfigurationProvider implements Provider<Configuration> {
46
49
*/
47
50
private final Environment environment ;
48
51
52
+ @ com .google .inject .Inject (optional = true )
53
+ @ Named ("mybatis.configuration.lazyLoadingEnabled" )
54
+ private boolean lazyLoadingEnabled = false ;
55
+
56
+ @ com .google .inject .Inject (optional = true )
57
+ @ Named ("mybatis.configuration.aggressiveLazyLoading" )
58
+ private boolean aggressiveLazyLoading = true ;
59
+
60
+ @ com .google .inject .Inject (optional = true )
61
+ @ Named ("mybatis.configuration.multipleResultSetsEnabled" )
62
+ private boolean multipleResultSetsEnabled = true ;
63
+
64
+ @ com .google .inject .Inject (optional = true )
65
+ @ Named ("mybatis.configuration.useGeneratedKeys" )
66
+ private boolean useGeneratedKeys = false ;
67
+
68
+ @ com .google .inject .Inject (optional = true )
69
+ @ Named ("mybatis.configuration.useColumnLabel" )
70
+ private boolean useColumnLabel = true ;
71
+
72
+ @ com .google .inject .Inject (optional = true )
73
+ @ Named ("mybatis.configuration.cacheEnabled" )
74
+ private boolean cacheEnabled = true ;
75
+
76
+ @ com .google .inject .Inject (optional = true )
77
+ @ Named ("mybatis.configuration.defaultExecutorType" )
78
+ private ExecutorType defaultExecutorType = ExecutorType .SIMPLE ;
79
+
80
+ @ com .google .inject .Inject (optional = true )
81
+ @ Named ("mybatis.configuration.autoMappingBehavior" )
82
+ private AutoMappingBehavior autoMappingBehavior = AutoMappingBehavior .PARTIAL ;
83
+
84
+ @ com .google .inject .Inject (optional = true )
85
+ @ Named ("mybatis.configuration.callSettersOnNulls" )
86
+ private boolean callSettersOnNulls = false ;
87
+
88
+ @ com .google .inject .Inject (optional = true )
89
+ @ Named ("mybatis.configuration.defaultStatementTimeout" )
90
+ @ Nullable
91
+ private Integer defaultStatementTimeout ;
92
+
93
+ @ com .google .inject .Inject (optional = true )
94
+ @ Named ("mybatis.configuration.mapUnderscoreToCamelCase" )
95
+ private boolean mapUnderscoreToCamelCase = false ;
96
+
97
+ @ com .google .inject .Inject (optional = true )
98
+ @ Named ("mybatis.configuration.failFast" )
99
+ private boolean failFast = false ;
100
+
49
101
@ com .google .inject .Inject (optional = true )
50
102
@ TypeAliases
51
103
private Map <String , Class <?>> typeAliases ;
@@ -74,10 +126,6 @@ public class ConfigurationProvider implements Provider<Configuration> {
74
126
@ ConfigurationSettings
75
127
private Set <ConfigurationSetting > configurationSettings = Collections .emptySet ();
76
128
77
- @ com .google .inject .Inject (optional = true )
78
- @ FailFastSetting
79
- private boolean failFast ;
80
-
81
129
/**
82
130
* @since 1.0.1
83
131
*/
@@ -156,7 +204,19 @@ protected Configuration newConfiguration(Environment environment) {
156
204
*/
157
205
@ Override
158
206
public Configuration get () {
207
+ System .out .println (lazyLoadingEnabled );
159
208
final Configuration configuration = newConfiguration (environment );
209
+ configuration .setLazyLoadingEnabled (lazyLoadingEnabled );
210
+ configuration .setAggressiveLazyLoading (aggressiveLazyLoading );
211
+ configuration .setMultipleResultSetsEnabled (multipleResultSetsEnabled );
212
+ configuration .setUseGeneratedKeys (useGeneratedKeys );
213
+ configuration .setUseColumnLabel (useColumnLabel );
214
+ configuration .setCacheEnabled (cacheEnabled );
215
+ configuration .setDefaultExecutorType (defaultExecutorType );
216
+ configuration .setAutoMappingBehavior (autoMappingBehavior );
217
+ configuration .setCallSettersOnNulls (callSettersOnNulls );
218
+ configuration .setDefaultStatementTimeout (defaultStatementTimeout );
219
+ configuration .setMapUnderscoreToCamelCase (mapUnderscoreToCamelCase );
160
220
161
221
for (ConfigurationSetting setting : configurationSettings ){
162
222
setting .applyConfigurationSetting (configuration );
@@ -197,6 +257,7 @@ public Configuration get() {
197
257
} finally {
198
258
ErrorContext .instance ().reset ();
199
259
}
260
+ System .out .println (configuration .isLazyLoadingEnabled ());
200
261
201
262
return configuration ;
202
263
}
0 commit comments