diff --git a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/SpringBootApplication.java b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/SpringBootApplication.java new file mode 100644 index 0000000000..9cf26af22e --- /dev/null +++ b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/SpringBootApplication.java @@ -0,0 +1,49 @@ +/* + * Copyright 2012-2014 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.boot.autoconfigure; + +import java.lang.annotation.Documented; +import java.lang.annotation.ElementType; +import java.lang.annotation.Inherited; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Configuration; + +/** + * Indicates a {@link Configuration configuration} class that declares one or more + * {@link Bean @Bean} methods and also triggers {@link EnableAutoConfiguration + * auto-configuration} and {@link ComponentScan component scanning}. This is a convenience + * annotation that is equivalent to declaring {@code @Configuration}, + * {@code @EnableAutoConfiguration} and {@code @ComponentScan}. + * + * @author Phillip Webb + * @since 1.2.0 + */ +@Target(ElementType.TYPE) +@Retention(RetentionPolicy.RUNTIME) +@Documented +@Inherited +@Configuration +@EnableAutoConfiguration +@ComponentScan +public @interface SpringBootApplication { + +} diff --git a/spring-boot-cli/src/main/java/org/springframework/boot/cli/compiler/autoconfigure/SpringBootCompilerAutoConfiguration.java b/spring-boot-cli/src/main/java/org/springframework/boot/cli/compiler/autoconfigure/SpringBootCompilerAutoConfiguration.java index fce937eead..1696eaaf2b 100644 --- a/spring-boot-cli/src/main/java/org/springframework/boot/cli/compiler/autoconfigure/SpringBootCompilerAutoConfiguration.java +++ b/spring-boot-cli/src/main/java/org/springframework/boot/cli/compiler/autoconfigure/SpringBootCompilerAutoConfiguration.java @@ -94,8 +94,9 @@ public class SpringBootCompilerAutoConfiguration extends CompilerAutoConfigurati private boolean hasEnableAutoConfigureAnnotation(ClassNode classNode) { for (AnnotationNode node : classNode.getAnnotations()) { - if ("EnableAutoConfiguration".equals(node.getClassNode() - .getNameWithoutPackage())) { + String name = node.getClassNode().getNameWithoutPackage(); + if ("EnableAutoConfiguration".equals(name) + || "SpringBootApplication".equals(name)) { return true; } }