implement lightweight IOC/DI framework
- Add annotation system (@Component, @Service, @Configuration, @Bean, @Inject, @Qualifier, @Primary, @Scope, @PostConstruct, @Import, @TimiInjectApplication) - Implement BeanContext for managing bean instances and definitions - Implement BeanScanner for component scanning (file system and jar) - Implement BeanFactory with constructor injection and lifecycle support - Support @Configuration and @Bean factory methods - Support @Qualifier and @Primary for multi-implementation - Support @Scope (singleton/prototype) - Support @PostConstruct lifecycle callback - Support @Import and Module extension - Add circular dependency detection - Add dependency graph export - Add demo and test cases Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
@ -6,25 +6,11 @@ import java.lang.annotation.RetentionPolicy;
|
||||
import java.lang.annotation.Target;
|
||||
|
||||
/**
|
||||
* 注入,使用在类变量上,该变量的类需要在 TimiInject 控制反转中才能执行对象注入
|
||||
*
|
||||
* <p>注意
|
||||
* <ul>
|
||||
* <li><u>如果该类使用 {@link StaticInject} 静态注入,此变量必须为静态变量</u></li>
|
||||
* <li><u>如果是 {@link IOCReturn} 控制反转的对象,并且控制反转时没有指定名称,此变量名称需要和控制反转方法名一致</u></li>
|
||||
* </ul>
|
||||
* 标记用于依赖注入的构造器
|
||||
*
|
||||
* @author 夜雨
|
||||
* @version 2022-03-04 23:15
|
||||
*/
|
||||
@Target({ElementType.FIELD})
|
||||
@Target(ElementType.CONSTRUCTOR)
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
public @interface Inject {
|
||||
|
||||
/**
|
||||
* 注入名称,控制反转明确指定名称时此属性也需要明确指定
|
||||
*
|
||||
* @return 注入名称
|
||||
*/
|
||||
String value() default "";
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user