@SpringBootApplication
@SpringBootApplication是一个组合注解,它整合了@Configuration、@EnableAutoConfiguration和@ComponentScan注解,并开启了Spring Boot 程序的组件扫描和自动配置功能。
@SpringBootApplication 等价于 (@Configuration + @EnableAutoConfiguration + @ComponentScan)
@SpringBootApplication
public class MongoApp {
public static void main(String[] args) {
SpringApplication.run(MongoApp.class, args);
}
}
1、@Configuration:此注解一般需要搭配@Bean。这两个注解可以创建一个spring配置类
2、@EnableAutoConfiguration:此注解自动配置spring的上下文
3、@ComponentScan:此注解自动扫描标有@Component的类,注册成bean,包括@Component下的子注解@Service,@Repository,@Controller。
https://blog.csdn.net/okxuewei/
@SpringBootApplication的源码
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan(excludeFilters = {
@Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class),
@Filter(type = FilterType.CUSTOM, classes = AutoConfigurationExcludeFilter.class) })
public @interface SpringBootApplication {
....
@SpringBootApplication只会扫描@SpringBootApplication注解标记类包下及其子包的类(特定注解标记,比如说@Controller,@Service,@Component,@Configuration和@Bean注解等等)纳入到spring容器,当@SpringBootApplication注解标记类相同包下及其子包的类,所以需要我们去配置一下扫包路径。
修改启动类,@SpringBootApplication(scanBasePackages = "com.springbootapplication.springboot"),指定扫描路径,
@SpringBootConfiguration
@SpringBootConfiguration,该注解具有@EnableAutoConfiguration、@ComponentScan等注解因为有@ComponentScan,因此@Controller会被扫描并注册。
@GetMaping
@GetMapping是Spring4.3提供的新注解。它也是组合注解等价于@RequestMapping(method=RequestMethod.GET),用于简化开发。同理还有@PostMapping,与@SpringBootApplication一样也是为了简化开发。@SpringBootApplication是spring boot最重要的一个注解,用于快捷配置启动类。
--思想--
相信极度求真和极度透明
不要惧怕了解事实
为人要正直,也要求他人保持正直