Como todos sabem, Primavera de inicialização é uma ótima maneira de desenvolver um WebApp ou StandaloneApp com configuração mínima e Configuração opinativo.
Isto é como eu ter conseguido um Desenvolvimento Web Filter no aplicativo Primavera Bota
Meus SpringBootApp Especificações: -
Versão da mola de arranque: 2.0.4.RELEASE
Java Versão: 8,0
Servlet Specification: Servlet 3.0 (Obrigatório e importante)
Eu declarei meu Web Filter da seguinte forma, aderindo ao Servlet Especificações 3,0
Esta é a maneira programática de definir um filtro como um substituto para web.xml definições baseadas.
"@Webfilter" anotação serão processados pelo recipiente durante a implantação, a classe de filtro em que se encontra vai ser criada de acordo com a configuração e aplicado ao URL padrões, javax.servlet.Servlets e javax.servlet.DispatcherTypes.
Para evitar Web.xml completamente e para alcançar WebApp "Deployable": -
Para implantar Primavera aplicativo de inicialização como "tradicional guerra", a classe de aplicativo deve estender SpringBootServletInitializer.
NOTA ::
SpringBootServletInitializer é uma "implementação programática" do web.xml com referência às especificações Servlet 3.0 ou superior, o que requer uma implementação de WebApplicationInitializer.
Assim, SpringBootApplication não requer "web.xml" como a sua classe Application (depois de estender SpringBootServletInitializer) varre para
- @WebFilter,
- @WebListener e
- @WebServlet.
@ServletComponentScan anotação
Esta anotação permite pacotes básicos de digitalização para os componentes web anotados com @WebFilter, @WebListener e @WebServlet.
Devido ao fato de que os recipientes incorporados não suportam anotações @WebListener @WebServlet, @WebFilter e, Primavera Bota, confiando muito em contentores embarcados, introduziu esta nova anotação @ServletComponentScan para apoiar alguns frascos dependentes que usam essas 3 anotações.
A digitalização é executado apenas quando se utiliza um recipiente servlet incorporado.
A seguir é a minha Primavera de inicialização de aplicativos de Definição de Classe: -

Personalizado Servlet Initializer: -
Aqui: Eu tenho definido uma classe personalizada: "ServletInitializer" que se estende Classe: SpringBootServletInitializer.
Como explicado anteriormente, SpringBootServletInitializer é responsável por anotações de digitalização: -
- @WebFilter,
- @WebListener e
- @WebServlet.
E, portanto, a aplicação de classe Primavera de inicialização deve
- Quer estender a classe: SpringBootServletInitializer OR
- estender classe customizada que se estende a classe: SpringBootServletInitializer
