一、@SpringBootApplication
说明: 指定这是Spring Boot应用的主程序。
然后,Ctrl+右键 进入@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}
)}
)
(一)@SpringBootConfiguration——SpringBoot配置类
被这个注解标注的类是SpringBoot配置类。
Ctrl+右键 进入@SpringBootConfiguration源文件,发现源文件又有一堆组合注解:
@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Configuration
其中要说的是:@Configuration——配置文件,怎么理解呢?其实就是说Spring Boot的@SpringBootConfiguration是源于Spring的@Configuration,我们再往@Configuration底层看,我们发现@Configuration的低层还有一堆组合注解:
@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Component
其中要说的是:@Component——组件,到这里我们不往下看了,这种“继承”关系
我们就链路起来:
@Component——>@Configuration——>@SpringBootConfiguration——>@SpringBootApplication
什么意思呢?就是说@SpringBootApplication是一个组件。
(二)@EnableAutoConfiguration——开启自动配置功能
@EnableAutoConfiguration——开启自动配置功能。被这个注解标注的类具有自动配置的功能,而这个标注在@SpringBootApplication中说明Spring Boot项目开启了自动配置功能。
然后,Ctrl+右键进入@EnableAutoConfiguration底层源码,我们发现有组合注解如下:
@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@AutoConfigurationPackage
@Import({AutoConfigurationImportSelector.class})
其中要说的是:@AutoConfigurationPackage——自动配置包
再Ctrl+右键进入它的底层,又是组合注解:
@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@Import({Registrar.class})
OK! 我们要说的是:@Import({Registrar.class})
@Import()的意思是给容器中导入组件,即:{Registrar.class} 组件。
而 {Registrar.class} 组件 的作用是:将@SpringBootApplication所在的包下的所有子包和组件都扫描到Spring容器中。
二、常用注解
(一)@Controller——控制器
(二)@ResponseBody
说明: 将数据写给浏览器,如果是对象,还可以转换成Json数据
注意: @ResponseBody 给方法注解则对该方法起作用,给类注解则对所有方法起作用。
(三)@Controller+@ResponseBody =@RestController 切记!
(三)@RequestMapping("/GetData")
说明: 映射请求,指定哪些URL可以获取数据。
(四)@ConfigurationProperties
说明: 这个注解通常放在JavaBean中使用,告诉SpringBoot这个JavaBean和配置文件中指定对的数据绑定。用法如下:@ConfigurationProperties(prefix = "person")
,其中person是.yml文件中的数据对象。