Ich möchte einen eingebetteten Tomcat-Server von einer Desktop-Anwendung aus starten. Die Webapp, die innerhalb des Tomcat-Containers läuft, wird über den WebApplicationInitializer von Spring konfiguriert (im Moment erweitere ich einfach AbstractAnnotationConfigDispatcherServletInitializer). Wie kann ich ein bereits existierendes Objekt von meiner Desktop-Anwendung an den von der Webanwendung verwendeten WebApplicationContext übergeben?Wie übergeben Sie ein vorhandenes Objekt an Spring WebApplicationContext?
Hier einiger Beispielcode, der es mehr klar, was hoffentlich macht ich zu erreichen versuchen:
public class MyWebApplicationInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
@Override
protected Class<?>[] getRootConfigClasses() {
return new Class<?>[] { SpringAppConfig.class };
}
@Override
protected Class<?>[] getServletConfigClasses() {
return new Class<?>[] { SpringWebConfig.class };
}
@Override
protected String[] getServletMappings() {
return new String[] { "/" };
}
}
@Configuration
@EnableWebMvc
public class SpringWebConfig extends WebMvcConfigurerAdapter {
}
//somewhere in my desktop application where I want to start the server...
MyObject myObj = new MyObject(SomeParameters params);
//I want to have myObj available for Spring managed objects,
//like @Components and @RestController etc. that get created by Spring
Tomcat tc = new Tomcat();
//some tomcat configuration here
tc.start(); //automatically searches for WebApplicationInitializer in classpath
//I do not know how the Spring managed beans can be made aware of myObj.
ok so meinst du meine einzige option ist myObj über Spring zu erstellen, wenn ich es von anderen Spring verwaltete objekte verwenden möchte? – user1304680
Ja genau. Sie müssen es über Spring erstellen – Ankit