SpringBoot中,@Order不生效

西夏一品堂 发布于 2016/05/24 17:31
阅读 1K+
收藏 0

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的数字怎么调整,都无效

请问,哪里有问题

加载中
0
loyal
loyal
clean下工程?
西夏一品堂
西夏一品堂
全新新建的项目。 不过我也试了一下,不行
0
首席撸出血
首席撸出血
试了一下,先打印222,后打印111
0
首席撸出血
首席撸出血

引用来自“开源中国首席门卫小哥”的评论

试了一下,先打印222,后打印111

引用来自“开源中国首席门卫小哥”的评论

@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);
    }
}



@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);
    }
}

彭博
彭博
@卜祥龙 @卜祥龙 还是 1024 和谐
首席撸出血
首席撸出血
回复 @卜祥龙 : 我跟你讲,那个自定义样式没了,我很生气。
降龙罗汉
降龙罗汉
回复 @开源中国首席门卫小哥 : 一言不合,就caocaocao,要文明!Bug,收到了~
下一页
0
西夏一品堂
西夏一品堂

引用来自“开源中国首席门卫小哥”的评论

你这种可以的。但是,

SpringApplication.run(App6.class, args);

这样为啥不行。

比较我有N多个@Configuration的类,不可能都这样放到object[]里面去吧

西夏一品堂
西夏一品堂
回复 @开源中国首席门卫小哥 : 我们生产机就是直接运行main方法的(写了一个start.sh运行)
首席撸出血
首席撸出血
那个你换tomcat启动试试呢
0
jakyou
jakyou
我也试过,不生效
西夏一品堂
西夏一品堂
问题找到了吗?
0
首席撸出血
首席撸出血

我把代码分享给你哈

不利用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();
	}

}



启动的类,还是你的那个,如果想两个配置类那个先启动就放上面

0
首席撸出血
首席撸出血
ApplicationRunner 或者CommandLineRunner 配合注解Order能完美解决你的问题
返回顶部
顶部