Diese Anwendung ist keine Spring MVC-Anwendung, soweit ich das beurteilen kann - es wäre wahrscheinlich viel einfacher, zu migrieren, wenn es ist. Das Ziel (pro Github-Problem) besteht darin, eine ausführbare JAR zu erhalten. Der grundlegende Plan könnte jedoch sein, zuerst zu einem WAR mit Spring Boot und dann zu einem JAR zu migrieren, sobald es funktioniert. Es ist eine ziemlich einfache App, also müssen wir uns nur die web.xml
ansehen und sie in die relevanten Spring Boot-Funktionen übersetzen. Hier sind einige allgemeine Anleitungen:
Erstellen Sie eine bereitstellbare WAR durch Erweitern SpringBootServletInitializer
(z. B. in einer Klasse namens Application
), und fügen Sie die Spring Boot @EnableAutoConfiguration
Annotation hinzu. Beispiel:
@Configuration
@EnableAutoConfiguration
@ComponentScan
public class Application extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(Application.class);
}
fügen dann einige Konfiguration:
A @Bean
vom Typ Servlet
oder ServletRegistrationBean
installiert, die Bohne in den Behälter, als ob es ein <servlet/>
und <servlet-mapping/>
in web.xml
A war @Bean
vom Typ Filter
oder FilterRegistrationBean
verhält sich ähnlich (wie ein <filter/>
und <filter-mapping/>
).
Die ApplicationContext
in diesem Fall in einer XML-Datei verwurzelt ist, so ist der einfachste erste Schritt ist zu @Import
, die in den Frühling Application
. Dieser ist so einfach, dass er in ein paar Zeilen als @Bean
Definitionen neu erstellt werden kann.
Statische Ressourcen zu /public
bewegt werden (oder /static
oder /resources
oder /META-INFO/resources
) in der Classpath Wurzel
nach dem Krieg arbeitet wir es ausführbar zu machen, indem eine main
Methode zu unserem Application
Zugabe, z.B.
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
Siehe auch die Getting Started Guide on Converting a JAR to a WAR.
Wie gesagt, das größte Problem mit dieser spezifischen App ist, dass es keine Spring MVC App ist. Wie der Ire sagen würde: "Wenn ich dahin wollte, Sir, würde ich nicht von hier aus anfangen."Dies ist eine interessante Frage im Allgemeinen, aber ich empfehle jedem, der eine Spring-Anwendung auf Spring Boot migrieren möchte. Lesen Sie den allgemeinen Rat hier, aber vielleicht beginnen Sie eine andere Diskussion woanders.
Wie auch immer, ich werde eine Bash bei der Konvertierung haben Diese spezifische App (Quellcode ist nett), und diese Antwort aktualisieren, wenn ich etwas Neues lerne.
Ich erwarte, dass mit Springboot die Tendenz mehr und mehr von WAR zu JAR geht nice deal of trouble, um eine entwicklungsfreundliche pom.xml zu erstellen, die es mir ermöglicht, produktiv mit Springboot + gwt zu arbeiten. Ich umrahle das ausführbare JAR-Konzept, indem ich das GWT-Jetty deaktiviere und dafür sorge, dass GWT kompiliert legt die Quellen in die META-INF/Ressourcen, um ordnungsgemäß zu arbeiten ng dev Zeit. Aber ja, einige Leute wollen vielleicht von JAR zu WAR wechseln, um auf dem Coud z. App-Engine. Aber im Allgemeinen ist Spring Boot besser als ein JAR. – 99Sono
Was ist mit Mutli Kriegsprojekt? http://stackoverflow.com/questions/35632394/converting-multi-war-application-to-spring-boot – Yosefki
@ dave-syer, danke für die Notizen, finde ich das sehr hilfreich. Ich weiß, dass dies ein sehr alter Beitrag ist. Vor kurzem wurde ich gebeten, eine relativ stabile Non SpringMVC-Webanwendung auf Spring Boot zu migrieren. Die Idee besteht darin, in einen ausführbaren Jar-Stil zu konvertieren, um mit Autoskalierung in der Cloud bereitgestellt werden zu können. Könnten Sie uns Ihre Meinung dazu mitteilen, was sich in den letzten 3 Jahren auf Spring BOOT geändert hat, was für oder gegen beeinflussen kann? – Venkat