springBoot注解整理:
一、springBoot启动程序注解:
@SpringBootApplication
@ServletComponentScan
1.@SpringBootApplication
@SpringBootApplication是一个复合注解,包括@ComponentScan,和@SpringBootConfiguration,@EnableAutoConfiguration。
@ComponentScan:扫描当前包及其子包下被@Component,@Controller,@Service,@Repository注解标记的类并纳入到spring容器中进行管理。
@SpringBootConfiguration:继承自@Configuration,二者功能也一致,标注当前类是配置类,
并会将当前类内声明的一个或多个以@Bean注解标记的方法的实例纳入到spring容器中,并且实例名就是方法名。
@EnableAutoConfiguration:启动自动的配置,@EnableAutoConfiguration注解的意思就是Springboot根据你添加的jar包来配置你项目的默认配置,
比如根据spring-boot-starter-web ,来判断你的项目是否需要添加了webmvc和tomcat,
就会自动的帮你配置web项目中所需要的默认配置。
也有扫描带有相关注解类的作用。
@ServletComponentScan:需要自定义拦截器。 编写方法:继承WebMvcConfigurerAdapter 重写addInterceptors方法。
@Configuration:配置spring的上下文,启动容器。
@Value注解说明:
1.普通字符串:
@Value("我是个普通字符串")
private String nornal;
2.系统属性
@Value("#{systemEnvironment['os.name']}")
private String osName;
3.表达式的值
@Value("#{T(java.lang.Math).random()*1000.0}")
private double randomNumber;
4.其他bean属性
@Value("#{demoService.anotherValue}")
private String anotherValue;
5.注入文件资源
@Value("classpath:ch2/value/test.txt")
private Resource testFile;
6.注入网站资源
@Value("http://www.baidu.com")
private Resource testUrl;
7.注入配置文件的数据
@Value("${book.name:aaa}")
private String bookName;
备注
1.读取额外配置文件的属性,需要如下注解
@PropertySource({"classpath:com/hry/spring/configinject/config.properties"})
建议写一个类,需要的时候将这个类进行注入操作。
@Component
容器进行类扫描时遇到这个注解会把这个类当成组件添加到spring容器中,需要的时候进行注入操作即可。
@Configuration
底层还是@Component
标注一个类是配置类,spring boot在扫到这个注解时自动加载这个类相关的功能。
@Bean标签,则类似于该xml文件中,声明的一个bean实例。
@RequestMapping 作用于类级别或者方法级别。
参数:
1.produces 指定返回客户端的数据类型。对应http请求头中的Accept produces = {"text/plain", "application/*"} produces = "application/json; charset=UTF-8"
2.consumes 指定客户端发送的文件格式/数据等。对应http请求中的contentType consumes = {"text/plain", "application/*"}
3.headers 限制请求的请求头。headers = {"content-type=text/plain "} headers = {"content-type=text/plain ","content-type=text/html "}
4.params 根据请求参数值的不同限制访问的请求
案例: @RequestMapping(value = "/fetch ", params = {"personId=10 "})
public String getParams(@RequestParam("personId ") String id) {
return "Fetched parameter using params attribute = " + id;
}
这个请求只有当前端传参personId的值为10才会触发。
5.method 设置请求的方法,方法类型:GET, POST, HEAD, OPTIONS, PUT, PATCH, DELETE, TRACE
案例: method = RequestMethod.POST
6.path 映射前端的请求路径。 value = "plugin/table/tablesetting"
7.value 和path互为别名。使用方法相同。
8.name 理解成注释
@ResponseBody
表示该方法的返回结果直接写入HTTP response body中一般在异步获取数据时使用,如异步获取json数据,加上@Responsebody后,会直接返回json数据。
@Component
泛指组件,当组件不好归类时,可以使用这个注解进行标注。一般公共的方法会用上这个注解
@RestController
等价于@Controller和@Responsebody
可以尝试编写替换操作
@ControllerAdvice :类上标注注解,进行异常的处理操作。
@@ExceptionHandler:方法上标注注解,进行异常的处理操作。