AnnotationConfigWebApplicationContext Vs AnnotationConfigApplicationContext - PullRequest
0 голосов
/ 03 октября 2018

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("/");
    }
}

Я хочу знать разницу, плюсы иМинусы и подхода, и какой подход является лучшим для производства. Пожалуйста, предложите мне.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...