欢迎来到天天文库
浏览记录
ID:33939083
大小:1.27 MB
页数:33页
时间:2019-02-28
《Introducing Contexts and Dependency Injection 1.1.pdf》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、IntroducingContextsandDependencyInjection1.1PeteMuirPrincipalSoftwareEngineerRedHat,Inc.October2011@plmuir1CDI1.0JavaOneSlideTemplateTitleInsanelyproductiveCDI1.1(Global)OrderingJavaSEsupportExtensions&DeploymentContext/ScopeimprovementsTracking3http://bit.
2、ly/OpenShiftAcmehttp://acme-pmuir.rhcloud.com4Whatyouwilllearn?•Whatproblemswewanttosolve•Ourideasonhowtosolvethem•HowyoucaninfluencetheCDI1.1•Issuetracker•Mailinglist•Wiki•Reviewprocess•Spec(git)CommunitySponsoredIssues(Global)Ordering•Option1:Magicnumbers@Shot@In
3、terceptor(37)publicclassGoalkeeper{@AroundInvokepublicObjectcatchBall(InvocationContextctx)throwsException{//DosomethingreturninvocationContext.proceed();}}(Global)Ordering•Option2:Relativeordering@LastHope@InterceptorpublicclassGoalkeeper{...}@Interceptor@Before(L
4、astHope.class)publicclassDefender{...}(Global)Ordering•Option2:Relativeordering@InterceptorBinding@OrderingQualifier@Retention(RUNTIME)@Target({METHOD,TYPE})@Documentedpublic@interfaceLastHope{}(Global)OrderingOption2:RelativeorderingpublicclassLinesman{@Before(Off
5、icial.class)publicvoidobserveGoal(@ObservesGoalgoal){...}}publicclassReferee{@OfficialpublicvoidobserveGoal(@ObservesGoalgoal){...}}(Global)Ordering•Option3:ImperativeorderingpublicclassReorderExtensionimplementsExtension{publicvoidreorder(@ObservesAfterDeploymentV
6、alidationadv){Collections.sort(adv.getInterceptors(),newInterceptorOrderingComparator());}}publicinterfaceAfterDeploymentValidation{publicList>getInterceptors();...}(Global)Ordering•Option2&Option3•Globalenablementnowpossible7、m/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">com.javaone.CheckBadgeJavaSE•GetahandlepublicclassSoccerHacker{publicvoidfixTheMatch(){CDI.current().select(newTypeLiteral>(){}).ge8、t().fire(newGoal());}}JavaSE•GetahandlepublicabstractclassCDIimplementsInstance{publicstaticCDIcurrent(){...}publicabstractBeanManage
7、m/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">com.javaone.CheckBadgeJavaSE•GetahandlepublicclassSoccerHacker{publicvoidfixTheMatch(){CDI.current().select(newTypeLiteral>(){}).ge
8、t().fire(newGoal());}}JavaSE•GetahandlepublicabstractclassCDIimplementsInstance{publicstaticCDIcurrent(){...}publicabstractBeanManage
此文档下载收益归作者所有