TODAYCotext是一个轻量级依赖注入框架。
使用说明标识一个Bea使用@Compoet任意注解只要注解上有@Compoet注解就会标识为一个Bea不论多少层@Target({ElemetType.TYPE,ElemetType.METHOD})public@iterfaceCompoet{/**@returbeaame*/Strig[]value()default{};/**@returbea'sscope*/Scopescope()defaultScope.SINGLETON;Strig[]iitMethods()default{};Strig[]destroyMethods()default{};}@Sigleto
@Compoet(scope=Scope.SINGLETON)@Target({ElemetType.TYPE,ElemetType.METHOD})public@iterfaceSigleto{//beaameStrig[]value()default{};Strig[]iitMethods()default{};Strig[]destroyMethods()default{};}@Prototype
@Retetio(RetetioPolicy.RUNTIME)@Compoet(scope=Scope.PROTOTYPE)@Target({ElemetType.TYPE,ElemetType.METHOD})public@iterfacePrototype{//beaameStrig[]value()default{};Strig[]iitMethods()default{};Strig[]destroyMethods()default{};}@Cofiguratio
@Target(ElemetType.TYPE)@Compoet(scope=Scope.SINGLETON)public@iterfaceCofiguratio{}@Service
@Compoet(scope=Scope.SINGLETON)@Target({ElemetType.TYPE,ElemetType.METHOD})public@iterfaceService{Strig[]value()default{};//beaames}注入Bea使用@Autowired注入使用@Resource注入使用@Iject注入可自定义注解和实现PropertyValueResolver:@FuctioalIterfacepubliciterfacePropertyValueResolver{defaultbooleasupports(Fieldfield){returfalse;}PropertyValueresolveProperty(Fieldfield)throwsCotextExceptio;}注入示例:@Cotroller@SuppressWarigs("serial")publicclassLogiCotrollerimplemetsCostat,ServletCotextAware{privateStrigcotextPath;@AutowiredprivateUserServiceuserService;//@Iject@ResourceprivateBloggerServicebloggerService;@GET("/logi")publicStriglogi(@CookieStrigemail,Strigforward,Modelmodel){model.attribute(KEY_EMAIL,email);model.attribute("forward",forward);retur"/logi/idex";}@POST("/logi")@Logger(value="登录",//cotet="email:[${email}]"//+"passwd:[${passwd}]"//+"iputcode:[${radCode}]"//+"isessio:[${radCodeISessio}]"//+"forwardto:[${forward}]"//+"msg:[${redirectModel.attribute('msg')}]"//)publicStriglogi(HttpSessiosessio,@Cookie(KEY_EMAIL)StrigemailICookie,@RequestParam(required=true)Strigemail,@RequestParam(required=true)Strigpasswd,@RequestParam(required=true)StrigradCode,@RequestParam(required=false)Strigforward,@Sessio(RAND_CODE)StrigradCodeISessio,RedirectModelredirectModel)//{sessio.removeAttribute(RAND_CODE);if(!radCode.equalsIgoreCase(radCodeISessio)){redirectModel.attribute(KEY_MSG,"验证码错误!");redirectModel.attribute(KEY_EMAIL,email);redirectModel.attribute(KEY_FORWARD,forward);returredirectLogi(forward);}UserlogiUser=userService.logi(ewUser().setEmail(email));if(logiUser==ull){redirectModel.attribute(KEY_EMAIL,email);redirectModel.attribute(KEY_FORWARD,forward);redirectModel.attribute(KEY_MSG,email+"账号不存在!");returredirectLogi(forward);}//









评论