Autowired d'un bean dans une servlet
AmdalResu
Messages postés
4
Statut
Membre
-
AmdalResu Messages postés 4 Statut Membre -
AmdalResu Messages postés 4 Statut Membre -
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.
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());
A voir également:
- Autowired d'un bean dans une servlet
- Bean mac - Télécharger - Traitement de texte