Wie config @EnableConfigurationProperties, @ConfigurationProperties mit WebApplicationInitializer?
Will ich Lesen.Eigenschaften, die mit
@EnableConfigurationProperties and @ConfigurationProperties.
Ich bin in der Lage zu tun, die mit den folgenden codes:
Application.java
@SpringBootApplication
@EnableConfigurationProperties(ApplicationConfiguration.class)
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
ApplicationConfiguration.java
@ConfigurationProperties(prefix = "server")
public class ApplicationConfiguration {
private String port;
public String getPort() {
return port;
}
public void setPort(String port) {
this.port = port;
}
}
TestController.java
@Controller
public class TestController {
@Autowired
ApplicationConfiguration applicationConfiguration;
@RequestMapping("/test")
@ResponseBody
public String test() {
if (applicationConfiguration != null) {
return applicationConfiguration.getPort();
}
return "1";
}
}
application.properties
server.port = 8085
Will ich jetzt ersetzen SpringBoot(Application.java)
mit WebApplicationInitializer
so, dass ich einen externen Behälter. Hier ist mein code:
CommonInitializer.java
public class CommonInitializer implements WebApplicationInitializer{
@Override
public void onStartup(ServletContext servletContext) throws ServletException {
AnnotationConfigWebApplicationContext annotationConfigWebApplicationContext = new AnnotationConfigWebApplicationContext();
annotationConfigWebApplicationContext.register(WebConfiguration.class);
annotationConfigWebApplicationContext.setServletContext(servletContext);
ServletRegistration.Dynamic servlet = servletContext.addServlet("dispatcher", new DispatcherServlet(annotationConfigWebApplicationContext));
servlet.setLoadOnStartup(1);
servlet.addMapping("/");
}
}
WebConfiguration.java
@Configuration
@EnableWebMvc
@ComponentScan(basePackages = "hello")
@EnableAutoConfiguration
@EnableConfigurationProperties(ApplicationConfiguration.class)
public class WebConfiguration {
@Bean
public ViewResolver viewResolver() {
InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
viewResolver.setViewClass(JstlView.class);
viewResolver.setPrefix("/WEB-INF/views/");
viewResolver.setSuffix(".jsp");
return viewResolver;
}
}
Nachdem Sie dies getan haben, ich bin nicht in der Lage, um den port(port ist null, applicationConfiguration ist nicht null) in application.proerties
. Irgendeine Idee? Was bin ich?
Für die Bereitstellung auf einem externen Behälter erweitern Sie ganz einfach die
warum verwenden Sie WebApplicationInitializer? Sie erstellen Projekt-Frühling
SpringBootServletInitializer
wie in der Referenz-Anleitung.warum verwenden Sie WebApplicationInitializer? Sie erstellen Projekt-Frühling
InformationsquelleAutor ItsJack | 2015-04-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
Problem gelöst. Ich bin fehlenden Eigenschaft Speicherort der Datei!!
Scheint spring boot macht das für Sie automatisch.
Standorten ist im Frühjahr wieder entfernt 2.0.0
Dieses answer ist viel besser und für mich gearbeitet.
InformationsquelleAutor ItsJack