Autowired d'un bean dans une servlet

Fermé
AmdalResu Messages postés 4 Date d'inscription lundi 10 septembre 2018 Statut Membre Dernière intervention 10 novembre 2018 - Modifié le 16 sept. 2018 à 23:41
AmdalResu Messages postés 4 Date d'inscription lundi 10 septembre 2018 Statut Membre Dernière intervention 10 novembre 2018 - 10 nov. 2018 à 15:16
Bonjour,

C'est la première fois que je pose une question et je le fais car je suis bien embêté sur un problème de récupération d'informations dans une servlet. Je travail sur Java8/SpringBoot 2.0 et côté front Js/Bootstrap.
Je sais que l'injection ne se fait pas comme ça dans une servlet mais je pense avoir produit un code qui me parait cohérent mais rien à faire ça ne fonctionne pas...

Merci par avance de toutes vos idées, solutions ou remarques.
Ci-dessous mon code.

<bold><underline>Main de l'application :</underline></bold>
@SpringBootApplication 
@ComponentScan(value = "org.java.test") 
@EnableConfigurationProperties 
@ServletComponentScan(basePackages = "org.java.test.servlets") 
public class Application extends SpringBootServletInitializer{
 public static void main(String[] args) throws Exception {
     SpringApplication.run(Application.class, args);
 }
}

<bold><underline>Bean à injecter :</underline></bold>
@Configuration
@ConfigurationProperties()
public class ApplicationConfig {
 
 @Autowired
 private Environment env;
 
 public String getCompleteAdress() {
  return new StringJoiner(":", "http://", "/context_path/").add(this.getServerAdress()).add(this.getServerPort()).toString();
 } 
}

<bold><underline>Servlet configuration :</underline></bold>
@Configuration
public class ServletConfig {
 
 @Autowired
 AutowireCapableBeanFactory beanFactory;
 
   @Bean 
    public ServletRegistrationBean<HttpServlet> signupServlet() {
     ServletRegistrationBean<HttpServlet> servRegBean = new ServletRegistrationBean<HttpServlet>();
     final Signup servlet = new Signup();
     beanFactory.autowireBean(servlet);
     servRegBean.setServlet(servlet);
     servRegBean.addUrlMappings("/signup/*");
     servRegBean.setLoadOnStartup(1);
     return servRegBean;
    }

<bold><underline>La servlet:</underline></bold>
@WebServlet( urlPatterns = "/signup/*", loadOnStartup = 1 )
public class Signup extends HttpServlet {
         
    @Autowired
    ApplicationConfig applicationConfig;
    
    public void doGet( HttpServletRequest request, HttpServletResponse response ) throws ServletException, IOException{
        this.getServletContext().getRequestDispatcher( VUE ).forward( request, response );
    }
    
    public void doPost( HttpServletRequest request, HttpServletResponse response ) throws ServletException, IOException{   
    System.out.println("L'adresse compléte est  : " + applicationConfig.getCompleteAdress());

1 réponse

AmdalResu Messages postés 4 Date d'inscription lundi 10 septembre 2018 Statut Membre Dernière intervention 10 novembre 2018
10 nov. 2018 à 15:16
Bonjour,

J'avais laissé un peu ce sujet mais je m'y remet !
Est-ce que quelqu'un a une idée sur ce problème ?

D'avance merci
0