SpringBoot-常用注解
...大约 3 分钟
SpringBoot-常用注解
学习核心
- Springboot常用注解
学习资料
Springboot常用注解
在Springboot自动装配和启动流程原理分析中对注解进行了拆解和分析,此处针对常用注解做核心汇总
注解 | 说明 |
---|---|
@SpringBootApplication | 核心注解,作用于Spring Boot主类,标识这是一个 Spring Boot 应用,用于开启Springboot的各项能力 其是@Configuration,@EnableAutoConfiguration,@ComponentScan三个注解的组合 |
@EnableAutoConfiguration | 允许 Spring Boot 自动配置注解 开启这个注解之后,Spring Boot 就能根据当前类路径下的包或者类来配置 Spring Bean 其核心在于AutoConfigurationImportSelector:实现自动加载、去重、过滤 |
@Configuration | 用于定义配置类,指出该类是 Bean 配置的信息源 类似传统的xml配置文件,一般加在主类上 |
@ComponentScan | 组件扫描。让spring Boot扫描到Configuration类并把它加入到程序上下文 @ComponentScan注解默认就会装配标识了@Controller,@Service,@Repository,@Component注解的类到spring容器中 |
@Profiles | Spring Profiles提供了一种隔离应用程序配置的方式,并让这些配置只能在特定的环境下生效 任何@Component或@Configuration都能被@Profile标记,从而限制加载它的时机 |
@ConfigurationProperties | 配置属性注解(可以理解为将xml配置和实体进行绑定),在自定义Starter中会用到 |
Spring框架相关注解 | (Spring框架中有说明) |
@Repository | 分层:用于修饰数据访问层组件 |
@Service | 分层:用于修饰Service业务层组件 |
@RestController | 分层:用于修饰Controller控制器层组件(rest风格:等价于@Controller+@ResponseBody组合) |
@ResponseBody | 用于返回JSON数据结果(搭配@RequestMapping 路径映射配置注解使用) |
@Component | 通用组件定义 |
@Bean | Bean对象定义,相当于XML中的<bean></bean> 放在方法的上面,而不是类,意思是产生一个bean,并交给spring管理 |
@AutoWired | 优先byType方式注入 |
@Qualifier | 当有多个同一类型的Bean时,可以用@Qualifier("name")来指定。与@Autowired配合使用 |
@Resource(name="name",type="type") | 默认优先byName方式注入(根据name、type的配置与否会限定注入方式) |
@RequestMapping | 处理请求地址映射的注解 |
@RequestParam | 处理请求URL的参数并封装到方法参数(XXX?param=xxx)以?后带的参数形式 |
@PathVariable | 处理请求URL的参数并封装到方法参数(XXX/{param})以占位符的形式 |
@EnableAutoConfiguration
允许 Spring Boot 自动配置注解,开启这个注解之后,Spring Boot 就能根据当前类路径下的包或者类来配置 Spring Bean。
如:当前类路径下有 Mybatis 这个 JAR 包,MybatisAutoConfiguration 注解就能根据相关参数来配置 Mybatis 的各个 Spring Bean。
@EnableAutoConfiguration实现的关键在于引入了AutoConfigurationImportSelector,其核心逻辑为selectImports方法,逻辑大致如下:
● 从配置文件META-INF/spring.factories加载所有可能用到的自动配置类;
● 去重,并将exclude和excludeName属性携带的类排除;
● 过滤,将满足条件(@Conditional)的自动配置类返回
@Configuration
用于定义配置类,指出该类是 Bean 配置的信息源,相当于传统的xml配置文件,一般加在主类上。如果有些第三方库需要用到xml文件,建议仍然通过@Configuration类作为项目的配置主类——可以使用@ImportResource注解加载xml配置文件
Powered by Waline v3.1.3