2017-07-06 66 views
-1

如何在構造函數中執行下面的等效操作,是否可以通過Java代碼實現?使用彈簧對比較器初始化PriorityQueue

//non DI code 
PriorityQueue<Object> queue = new PriorityQueue<Object>(10, 
      Comparator.comparing(Object::getOrder) 
      .thenComparing(Object::getDate)); 

我想將它注入到構造像下面

@Autowired 
public CustomPriorityQueue(PriorityQueue<Object> queue) 
{ 
    this.queue = queue; 
} 
+1

我不明白內@Bean方法。只需創建一個返回'queue'的'@ Bean'方法。 –

+0

是的,謝謝,我與比較器實例部分混淆 –

回答

0

事實上,我需要一個@Configuration類

@SpringBootApplication 
@ComponentScan 
public class Application { 

public static void main(String[] args) { 

    SpringApplication.run(Application.class, args); 

} 


@Bean 
@Primary 
public PriorityQueue<WorkOrder> priorityQueue() { 

    PriorityQueue<WorkOrder> queue = new PriorityQueue<WorkOrder>(10, 
      Comparator.comparing(WorkOrder::getRank).thenComparing(
        WorkOrder::getDatetime)); 

    return queue; 
} 
}