
JavaServer.HolderApplication.mustache Maven / Gradle / Ivy
package {{basePackage}};
import com.fasterxml.jackson.databind.Module;
import au.org.consumerdatastandards.holder.util.SwaggerJacksonModuleRegistrar;
import org.h2.server.web.WebServlet;
import org.openapitools.jackson.nullable.JsonNullableModule;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.ExitCodeGenerator;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration;
import org.springframework.boot.autoconfigure.security.servlet.UserDetailsServiceAutoConfiguration;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.http.MediaType;
import org.springframework.web.servlet.config.annotation.ContentNegotiationConfigurer;
/**
* We are excluding {@link SecurityAutoConfiguration} and {@link UserDetailsServiceAutoConfiguration}
* to disable spring default basic authentication.
*/
@SpringBootApplication(exclude = {SecurityAutoConfiguration.class, UserDetailsServiceAutoConfiguration.class})
@ComponentScan(basePackages = {
"au.org.consumerdatastandards.holder.api",
"au.org.consumerdatastandards.holder.repository",
"au.org.consumerdatastandards.holder.configuration",
"au.org.consumerdatastandards.holder.service",
"au.org.consumerdatastandards.holder.util",
})
public class HolderApplication implements CommandLineRunner {
@Override
public void run(String... arg0) {
if (arg0.length > 0 && arg0[0].equals("exitcode")) {
throw new ExitException();
}
}
public static void main(String[] args) {
new SpringApplication(HolderApplication.class).run(args);
}
class ExitException extends RuntimeException implements ExitCodeGenerator {
private static final long serialVersionUID = 1L;
@Override
public int getExitCode() {
return 10;
}
}
public void configureContentNegotiation(ContentNegotiationConfigurer configurer) {
configurer.defaultContentType(MediaType.APPLICATION_JSON);
}
@Bean
public Module jsonNullableModule() {
return new JsonNullableModule();
}
@Bean
public ServletRegistrationBean h2servletRegistration() {
ServletRegistrationBean registration = new ServletRegistrationBean<>(new WebServlet());
registration.addUrlMappings("/console/*");
return registration;
}
@Bean
public SwaggerJacksonModuleRegistrar swaggerJacksonModuleRegistrar() {
return new SwaggerJacksonModuleRegistrar();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy