1、@SpringBootApplication
在main函数内
@SpringBootApplication = (默认属性)@Configuration + @EnableAutoConfiguration + @ComponentScan.也就是SpringBoot将三个注解统一为@SpringBootApplication。
@SpringBootApplication // 等同于 @Configuration @EnableAutoConfiguration @ComponentScan
public class Application {
public static void main(String[] args) {
///
}
}
1.1 @EnableAutoConfiguration
该注解用于定义配置类,以替换xml的配置文件。被注解的类内部包含有一个或多个被@Bean注解的方法,相当于xml文件中的标签。
@EnableAutoConfiguration
public class SpringBootDemo1 {
@RequestMapping("/")
@ResponseBody
String home() {
return "Hello World!";
}
public static void main(String[] args) throws Exception {
SpringApplication.run(SpringBootDemo1.class, args);//运行spring应用程序
}
}
上面的代码如果不加@EnableAutoConfiguration注解,就会报错:
Unable to start embedded container; nested exception is org.springframework.context.ApplicationContextException: Unable to start EmbeddedWebApplicationContext due to missing EmbeddedServletContainerFactory bean
。或者加@SpringBootApplication注解也可以解决。
1.2 @ComponentScan
定义扫描路径,该包路径下的@Component, @Service, @Repository, @Controller 等类都会被自动装载到容器内。
1.3 @Configuration
允许在上下文中注册其他的bean或导入额外的配置类。