簡體   English   中英

Spring MVC:Dijkstra的算法如何在啟動時為圖創建bean

[英]Spring MVC: Dijkstra's algorithm how to create a bean for graph on startup

現在,每當我在兩點之間求解Dijkstra的算法時,我都必須在運行它時再次創建圖對象。 我想創建一個Spring MVC應用程序,該圖在啟動時作為Bean僅加載一次。

目前,這些是我的班級樣子:

public class Graph {
private final List<Vertex> vertexes;

public Graph(List<Vertex> vertexes) {
                this.vertexes = vertexes;


public List<Vertex> getVertexes() {
                return vertexes;
}    
}

頂點類別:

public class Vertex implements Comparable<Vertex> {

final private Integer id;
final private String name;
public List<Edge> adjacencies;
public double minDistance = Double.POSITIVE_INFINITY;
public Vertex previous;

public Vertex(Integer id, String name) {
           this.id = id;
           this.name = name;
           adjacencies = new LinkedList<Edge>();
         }

public Integer getId() {
       return id;
}

public String getName() {
       return name;
}

@Override
public String toString() {
   return id+name;
}

public int compareTo(Vertex other) {
    return Double.compare(minDistance, other.minDistance);
}

}

邊緣等級:

public class Edge {
private final String id;
private final Vertex destination;
private final double weight;

public Edge(String id, Vertex destination, double weight) {
       this.id = id;
       this.destination = destination;
       this.weight = weight;
}

public String getId() {
       return id;
}


public Vertex getDestination() {
       return destination;
}

public double getWeight() {
       return weight;
}

}

在我的主要方法中,我用274個頂點元素填充“頂點”列表。 然后,Graph類將此列表放入其構造函數中。 如何將單個圖形對象創建為Bean? 這是我所了解的。

<bean id="graph" class="com.fdm.model.Graph" >
<constructor-arg ref="list"/>
</bean>

<util:list id="list" list-class="java.util.ArrayList" />

但是我不確定如何進一步進行。 上面的列表不是頂點類型嗎?

在這里,您已經在應用程序上下文中創建了具有單例作用域的bean。 同樣,您已將引用Vertexes bean列表的構造函數作為連線。

<bean id="graph" class="com.fdm.model.Graph" > 
 <constructor-arg ref="list"/> 
</bean>

春季默認情況下,bean是單例。

在這里,您創建了一個具有id list的列表bean,在這里您可以定義頂點的值類型。 同樣在這種情況下,此列表的范圍為單例如果要定義類型

<util:list id="list" value-type="com.springapp.mvc.Vertex" list-class="java.util.ArrayList" />

您還可以看到以下示例如何在Spring中定義List Bean?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM