2017-06-13 8 views
0

Ich habe eine TestUtil-Klasse, die ich in fast jeder meiner anderen Klassen in einer Spring MVC-Webanwendung verwenden muss.Bean-Definition für die Verwendung einer Klasse mit statischen Methoden in Spring Controller-Klasse

In meinem Anwendungskontext, habe ich die folgende Bohne Definitionen gemacht:

<bean id="masterbo" class="com.bo.master.MasterBO"> 
    <property name="masterdao" ref="masterdao"></property> 
    <property name="testutil" ref="testutil"></property> 
</bean> 

<bean id="masterdao" parent="daoSupport" class="com.dao.master.MasterDAO"></bean> 
<bean id="testutil" class="com.util.TestUtil"></bean> 

Ich habe die TestUtil Klasse in MasterBO autowired und verwenden einfach die testutil.someMethod() -Aufruf.

Mit diesem kann ich die statische Methode von TestUtil in MasterBO verwenden. Nun möchte ich das gleiche im MasterController machen. Ähnliche Bean-Definition funktioniert in diesem Fall nicht

Kann mir jemand in Bezug auf die Bean-Definition, die getan werden muss?

BEARBEITEN: Der Aufruf von statischen Methoden funktioniert direkt auf Tomcat. Angesichts dieses Problems bei WildFly und JBoss, die angeblich eine korrekte Bean-Definition erfordern.

GELÖST: Es scheint, es war eine falsche ParseException im Util verwendet werden, die mit Wildfly Konflikt wurde

+0

Warum möchten Sie, dass Bean die statischen Methoden automatisch verwendet? – dmitrievanthony

+0

Sie müssen keine Dienstprogrammklasse mit statischen Methoden injizieren. –

+0

Das Problem ist, dass JBoss/WildFly es der Anwendung nicht erlaubt, anders zu starten, wenn sie direkt auf Tomcat verwendet wird. – SVG

Antwort

1

Sie brauchen keine Bean zu instanziiert eine statische Methode aufrufen, rufen Sie einfach die Methode direkt von der Klasse selbst: TestUtil.someMethod().

+0

Ich habe es so auf Tomcat verwendet, aus irgendeinem Grund startet meine Anwendung nicht auf WildFly mit der Klasse, die statische Methoden enthält. – SVG

Verwandte Themen