"
springboot版本:1.3.5
示例代码如下:
@Configuration
@Order(3)
public class Conf1
{
@Bean
public Runnable createRunnable1()
{
System.out.println("111");
return () -> {};
}
}
@Configuration
@Order(2)
public class Conf2
{
@Bean
public Runnable createRunnable2()
{
System.out.println("222");
return () -> {};
}
}
运行方式:
import org.springframework.boot.SpringApplication;
@SpringBootApplication
public class App6
{
public static void main(String[] args)
{
SpringApplication.run(App6.class, args);
}
} 按照Order的效果,数字越小,越先初始化
但是,实际上先输出111,再输出了222
两个Order的数字怎么调整,都无效
请问,哪里有问题
"版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
"clean下工程?######全新新建的项目。 不过我也试了一下,不行######试了一下,先打印222,后打印111######<div class=""ref""> <div class=""ref"">
@Controller
@EnableAutoConfiguration
public class Test {
public static void main(String[] args) throws Exception {
Object[] object = new Object
;
object
= Conf1.class;
object
= Conf2.class;
object
= Test.class;
SpringApplication.run(object, args);
}
}
你这种可以的。但是,
SpringApplication.run(App6.class, args);
这样为啥不行。
比较我有N多个@Configuration的类,不可能都这样放到object[]里面去吧
######回复 @开源中国首席门卫小哥 : 我们生产机就是直接运行main方法的(写了一个start.sh运行)######那个你换tomcat启动试试呢######我也试过,不生效我把代码分享给你哈
不利用order,order好像存在问题,全是英文我看的有点累,不是没看得太明白,就不在这给你说是啥问题了
public class Conf1
{
public Conf1() {
super();
System.out.println("111");
}
}
public class Conf2
{
public Conf2() {
super();
System.out.println("222");
}
}
@Configuration
public class MyBatchConfiguration {
@Bean
public Conf2 Conf2() {
return new Conf2();
}
@Bean
public Conf1 conf1() {
return new Conf1();
}
}
启动的类,还是你的那个,如果想两个配置类那个先启动就放上面
######ApplicationRunner 或者CommandLineRunner 配合注解Order能完美解决你的问题"