SpringBoot常用注解及方法

阅读: 评论:0

SpringBoot常用注解及方法

SpringBoot常用注解及方法

SpringBoot常用注解及方法

<(“value”)<(“skuCategory”)
注解/方法注释
@SpringBootApplication是一个组合注解,用于快捷配置启动类。由@ComponentScan 注解、@EnableAutoConfiguration 注解、@SpringBootConfiguration 注解、@Inherited 注解、@Documented 注解、@Retention() 注解、@Target() 注解组成
获取容器中aa的bean
matches(ConditionContext conditionContext, AnnotatedTypeMetadata annotatedTypeMetadata)@ConditionOnClass(“AA”)的条件方法。Conditional 是在spring4.0 增加的条件注解,当你注册bean时,可以对这个bean添加一定的自定义条件,当满足这个条件时,注册这个bean,否则不注册。conditionContext 上下文对象,获取属性值、获取类加载器、获取BeanFactory,annotatedTypeMetadata 元数据对象,获取注解属性。
@Configuration用@Configuration注释类表明其主要目的是作为bean定义的源
SpringIOC容器管理一个或者多个bean,这些bean都需要在@Configuration注解下进行创建,在一个方法上使用@Bean注解就表明这个方法需要交给Spring进行管理。
@Bean@Bean注解用于告诉方法,产生一个Bean对象,然后这个Bean对象交给Spring管理。产生这个Bean对象的方法Spring只会调用一次,随后这个Spring将会将这个Bean对象放在自己的IOC容器中。
@ConditionOnClass(“AA”)判断AA是否存在,存在才会注入
@Target({ElementType.TYPE, ElementType.METHOD})@Target说明了Annotation所修饰的对象范围:
Annotation可被用于 packages、types(类、接口、枚举、Annotation类型)、类型成员(方法、构造方法、成员变量、枚举值)、方法参数和本地变量(如循环变量、catch参数)。在Annotation类型的声明中使用了target可更加明晰其修饰的目标。 
作用:用于描述注解的使用范围(即:被描述的注解可以用在什么地方)
取值(ElementType)有:1.CONSTRUCTOR:用于描述构造器2.FIELD:用于描述域3.LOCAL_VARIABLE:用于描述局部变量4.METHOD:用于描述方法5.PACKAGE:用于描述包6.PARAMETER:用于描述参数7.TYPE:用于描述类、接口(包括注解类型) 或enum声明
@Retention(RetentionPolicy.RUNTIME)注解@Retention可以用来修饰注解,是注解的注解,称为元注解。Retention注解有一个属性value,是RetentionPolicy类型的,Enum RetentionPolicy是一个枚举类型,这个枚举决定了Retention注解应该如何去保持,也可理解为Rentention 搭配 RententionPolicy使用。RetentionPolicy有3个值:CLASS RUNTIME SOURCE按生命周期来划分可分为3类: 1、RetentionPolicy.SOURCE:注解只保留在源文件,当Java文件编译成class文件的时候,注解被遗弃2、RetentionPolicy.CLASS:注解被保留到class文件,但jvm加载class文件时候被遗弃,这是默认的生命周期;3、RetentionPolicy.RUNTIME:注解不仅被保存到class文件中,jvm加载class文件之后,仍然存在; 这3个生命周期分别对应于:Java源文件(.java文件) —> .class文件 —> 内存中的字节码。那怎么来选择合适的注解生命周期呢?首先要明确生命周期长度 SOURCE < CLASS < RUNTIME ,所以前者能作用的地方后者一定也能作用。一般如果需要在运行时去动态获取注解信息,那只能用 RUNTIME 注解,比如@Deprecated使用RUNTIME注解 如果要在编译时进行一些预处理操作,比如生成一些辅助代码(如 ButterKnife),就用 CLASS注解;如果只是做一些检查性的操作,比如 @Override 和 @SuppressWarnings,使用SOURCE 注解。注解@Override用在方法上,当我们想重写一个方法时,在方法上加@Override,当我们方法的名字出错时,编译器就会报错注解@Deprecated,用来表示某个类或属性或方法已经过时,不想别人再用时,在属性和方法上用@Deprecated修饰注解@SuppressWarnings用来压制程序中出来的警告,比如在没有用泛型或是方法已经过时的时候
@Documented@Documented 注解表明这个注解应该被 javadoc工具记录. 默认情况下,javadoc是不包括注解的. 但如果声明注解时指定了 @Documented,则它会被 javadoc 之类的工具处理, 所以注解类型信息也会被包括在生成的文档中,是一个标记注解,没有成员
@interface@interface表示该类是一个注解类,相当于自己定义一个注解
String[] value() default{};定义一个String[] 变量为value() 值为default{}(默认值为空)
@Conditional(value = {ClassCondition.class})使用自定义注解
getAnnotationAttributes(Name())获取注解中的所有的属性值(.Name()获取全限定类名)
跟据指定键获取值
Class.forName(s);获取该对象的实体类名称
@ConditionalOnBean判断spring容器中有某个bean时初始化该Bean
@ConditionalOnClass判断程序中有某个class字节码文件时初始化该Bean
@ConditionalOnMissingBean判断spring容器中没有该Bean时会初始化该Bean
@ConditionalOnMissingClass判断程序中没有某个class字节码文件时初始化该Bean
@ConditionalOnProperty判断配置文件中是否有对应的属性和值才初始化该bean
@ComponentScan(basePackages = {“com”})指定扫描的包(无法获取该bean的实例原因是,启动类默认加载当前包以及子包下的类。而我们的User/UserConfig与启动类并不在同一个包下,因此我们可以通过@ComponentScan指定扫描的包。)
@Import(UserConfig.class)@Import注解,直接指定UserConfig.class字节码文件。
@ConfigurationProperties(prefix = “myredis”)@ConfigurationProperties是springboot提供读取配置文件的一个注解。其对应的bean的后置处理器为ConfigurationPropertiesBindingPostProcessor
@EnableConfigurationProperties@EnableConfigurationProperties注解的作用是:使 @ConfigurationProperties 注解的类生效。
MyCommandLineRunnerCommandLineRunner是一个接口,预先数据的加载,我们需要时,只需实现该接口就行(初始化系统参数)
Arrays.asList(a)Arrays.asList的作用是将数组转化为list
ApplicationRunnerApplicationReadyEvent事件可以实现系统启动完后做一些系统初始化的操作(进行缓存预热)
ApplicationArguments 中SourceArgs()获取命令行中所有参数
@component@component (把普通pojo实例化到spring容器中,相当于配置文件中的 < bean id="" class=""/>)
SpringApplicationRunListenerSpringApplicationRunListener 接口的作用主要就是在Spring Boot 启动初始化的过程中可以通过SpringApplicationRunListener接口回调来让用户在启动的各个流程中可以加入自己的逻辑。Spring Boot启动过程的关键事件(按照触发顺序)包括:
开始启动
Environment构建完成
ApplicationContext构建完成
ApplicationContext完成加载
ApplicationContext完成刷新并启动
启动完成
启动失败
ApplicationContextInitializerApplicationContextInitializer接口是在spring容器刷新之前执行的一个回调函数。
@Mapper@Mapper注解的的作用
1:为了把mapper这个DAO交給Spring管理
2:为了不再写mapper映射文件
3:为了给mapper接口 自动根据一个添加@Mapper注解的接口生成一个实现类
@RestController将查询到的数据转换成json
@PathVariable@PathVariable是用来bai对指定请求的URL路径里du面的变量 eg: Java代码 @RequestMapping(value = “form/{id}/apply”, method = {RequestMethod.PUT, RequestMethod.POST}) {id}在这zhi个请求的URL里就是个变量,可以使用@PathVariable来获dao取 @PathVariable和@RequestParam的区别就在于:@RequestParam用来获得静态的URL请求入参
@EnableEurekaServer开启eureka注册中心服务
@EnableEurekaClient开启eureka客户端
@EnableCircuitBreaker开启熔断器的注解
@SpringCloudApplication注解@SpringCloudApplication包括:@SpringBootApplication、@EnableDiscoveryClient、@EnableCircuitBreaker,分别是SpringBoot注解、注册服务中心Eureka注解、断路器注解。
@HystrixCommand(fallbackMethod = “findByIdFallBack”)该方法调用服务失败时会调用findByIdFallBack方法
@FeignClientSpring Cloud声明式调用Feign负载均衡FeignClient
@EnableFeignClients开启Feign客户端功能
ClientGlobal.init()fastDFS文件服务器的java客户端初始化方法ClientGlobal.init()
ClassPathResource(path)加载资源文件
附件内容
附件扩展名
NameValuePair[1]附件备注([x]x为指定元素个数)
TrackerClient创建跟踪服务器的客户端类
通过跟踪服务器的客户端获取服务器端
StorageClient();存储服务器客户端类(new StorageClient(跟踪服务器, 存储服务器);)
storageClient.upload_file文件上传
getInetSocketAddress()IP 套接字地址 (IP 地址+端口号)
getAddress()封装计算机的 IP 地址,不包含端口号
getHostName()获取主机名
获取服务器端口号
storageClient.download_file(group_name, remote_filename);文件下载,参数(组名,文件所在的磁盘目录)
storageClient.delete_file(group_name, remote_filename);删除文件,参数(组名,文件所在的磁盘目录)
FileInfo fileInfo = _file_info(group_name, remote_filename);获取文件信息,参数(组名,文件所在的磁盘目录)
MultipartFileMultipartFile实现文件上传
获取文件名
根据文件名获取文件扩展名
获取文件内容
IOUtils.write(bytes,new FileOutputStream(“D:100.jpg”))write(指定数据,输出地址)方法可以把数据写入到输出流中
FileInfo文件信息类
文件上传的时间
文件大小
服务器地址
StorageServer封装存储服务器信息
存储服务器所在的组的index索引
服务器ip
服务器端口号port
idworker产生唯一的id(idworker工具类)
JSON.parseObject(spec, Map.class)json字符串转化为对象
entrySet()由于Map中存放的元素均为键值对,故每一个键值对必然存在一个映射关系。Map中采用Entry内部类来表示一个映射项,映射项包含Key和ValueMap.Entry里面包含getKey()和getValue()方法Set<Entry<T,V>> entrySet()该方法返回值就是这个map中各个键值对映射关系的集合。
@EnableCanalClient开启mysql数据监听
@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})排除自动注入数据源的配置(取消数据库配置),一般使用在客户端(消费者)服务中
@CanalEventListener声明当前的类是canal的监听类
@InsertListenPoint监听新增操作
CanalEntry.EntryType entryType数据库操作事件
CanalEntry.RowData rowData行数据
获取数据库操作新增数据
CanalEntry.Column操作的数据列名和列值
获取数据库操作更新前的数据
获取数据库操作更新的数据
获取数据库操作删除的数据
@DeleteListenPoint监听删除操作
@UpdateListenPoint监听更新操作
stringRedisTemplate.boundValueOps()设置redis中的key键
@EnableElasticsearchRepositories(basePackages = {“com.changgou.search.dao”})操作es数据库(启动类中扫描数据库)
JSON.parseArray(text, SkuInfo.class);将json数据text转换成SkuInfo类型的List集合
JSON.parseObjectJSON.parseObject,是将Json字符串转化为相应的对象
ElasticsearchTemplateElasticsearchTemplate是Spring对ES的java api进行的封装,提供了大量的相关的类来完成各种各样的查询
NativeSearchQueryBuilderNativeSearchQueryBuilder多条件查询方法
NativeSearchQueryBuilder.withQuery()添加检索条件
QueryBuilders.matchQuery(“name”, keywords)为所提供的字段名和文本创建一个类型为“布尔”的匹配查询。(字段名,条件)
商品列表数据
总条数
总页数
NativeSearchQueryBuilder.addAggregation// 添加聚合条件(分组条件)
terms指定字段的别名,field指定需要检索的字段
获取聚合结果(获取分组结果)
根据字段名获取结果
getBuckets()将结果转换成list集合
elasticsearchTemplate.queryForPage(nativeSearchQuery, SkuInfo.class)根据条件查询后分页(条件,类型)
intValue();将数据转换成int类型
NativeSearchQueryBuilder.build()将NativeSearchQueryBuilder类型数据转换成NativeSearchQuery类型数据
getKeyAsString()将数据转换成String类型
QueryBuilders.boolQuery()返回满足bool下所有query的结果(拼接查询条件)
BoolQueryBuilder.must()添加检索条件
keySet()遍历所有的键
startsWith(“spec_”)判断是否以指定字段开头
QueryBuilders.rangeQuery(“price”).gte(prices[0]).lte(prices[1])查询字段price中的数据,条件是:gte(值)(大于等于)lte(值)(小于等于)
NativeSearchQueryBuilder .withSort()对结果进行排序
SortBuilders.fieldSort(sortField).order(SortOrder.ASC)SortBuilders.fieldSort(需要排序的字段).order(排序规则) SortOrder.ASC升序,SortOrder.DESC)降序
withFilter(bool)根据条件bool进行过滤
Integer.valueOf(pageNum)将数据转成int类型
PageRequest.of(page, size);分页工具PageRequest.of(当前页码, 每页显示行数);封装分页条件
withPageable(pageable)对分页条件进行分页
手机$12
导管$1电脑
手机$12
导管$1
手机$12
导管$1电脑
手机$12
导管$1电脑
手机$12
导管$1电脑
手机$12
导管$1电脑
手机$12
导管$1电脑
手机$12
导管$1电脑
手机$12
导管$1
手机$12
导管$1电脑
手机$12
导管$1电脑
手机$12
导管$1电脑
手机$12
导管$1电脑
手机$12
导管$1电脑
手机$12
导管$1电脑
手机$12
导管$1

本文发布于:2024-02-01 01:42:34,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170672295432942.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:注解   常用   方法   SpringBoot
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23