view spring-boot-playground/src/main/java/de/comline/spring/application/ExplicitlyConfiguredApplication.java @ 13:a633d0623278

Die Sequenz startet bei 1 und wird auch nur um 1 erhoeht
author Dirk Olmes <dirk.olmes@codedo.de>
date Fri, 14 Aug 2020 08:13:57 +0200
parents 92d52e4ac567
children
line wrap: on
line source

package de.comline.spring.application;

import java.util.Arrays;

import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.http.HttpMessageConvertersAutoConfiguration;
import org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration;
import org.springframework.boot.autoconfigure.web.servlet.DispatcherServletAutoConfiguration;
import org.springframework.boot.autoconfigure.web.servlet.ServletWebServerFactoryAutoConfiguration;
import org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;

import de.comline.spring.application.ExplicitlyConfiguredApplication.CustomConfig;
import de.comline.spring.controller.HelloController;

@Import(CustomConfig.class)
public class ExplicitlyConfiguredApplication {
	public static void main(String[] args) {
		SpringApplication.run(ExplicitlyConfiguredApplication.class, args);
	}

	@Bean
	public CommandLineRunner commandLineRunner(ApplicationContext ctx) {
		return args -> {
			System.out.println("Let's inspect the beans provided by Spring Boot:");

			String[] beanNames = ctx.getBeanDefinitionNames();
			Arrays.sort(beanNames);
			for (String beanName : beanNames) {
				System.out.println(beanName);
			}
		};
	}

	@Configuration
	// scheint hier nicht zu funktionieren:
	// @ComponentScan(basePackages = "de.comline.spring.controller,de.comline.spring.service")

	// ServletWebServerFactoryAutoConfiguration for bringing up the embedded tomcat
	// DispatcherServletAutoConfiguration for detecting the REST controllers
	// WebMvcAutoConfiguration enabling Jackson response serialization
	// @formatter:off
	@Import({
			ServletWebServerFactoryAutoConfiguration.class,
			DispatcherServletAutoConfiguration.class,
			JacksonAutoConfiguration.class,
			HttpMessageConvertersAutoConfiguration.class,
			WebMvcAutoConfiguration.class,
			
			HelloController.class
			// Note how we do not list the CustomLogicController here, hence the controller is not bound
	})
	// @formatter:on
	static class CustomConfig {
		// no custom methods
	}
}