Remove the unconditional exposure of the transaction manager as a bean #3981
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR addresses Issue #816. It removes the unconditional exposure of the transaction manager as a bean in the application context. The transaction manager is still taken from the
BatchConfigurer
and set where needed (ie onJobRepository
andStepBuilderFactory
) as previously done, but is not exposed anymore as a bean to prevent any clash with a user-defined transaction manager if any.If no transaction manager is provided, a
DataSourceTransactionManager
will be configured by default as required by batch (without being exposed as a bean). Note that aDataSource
will be mandatory starting from v5, so this seems a reasonable default to me.Moreover, this change makes the Java config style consistent with the XML config style, where the transaction manager is not exposed as a bean by the
<batch:*>
namespace.