package org.nutz.mvc.annotation; import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; /** * 声明了一个应用所有的模块 * * @author zozoh(zozohtnt@gmail.com) * @author wendal1985(wendal1985@gmail.com) */ @Retention(RetentionPolicy.RUNTIME) @Target({ElementType.TYPE}) @Documented public @interface Modules { /** * 每个模块一个类 */ Class<?>[] value() default {}; /** * 需要扫描的package * <p/> * <b>这个属性不受scanPackage的影响!!</b> */ String[] packages() default {}; /** * 是否搜索模块类同包以及子包的其他类 */ boolean scanPackage() default true; /** * 支持你实现一个模块加载器,然后 * * <code> * @Modules(by={"ioc:myLoader", "com.my.app.MyModuleLoader"}) * </code> * * @return 用哪些动态加载器加载模块 */ String[] by() default {}; }