Spring Boot注解概念总结

524 阅读4分钟
学习了(摸鱼划水)一段时间的springboot,总结一下平时所用到的springboot的注解 使用的最多的就是 

1、@SpringBootApplication

这个注解相当于表示该类是一个开关,启动项目时直接启动有该注解的类 由三个注解组合而成

 @Configuration 标识这个类可以使用Spring IoC容器作为bean定义的来源 @bean告诉让spring容器将带有@bean的注解方法将返回一个对象 个人理解:你妈喊你在学校(spring容器)找一个女朋友(bean) 

@EnableAutoConfiguration 能够自动配置spring的上下文,试图猜测和配置你想要的bean类,通常会自动根据你的类路径和你的bean定义自动配置 个人理解:你在某某软件上,会根据你的喜好来给你推荐你喜欢的妹纸(bean) 

@ComponentScan 会自动扫描指定包下的全部标有@Component的类,并注册成bean,当然包括@Component下的子注解@Service,@Repository,@Controller 个人理解:你在看动漫时,只要是你喜欢(被标记为component)的都是你女朋友(bean) 

2、@Autowired 

自动注入 将值自动注入你定义的实体类之中 怎么自动注入的不明白,反正就是注入了 

 3、@RequestMapping 

具体使用方法 

@RequestMapping(value = “/CRUD”, method = { RequestMethod.GET, RequestMethod.POST }) 采用post还是get视情况而定 兄弟:

 @GetMapping,处理get请求 

@PostMapping,处理post请求 

@PutMapping,处理put请求 

@DeleteMapping,处理delete请求 提供resultful风格支持 

4、@ResponseBody 

作用在方法上 将返回的对象转化为json字符串,方便读取 (将你的女朋友数字化) @RequestBody 这个方法可以作用在字段上 

 5、@CrossOrigin 

可用于跨域访问 具体使用方法:@CrossOrigin(“http://localhost:8080”) 对方将localhost改为你得ip地址即可访问

 6、@Mapper和@MapperScan 

1.在接口类上添加了@Mapper,在编译之后会生成相应的接口实现类 添加位置:接口类上面 具体使用方法:

@Mapper public interface userservice { //代码块 }

@MapperScan 作用:指定要变成实现类的接口所在的包,然后包下面的所有接口在编译之后都会生成相应的实现类 添加位置:是在Springboot启动类上面添加(开关) 

 7、@Bean

 @Bean注解用于告诉方法,产生一个Bean对象,然后这个Bean对象交给Spring管理

 8、@Controller  

标识为控制层 将@Controller标记在某个类上,配合@RequestMapping注解,可以在一个类中定义多个接口,这样使用起来更加灵活 

9、@Api 

Swagger是当前最好用的Restful API文档生成的开源项目,通过swagger-spring项目 实现了与SpingMVC框架的无缝集成功能,方便生成spring restful风格的接口文档。 

10、@ConfigurationProperties 

我们想把配置文件的信息,读取并自动封装成实体类,这样子,我们在代码里面使用就轻松方便多了,这时候,我们就可以使用@ConfigurationProperties,它可以把同类的配置信息自动封装成实体类 

11、@PropertySource 

加载指定的属性文件(*.properties)到 Spring 的 Environment 中。可以配合 @Value 和 @ConfigurationProperties 使用。 具体使用: @ConfigurationProperties(prefix = “audience”) @PropertySource(“classpath:jwt.properties”) 

12、@value 

Value将外部的值动态注入到Bean中,使用的情况有:

 注入普通字符串 

注入操作系统属性 

注入表达式结果 

注入其他Bean属性 

注入beanInject对象的属性another 

注入文件资源 注入URL资源 

13、@Component 

@Component可以注解其他类注解(没理解这个意思,注解其他类注解????excuse me??) 

14、@Select@update@insert@delate 

sql语句的注解 

具体使用 

@Select(“select * from 表名”) 

@Delete(“delete from 表名 where 字段名=#{值}”) 其余两个相似 

 15、@param

Param注解单一属性(我所接触到的) 

Public User selectUser(@param(“userName”) String name,@param(“userpassword”) String password); @Param注解JavaBean对象 

public List getUserInformation(@Param(“user”) User user); 

 16、@Documented@Retention@Target

1.@Target({ElementType.TYPE})

 @Target用来表示注解作用范围,超过这个作用范围,编译的时候就会报错 

2.@Retention(RetentionPolicy.RUNTIME)

 @Retention定义了该Annotation被保留的时间长短 

@Retenrion通过RetebtionPolicy表示需要在什么级别保存该注释信息,用于描述注解的生命周期(即:被描述的注解在什么范围内有效) 

3.@Documented Documented注解表明这个注释是由 javadoc记录的,在默认情况下也有类似的记录工具。 如果一个类型声明被注释了文档化,它的注释成为公共API的一部分