org.nutz.ioc.loader.annotation.IocBean Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of nutz Show documentation
Show all versions of nutz Show documentation
Nutz, which is a collections of lightweight frameworks, each of them can be used independently
package org.nutz.ioc.loader.annotation;
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Inherited;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
*
* @author wendal([email protected])
*
*/
@Target({ElementType.TYPE, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
public @interface IocBean {
/**
* 指定一个名字, 默认为取类名的首字母小写, 如 STing,会设置为sTing
*/
String name() default "";
/**
* 每个单一的值,规则与 org.nutz.ioc.loader.annotation.Inject一致
*
* 这些值,对应构造方法的参数
*
* @see org.nutz.ioc.meta.IocValue
* @see org.nutz.ioc.loader.annotation.Inject
*/
String[] args() default {};
// /**
// * args 的别名, 不赞成使用,请使用 args 来代替
// */
// @Deprecated
// String[] param() default {};
String scope() default "app";
boolean singleton() default true;
/**
* 当对象被Ioc容器创建后调用的方法
*/
String create() default "";
/**
* 当对象被移出Ioc容器时调用的方法
*/
String depose() default "";
/**
* 当对象被调用者从Ioc容器调出时触发的方法
*/
String fetch() default "";
/**
* 你要注入的字段属于超类. {"dao:refer:dao"} 前者是属性名称,后者的@Inject的语法. 后面的refer可忽略
*
* @return 需要注入的字段名
*/
String[] fields() default {};
String factory() default "";
// /**
// * fields 的别名
// */
// @Deprecated
// String[] field() default {};
// /**
// * 还没设计,是否真的需要呢?
// */
// @Deprecated
// boolean auto() default false;
}