1919import java .util .Map ;
2020import java .util .Set ;
2121
22+ import javax .annotation .Nullable ;
2223import javax .inject .Provider ;
2324import javax .inject .Singleton ;
2425import javax .sql .DataSource ;
2728import org .apache .ibatis .mapping .DatabaseIdProvider ;
2829import org .apache .ibatis .mapping .Environment ;
2930import org .apache .ibatis .plugin .Interceptor ;
31+ import org .apache .ibatis .session .AutoMappingBehavior ;
3032import org .apache .ibatis .session .Configuration ;
33+ import org .apache .ibatis .session .ExecutorType ;
3134import org .apache .ibatis .type .TypeHandler ;
3235import org .mybatis .guice .configuration .settings .ConfigurationSetting ;
3336import org .mybatis .guice .configuration .settings .ConfigurationSettings ;
34- import org .mybatis .guice .configuration .settings .FailFastSetting ;
3537
3638import com .google .inject .ProvisionException ;
39+ import com .google .inject .name .Named ;
3740
3841/**
3942 * Provides the myBatis Configuration.
@@ -46,6 +49,55 @@ public class ConfigurationProvider implements Provider<Configuration> {
4649 */
4750 private final Environment environment ;
4851
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+
49101 @ com .google .inject .Inject (optional = true )
50102 @ TypeAliases
51103 private Map <String , Class <?>> typeAliases ;
@@ -74,10 +126,6 @@ public class ConfigurationProvider implements Provider<Configuration> {
74126 @ ConfigurationSettings
75127 private Set <ConfigurationSetting > configurationSettings = Collections .emptySet ();
76128
77- @ com .google .inject .Inject (optional = true )
78- @ FailFastSetting
79- private boolean failFast ;
80-
81129 /**
82130 * @since 1.0.1
83131 */
@@ -156,7 +204,19 @@ protected Configuration newConfiguration(Environment environment) {
156204 */
157205 @ Override
158206 public Configuration get () {
207+ System .out .println (lazyLoadingEnabled );
159208 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 );
160220
161221 for (ConfigurationSetting setting : configurationSettings ){
162222 setting .applyConfigurationSetting (configuration );
@@ -197,6 +257,7 @@ public Configuration get() {
197257 } finally {
198258 ErrorContext .instance ().reset ();
199259 }
260+ System .out .println (configuration .isLazyLoadingEnabled ());
200261
201262 return configuration ;
202263 }
0 commit comments