18 Kasım 2018 Pazar

SpringBoot SpringBootServletInitializer Sınıfı - Harici Wildfly, Tomcat Varsa Kullanılır

Giriş
Şu satırı dahil ederiz. Bu sınıf haricen çalıştırılan Tomcat var ise kullanılır. Projeyi tomcat'e servlet olarak tanıtmak içindir.
import org.springframework.boot.web.support.SpringBootServletInitializer;
Bir tane SpringApplicationBuilder nesnesi döner. Bu nesne sources alanında @SpringBootApplication olarak işaretli sınıfı taşır.

configure metodu
Örnek
Şöyle yaparız. @SpringBootApplication işaretli WebApplication nesnesini taşıyan SpringApplicationBuilder  nesnesi döner.
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.context.web.SpringBootServletInitializer;

@SpringBootApplication
public class WebApplication extends SpringBootServletInitializer {
  @Override
  protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
    return application.sources(WebApplication.class);
  }

  public static void main(String[] args) throws Exception {
    SpringApplication.run(WebApplication.class, args);
  }
}
Örnek
Şöyle yaparız
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
  builder = builder.properties("test.property:${test_property:defaultValue}");
  return builder.sources(DemoApp.class)
}
main metodu
Bu aslında sınıfın bir metodu değil ancak yazılması gerekiyor.
Örnek
Şöyle yaparız.
public static void main(String[] args) throws Exception {
    SpringApplication.run(WebApplication.class, args);
}
Örnek
Şöyle yaparız.
@SpringBootApplication
@ComponentScan(basePackages = "lk.slsi")
@EnableWebMvc
@ImportResource(locations = "classpath:slsi-servlet-config.xml")
public class SLSIStarter extends SpringBootServletInitializer {


  private static ConfigurableApplicationContext context;

  public static void main(String[] args) {
   
     SpringApplication application = new SpringApplication(SLSIStarter.class);
     context = application.run(args);
     application.setRegisterShutdownHook(true);
    }
}
onStartUp metodu
Şöyle yaparız. ServletContext Java EE arayüzüdür.
@Override
public void onStartup(ServletContext servletContext) throws ServletException {
  super.onStartup(servletContext);
  ...
}

Hiç yorum yok:

Yorum Gönder