当前位置: 首页 > news >正文

RabbitMQ 小项目之扫盲班

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、注解类
  • 二、独特写法
  • 总结


前言

学习rabbitmq时发现很多注解看不懂,需要特地去查,于是在这里总结相关注解和其他应该会的。
做项目还没有做完,也写一些不懂的。


一、注解类

@FeignClient(value = “business”)
springcloudAlibaba的openfeign接口,value填在springcloud中注册的服务,下面的接口方法则是需要调用的接口方法。

@Configuration
配置类需要的注解,像RedisTemplate、RabbitmqTemplate都需要这个注解

@Bean
将配置类的方法的返回值创建为spring容器中的bean,一般与@Configuration配合使用。
注: @Autowired是申请已存在的对象;@Component是加在类上,声明不属于@Service, @Repository, @Controller的组件

@Slf4j
可以调用log.info及其他日志方法,加在类上

@Autowired
将spring容器中的bean注入

@RestController、@Controller + @ResponseBody
目前我发现区别在于返回值是字符串时,两者都可以正常显示;但是如果单独的@Controller没有编写前端页面,返回字符串就会显示空页。

 @GetMapping("/po")public String po(){long start = System.currentTimeMillis();//1、调用库存服务扣除商品库存itemStockClient.decr();//2、调用订单服务,创建订单orderManageClient.create();System.out.println(end - start);return "place order is ok!";}

@GetMapping(“/po”)
接受对应的请求

@Mapper与@MapperScan(basePackages = “”)
mapper接口上应该有@Mapper注解,或者在启动类上表明注解@MapperScan(basePackages = “”),写明mapper包所在位置

@SpringBootApplication
springboot的启动类

@EnableDiscoveryClient
nacos服务的注册,也在启动类上

@EnableFeignClients
openfeign中要调用其他服务的启动类上声明,被调用的不用声明

@RabbitListener(queues = )
标记一个方法作为消息监听器,当有消息到达指定队列时自动调用该方法

@Select、@Insert、@Update
mapper.xml的简略模式,直接把sql语句写在mapper接口中

@Transactional
spring中保证数据操作的ACID,全成功或者全部失败

@Resource
按名称或类型注入,比@Autowired更丰富一些,默认按名称注入。

@JsonFormat(pattern = “”)
限制日期的格式,序列化与反序列化

@NotNull
字段不能为空

@DateTimeFormat(pattern = “”)
前端传表单,用这个规定时间格式

@PathVariable(value=“”)
方法要从浏览器获得的请求参数

@Value
将配置的值注入管理的bean中

@RefreshScope
动态刷新配置,无需重启

@RequestMapping
Controller中类路径的地址

@Getter
Lombok中的方法,自动生产getter方法

@Data
自动生成所有字段的getter、setter、toString、equals、hashCode方法

@NotBlank(message =“”)
验证字符串不能为null、不能为空字符串、不能只包含空白字符

@Range(min = , max = ,message = “”)
限制数值的范围

@NoArgsConstructor、@AllArgsConstructor
无参构造和全参构造

@RequestBody
把请求体中的JSON/XML数据转换为Java对象

@RequestParam
是一个可选的参数,得到URL?后的参数并赋值给方法处理

二、独特写法

采用策略模式和责任链相结合:
写一个filter接口用作父接口,并定义一个方法:

public interface CheckFliter {void check(StandardSubmit submit);
}

spring中 private Map<String, CheckFliter> checkFliterMap会自动得到接口的所有实现类。@Value会得到配置中filters的值,通过for循环自动执行每个filter中存在实现类的.check()方法,实现责任链,策略模式通过配置中注值来实现

@Component
@RefreshScope
public class CheckFilterContext {@Autowiredprivate Map<String, CheckFliter> checkFliterMap;//自动得到所有实现类@Value("${filters:apikey,ip,sign,template,mobile,fee}")private String filters;public void check(StandardSubmit submit) {String[] filterArray = filters.split(",");for (String filter : filterArray) {CheckFliter checkFliter = checkFliterMap.get(filter);checkFliter.check(submit);}}
}

每个具体的实现类,都有独特的实现方法

@Service(value = "apikey")
@Slf4j
public class ApiKeyCheckFilter implements CheckFliter {@Autowiredprivate BeaconCacheClient beaconCacheClient;@Overridepublic void check(StandardSubmit submit) {log.info("接口模块-校验apikey");Map clientBusiness=beaconCacheClient.hGetAll(CacheConstant.CLIENT_BUSINESS+submit.getApikey());if (clientBusiness == null || clientBusiness.size() == 0){log.info("【接口模块-校验apikey】 非法的apikey="+submit.getApikey());throw new ApiException(ExceptionEnums.ERROR_APIKEY);}submit.setClientId(Long.parseLong(clientBusiness.get("id")+""));log.info("【接口模块-校验apikey】 查询到用户信息 clientBusiness={}",clientBusiness);}
}

2.java8的某个语法糖

void sadd(@PathVariable(value = "key")String key, @RequestBody Map<String,Object>... maps);

可以接收0个或多个Map,放在一个List[]数组中


总结

写了一部分,项目写完了再来补充

http://www.dtcms.com/a/598569.html

相关文章:

  • 自己如何在网上做网站黄页88网企业名录
  • 信宜做网站动漫制作专业就业方向
  • 国外网站会让国内人做吗ts431p 做网站
  • 酒店网站制作公司企业网站要怎么建设
  • 微信开发网站制作宣传片拍摄报价明细
  • 鹤山市住房和城乡建设局网站深圳做网页
  • LayUI基础入门
  • 56_AI智能体运维部署之实战指南:编写生产级docker-compose部署脚本
  • 公司制作一个网站价格全屋定制一般多少钱
  • 做网站为什么要租服务器广西来宾网站网站建设
  • 制作免费网站微信公众号开发流程图
  • K8S Base: CrashLoopBackOff
  • 《Python 小程序编写系列》(第三部):简易文件批量重命名工具
  • 建设信息门户网站的条件广州设计网站公司
  • 国内做网站的大公司有哪些歌手投票网站怎么做
  • 【系统分析师】2025年下半年真题:案例分析-答案及详解(回忆版)
  • 关系数据库小测练习笔记(1)
  • 门源县电子商务网站建设公司在线短网址生成工具
  • 河南商务学校网站建设污染网站代码
  • 毕业设计做一个网站怎么做网站模板双语
  • 阿里个人网站自动建站网站源码
  • c语言16:结构体对齐,从原理到大小计算
  • 模板免费网站wordpress手机底部导航
  • 移动通信网络建设实验4:5G基站设备小区配置与开通
  • 咖啡厅网站开发目标谁做的四虎网站是多少钱
  • geotools加载tif 无法关闭tif的流导致tif文件无法删除问题
  • SDK MicroBlaze ELF文件大小分析
  • 学校的网站如何建设方案哈尔滨seo关键词排名
  • 知名企业网站分析 比较评估重庆平台网站建设企业
  • vs做网站如何放背景图流量平台有哪些