首页 > 编程知识 正文

@deprecated 注释,spring优先级order

时间:2023-05-03 21:08:24 阅读:156619 作者:2109

Order注释用于排序

public @ interface order {/* * theordervalue.* pdefaultis { @ link ordered # lowest _ precedence }.* @ see ordered # get }

扩展:优先级注释是javax扩展注释,功能与Order相同

publicclassorderutilstests { @ testpublicvoidgetsimpleorder () } { assert equals (integer.value of ((50 ),order utils.get } @ testpublicvoidgetpriorityorder () assertequals(integer.valueof ), orderutils.getorder ) simplepriority.click }@order(50 ) privatestaticclasssimpleorder ) @priority ) 55 ) privatestestate

publicinterfaceordered { intgetorder (; } 3.OrderComparator使用OrderComparator比较两个对象的排序顺序

publicfinalclassordercomparatortests { privatefinalordercomparatorcomparator=new order comparator (; @ testpublicvoidcompareorderedinstancesbefore ((assert equals (-1,this.comparator.compare ) newstubordered ) 100 ) } @ testpublicvoidcompareorderedinstancessame ((assert equals ) 0,this.comparator.compare ) newstubordered ) 100 )、 } @ testpublicvoidcompareorderedinstancesafter ((assert equals (1,this.comparator.compare ) newstubordered ) 982300 ) Publicstubordered(intorder ) { this.order=order; } @Override public int getOrder () { return this.order; }}其内部比较逻辑

return(I1I2)? -1:(I1I2)? 1 : 0; 如果i1小于i2,则返回-1i1大于i2;如果1i1等于i2,则返回04.annotationawareordercomparatorannotationawareordercomparator

可以同时处理对象实现Ordered接口或@Order注释

其提供了静态方法sort,可以对List进行排序

publicclassannotationawareordercomparatorextendsordercomparator { }测试代码

publicclassannotationawareordercomparatortests { @ testpublicvoidsortinstances (} { listobjectlist=new ArrayList ); list.add(newb ); list.add(newa ) ); annotationawareordercomparator.sort (list; asserttrue(list.get(0) instanceof A ); asserttrue(list.get(1) instanceof B ); }@order(1) privatestaticclassa ) ) order )2) privatestaticclassb ) }5.bean注册顺序Demo2Config的对象在Demo1Config之前被初始化并注册

注意点:其构造函数的初始化无效

@configuration@order(2) public class demo1config (public demo1config ) ) system.out.println (demo1config ); } @ beanpublicdemo1service demo1service () system.out.println (' demo1config已加载) ); 返回新守护1服务(; }@configuration@order(1) public class demo2config (public demo2config ) ) system.out.println(demo2config ) ) ) )。 } @ beanpublicdemo2service demo2service () system.out.println (已加载demo2config ) ); 返回新守护进程2服务(; } public class main { publicstaticvoidmain (string [ ] args ) annotationconfigapplicationcontextcontext=newannotationconfigapapapapation

demo1config demo2config demo2config加载了demo1config并加载了引用

3358 wisely man.iteye.com/blog/2217192

33559 www.cn blogs.com/syuf/p/6846522.html

见:https://www.Jian Shu.com/p/8442 d 21222 ef

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。