Spring 3.0 предлагает все java-конфигурации классического XML, я собираюсь сделать то же самое, но пока я занимался НИОКР, я столкнулся с двумя сценариями, в которых AnnotationConfigApplicationContext
реализован внутри метода main (), и я не знаю, откуда этоСценарий подходит для производства,
В другом сценарии я обнаружил, что AnnotationConfigWebApplicationContext
реализован внутри onStartup()
из WebApplicationInitializer
, для лучшего понимания, пожалуйста, обратитесь к приведенному ниже фрагменту обоих сценариев.
СЦЕНАРИЙ 1
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.*;
public class MainApp {
public static void main(String[] args) {
ApplicationContext ctx =
new AnnotationConfigApplicationContext(HelloWorldConfig.class);
HelloWorld helloWorld = ctx.getBean(HelloWorld.class);
helloWorld.setMessage("Hello World!");
helloWorld.getMessage();
}
}
СЦЕНАРИЙ 2:
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletRegistration;
import org.springframework.web.WebApplicationInitializer;
import org.springframework.web.context.support.AnnotationConfigWebApplicationContext;
import org.springframework.web.servlet.DispatcherServlet;
public class WebServletConfiguration implements WebApplicationInitializer{
public void onStartup(ServletContext ctx) throws ServletException {
AnnotationConfigWebApplicationContext webCtx = new AnnotationConfigWebApplicationContext();
webCtx.register(SpringConfig.class);
webCtx.setServletContext(ctx);
ServletRegistration.Dynamic servlet = ctx.addServlet("dispatcher", new DispatcherServlet(webCtx));
servlet.setLoadOnStartup(1);
servlet.addMapping("/");
}
}
Я хочу знать разницу, плюсы иМинусы и подхода, и какой подход является лучшим для производства. Пожалуйста, предложите мне.