2017-07-06 13 views
-1

次のコードをコンストラクタで実行するには、Javaコードを使用できますか?私のようなSpringでコンパレータを使用してPriorityQueueを初期化する

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

を@Bean方法を必要としていました。その 'queue'を返す' @ Bean'メソッドを作成してください。 –

+0

はい、私はコンパレータのインスタンス化の部分と混同されました –

答えて

0

下にコンストラクタに注入したい

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

は確かに私は理解していない@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; 
} 
} 
関連する問題