考虑下面的Java类的Spring XML配置相当于@order
@Order(12)
@Component
public class MyComponent {
//....
}
什么是在Spring XML配置等同?我找不到任何匹配的基于XML的配置@Order
注释:
<bean class="MyComponent" />
考虑下面的Java类的Spring XML配置相当于@order
@Order(12)
@Component
public class MyComponent {
//....
}
什么是在Spring XML配置等同?我找不到任何匹配的基于XML的配置@Order
注释:
<bean class="MyComponent" />
在春天,你有两个选择:
注释
接口实现
在你的情况下,你将不得不采取第二种选择。
你的类需要实现Ordered,但是这会将你的类与spring API绑定。当使用注解而不是类时,它是一样的。
但是,如果您使用的是配置类而不是xml config,那么您可以使用纯java bean,并将所有Spring API保存在配置中。 例子:
@Bean(destroyMethod = "shutdown")
@Order(12)
public ScheduledExecutorService scheduledExecutorService() {
return Executors.newSingleThreadScheduledExecutor();
}
配置类给你从豆类分离的弹簧API(注释)的选项。
哈没有替代的解决方案,这其实是一个不错的主意,你们也说明我的具体问题相当不错,在你的examp le:''ScheduledExecutorService''不在我的控制之下,所以我不能实现'Ordered''接口,也不能直接使用''Order''来注释它。通过使用Java配置我仍然可以管理类在我的Spring上下文,并把它用,例如当''@ Autowired''名单注入订购! – schneida
已订购https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/core/Ordered.html – Beri
它似乎不是“有序的,我得到了:”org .springframework.beans.factory.xml.XmlBeanDefinitionStoreException:从类路径资源[组分-context.xml中] XML文档中的第60行是无效的;嵌套的异常是org.xml.sax.SAXParseException; LINENUMBER:60;得到columnnumber:88; CVC -complex-type.3.2.2:属性'ordered'不允许出现在元素'bean'中。'' – schneida
如果你不使用注释,那么你需要实现Ordered接口,但是它会使用spring api绑定你的类。 – Beri