2017-09-16 112 views

回答

0

你可以从Tomcat context得到这个。您可以将嵌入式Tomcat容器定义为@Bean并从那里获取它。

import org.apache.catalina.Context; 

import org.springframework.boot.SpringApplication; 
import org.springframework.boot.autoconfigure.SpringBootApplication; 

import org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory; 
import org.springframework.context.annotation.Bean; 

@SpringBootApplication 
public class Application { 

    private static boolean distributable; 

    public static boolean getDistributable() { 
     return distributable; 
    } 

    public static void main(String[] args) { 
     SpringApplication.run(Application.class, args); 
    } 

    @Bean 
    public TomcatEmbeddedServletContainerFactory tomcatFactory() { 

     return new TomcatEmbeddedServletContainerFactory() { 
      @Override 
      protected void postProcessContext(Context context) { 
       Application.distributable = context.getDistributable(); 
       System.out.println("distributable is :"+distributable); 
      } 
     }; 
    } 
} 

您可能需要setDistributable(真/假)programmaticly在工厂这个准确的信息。

+0

我如何获得上下文? –

+0

谢谢,但我已经完成了这一项。我正在寻找一些运行时代码。 –

+0

... ???????????? –

相关问题