Beispiel #1
0
  @Override
  public void onStartup(ServletContext servletContext) throws ServletException {
    AnnotationConfigWebApplicationContext context = new AnnotationConfigWebApplicationContext();
    context.setConfigLocation("com.sms.config");

    // 加入logback监听器
    servletContext.addListener(new LogbackConfigListener());

    // 加入spring监听器
    servletContext.addListener(new ContextLoaderListener(context));

    EnumSet<DispatcherType> dispatcherTypes =
        EnumSet.of(DispatcherType.REQUEST, DispatcherType.FORWARD);

    // 加入spring mvc配置
    ServletRegistration.Dynamic dispatcher =
        servletContext.addServlet("spring-mvc", new DispatcherServlet(context));
    dispatcher.setLoadOnStartup(1);
    dispatcher.addMapping("/");

    // 加入OpenEntityManagerInViewFilter
    FilterRegistration.Dynamic openEntityManagerInViewFilter =
        servletContext.addFilter(
            "openEntityManagerInViewFilter", OpenEntityManagerInViewFilter.class);
    openEntityManagerInViewFilter.addMappingForUrlPatterns(dispatcherTypes, true, "/*");

    // 加入security过滤器
    FilterRegistration.Dynamic securityFilterChain =
        servletContext.addFilter("springSecurityFilterChain", new DelegatingFilterProxy());
    securityFilterChain.addMappingForUrlPatterns(dispatcherTypes, true, "/*");

    // 加入Spring编码过滤器
    CharacterEncodingFilter characterEncodingFilter = new CharacterEncodingFilter();
    characterEncodingFilter.setEncoding("UTF-8");
    characterEncodingFilter.setForceEncoding(true);

    FilterRegistration.Dynamic encodingFilter =
        servletContext.addFilter("characterEncodingFilter", characterEncodingFilter);
    encodingFilter.addMappingForUrlPatterns(dispatcherTypes, true, "/");
  }
  @Override
  public void onStartup(ServletContext sc) throws ServletException {
    SLF4JBridgeHandler.install();
    
    log.debug("${artifactId} starting up...");

    // Create the 'root' Spring application context
    AnnotationConfigWebApplicationContext ctx = new AnnotationConfigWebApplicationContext();
    ctx.register(SpringConfiguration.class);
    ctx.scan("${package}");
    ctx.refresh();

    // Manages the lifecycle
    sc.addListener(new ContextLoaderListener(ctx));
    sc.addListener(new ContextCleanupListener());
    
    // Filters
    sc.addFilter("OpenEntityInViewFilter", OpenEntityManagerInViewFilter.class).addMappingForUrlPatterns(null, true, "/*");
    

    log.debug("${package} initialized.");
  }
 private void addAtmosphereServlet(ServletContext context, Configuration config) {
   ServletRegistration.Dynamic servlet =
       context.addServlet(ATMOSPHERE_SERVLET_NAME, AtmosphereServlet.class);
   context.addListener(SessionSupport.class);
   servlet.addMapping(Messaging.PATH + "/*");
   servlet.setAsyncSupported(true);
   servlet.setLoadOnStartup(0);
   servlet.setInitParameter(AtmosphereHandler.class.getName(), Messaging.class.getName());
   servlet.setInitParameter("org.atmosphere.cpr.sessionSupport", "true");
   servlet.setInitParameter(
       "org.atmosphere.cpr.broadcastFilterClasses", MessagingFilter.class.getName());
   servlet.setInitParameter(
       AtmosphereInterceptor.class.getName(), HeartbeatInterceptor.class.getName());
   servlet.setInitParameter(
       "org.atmosphere.interceptor.HeartbeatInterceptor.heartbeatFrequencyInSeconds", "30");
   servlet.setInitParameter("org.atmosphere.cpr.CometSupport.maxInactiveActivity", "-1");
   servlet.setInitParameter(
       "org.atmosphere.cpr.broadcasterCacheClass", UUIDBroadcasterCache.class.getName());
   servlet.setInitParameter("org.atmosphere.websocket.maxTextMessageSize", "1048576");
   servlet.setInitParameter("org.atmosphere.websocket.maxBinaryMessageSize", "1048576");
   addSecurityConstraint(servlet, config);
 }
 @Override
 public void addListener(Class<? extends EventListener> aClass) {
   proxy.addListener(aClass);
 }
 @Override
 public <T extends EventListener> void addListener(T t) {
   proxy.addListener(t);
 }
 @Override
 public void addListener(String s) {
   proxy.addListener(s);
 }
 public void addListener(Class<? extends EventListener> arg0) {
   servletContext.addListener(arg0);
 }
 public void addListener(EventListener arg0) {
   servletContext.addListener(arg0);
 }
 public void addListener(String arg0) {
   servletContext.addListener(arg0);
 }