注解从jdk5之后提供了支持,注解是代码中的特殊标记,可以作用于源码阶段,编译阶段以及运行阶段,由元注解@Retention来决定
元注解
@Retention:指定注解有效期,取值包括RetentionPolicy.SOURCE,RetentionPolicy.CLASS,RetentionPolicy.RUNTIME
@Documented:指定可以加载到Javadoc中
@Target:指定注解使用目标,取值包括ElementType.TYPE,ElementType.FIELD等
@Inherited:表明子类可以继承父类的注解
spring boot中常用注解
注解在类上,注解的bean交由IOC容器进行管理
@Service ,@Controller ,@RestController,@Repository,@Component,@Configuration
value值定义的话即bean名,不自定义默认以类名首字母小写作为bean名,特殊情况类的第二个字母不为小写字母,则以类名为bean名
注解在类上
@RestController:结合@ResponseBody 和 @Controller 的注解
@Configuration:通常与@Bean注解一起使用
@Scope:指明bean构建方式,singleton单例,prototype取得的bean都是新的对象
@SpringBootApplication:
指明启动类,表示约定优于配置,相当于同时使用@ComponentScan +@Configuration+@EnableAutoConfiguration
@ComponentScan:扫描指定包下的@Component注解的类,包括@Service ,@Controller ,@RestController等
@ImportResource:加载xml配置文件
@Import:加载指定的类
注解在属性上
@Autowired:按类型注入;当存在类型相同,多个bean时,可以使用@Primary指定注入某个bean
@Resource: 按名称注入
@Qualifier:可以与@Autowired一起使用,按类型名称进行匹配
@Value:从配置文件等地方读取
注解在方法上
@Bean:指明该方法返回一个bean
@RequestMapping:指定访问方法,访问地址等信息,可以放在类上 原理可以参考博文
参考博文:
SpringBoot注解最全详解