feat: Enhance component management in ApplicationContext #1
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.
Add Support for Qualifiers and Component Registration Validation
Changes Overview
This PR introduces two major features to enhance component management in PySpring:
Qualifier Support
Annotated
types for qualifier-based injectionComponent Registration Validation
Key Changes
Component Class Enhancements
name
configuration option toComponent.Config
get_name()
to support custom component namesApplication Context Improvements
_determine_target_cls_name()
to handle component resolution logicDependency Injection Updates
get_component()
andget_bean()
to accept qualifier parameterOther Changes
Example Usage
1. Using Qualifiers for Dependency Injection
2. Complete Working Example
3. Duplicate Registration Prevention Example
Key Points to Remember:
Annotated[Type, "QualifierName"]
to inject specific implementationsname
inConfig
can be used to override the default class nameTesting
Please test the following scenarios:
Breaking Changes
get_component()
andget_bean()
now require a qualifier parameter (can be None)