三. 主流框架详解
文章平均质量分 54
记录日常开发常用的框架使用经验,底层源码解析,常见误区以及规避不必要的坑。
virgil.wang
苦学技术,精进业务
展开
-
SpringMVC 请求体的字符串转LocalDate
1. 场景前端需要传递 年月日, 如 2022-03-04,这里选用 jdk8 新引入的 LocalDate 来接这个参数。2. 步骤在对应的字段上加上注解 @JsonDeserialize(using = LocalDateDeserializer.class) private LocalDate end;using 后边的类可以拓展到其它对象类。...原创 2022-04-08 20:24:08 · 796 阅读 · 0 评论 -
自定义实现校验注解
1. 背景在输入价格的时候,需要对价格的范围和小数的长度做校验。当前 JSR-303 已经对 BigDecimal 的最小值和最大值做了通用的校验注解。@DecimalMin(min = “0.01”, message = “报错内容”)@DecimalMax(min = “99999999.99”, message = “报错内容”)需要注意的是,上述的两个注解并不能对 null 的 BigDecimal 对象做校验,所以通常和 @NotNull 联合使用。2. 需求针对 BigDeci原创 2022-03-15 22:42:14 · 5088 阅读 · 0 评论 -
Elasticsearch: collapse 去重
官方文档传送门1、 collapsecollapse 可以将搜索结果按照指定的 field 去重。如果在一次 DSL query 中,collapse 和 sort 同时存在时,DSL 的执行顺序是 select -> collapse -> sort。2、 使用场景根据关键词搜索 spu_id, 但文档是 SKU,根据 SKU 的名称关键词搜索 spu_id。一个 SPU 通常都有多个 SKU,如果不对 spu_id 进行去重,那么 spu_id 将会有很多的重复。DSL demo原创 2021-07-19 19:48:35 · 1722 阅读 · 0 评论 -
Eureka 和 Zookeeper 作为服务发现注册组件有什么区别
1、知识储备EurekaEureka is a REST (Representational State Transfer) based service that is primarily used in the AWS cloud for locating services for the purpose of load balancing and failover of middle-tier servers.ZookeeperA centralized service for maintain原创 2021-04-23 12:58:58 · 94 阅读 · 0 评论 -
centos docker 安装 RabbitMQ 3.6.10
1. 安装指令docker run --name rabbitMQ -p 15672:15672 -p 5672:5672 -d \-e RABBITMQ_DEFAULT_USER=admin \-e RABBITMQ_DEFAULT_PASS=admin \rabbitmq:3.6.10-management参数说明15762RabbitMQ 控制台的端口号,可以在浏览器中通过控制台来执行 RabbitMQ 的相关操作。5672RabbitMQ 所监听的 TCP 端口号,应用程序原创 2021-04-06 15:38:04 · 280 阅读 · 0 评论 -
关于微服务项目结构方式的思考
1. 问题来源在做个人或小型的微服务项目时,对于项目结构是写在同一个目录下还是分别写成不同的maven工程利用依赖交流,困扰了我很久。2. 选择我倾向于写成不同的项目,在idea中打开时不同的window代表不同的服务。3. 原因3.1 编写代码单一的wondow代表单一的服务。在编写代码时,所选择的类数量就大大降低,减小了误改的可能性,增加了查询的效率。3.2 git 分支管理在进行 git 版本控制的时候,将大的微服务项目切成众多独立可运行的代码分支,无论在checkout的效率,还是分原创 2021-03-14 10:52:12 · 356 阅读 · 0 评论 -
微服务网关分发请求至子服务的两种方式
1. 场景在微服务体系中,网关作为分发请求的关键组件。如何根据请求的特征将请求分发给特定的服务?我总结了两种方式。2. 根据子域名划分服务模块#mermaid-svg-MLs857Smda7GuxhW .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-MLs857Smda7GuxhW .label text{原创 2021-02-13 10:02:55 · 3237 阅读 · 0 评论 -
Elasticsearch 修改Index的映射&数据迁移
众所周知,elasticsearch不能修改索引,所以我们修改Index的映射实际上是先获取到原来Index的映射,然后有针对性的修改,再创建新的索引,将原来的Index的数据迁移到新的索引。1. 获取product索引GET product/_mapping2.在原来基础上进行修改,然后创建新的索引PUT mall_product3. 数据迁移POST _reindex{ "source": { "index": "product" }, "dest": { .原创 2021-02-13 10:01:33 · 608 阅读 · 0 评论 -
Spring Cache整合springboot及其常用注解
1. springboot 整合 spring cache1.1 导入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-cache</artifactId> </dependency> &l原创 2021-02-01 09:58:37 · 380 阅读 · 0 评论 -
centos 安装RabbitMQ 3.8.9
为了方便自己在新环境中安装RabbitMQ,写下此篇文字。1. RabbitMQ和Erlang的版本依赖关系官方说明传送门2. 安装Java环境# 安装wget pluginyum install -y wget# 进入/usr/localcd /usr/local# 获取jdk 安装包wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; or.原创 2020-12-04 18:34:09 · 870 阅读 · 2 评论 -
spring cloud gateway CORS配置
方式一:配置文件官网说明传送门spring: cloud: gateway: globalcors: corsConfigurations: '[/**]': allowedOrigins: "https://docs.spring.io" allowedMethods: - GET方式二:配置类该CORS配置粒度较粗,谨慎使用。/** * @author Vir原创 2020-09-30 16:16:49 · 2118 阅读 · 0 评论 -
Maven POM packaging
POM文件中的packaging标签申明了该工程的打包类型当POM中没有什么packaging,默认为jar可选的值有pomjarmaven-pluginejbwarearrar官方说明链接传送门原创 2020-09-05 10:55:42 · 466 阅读 · 0 评论 -
Hybris在idea中debug配置方法
1、启动hybris服务的命令用hybrisserver.bat debug2、在idea中配置remote debug端口号默认不变选择所要监听的服务(如下图)点击小爬虫启动debug服务访问接口时,即可用debug调试程序了!原创 2020-08-24 13:39:02 · 441 阅读 · 0 评论 -
maven 项目中Java运行版本和编译版本的设置
在父pom中新增 <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>原创 2020-08-13 13:36:58 · 556 阅读 · 0 评论 -
hybris 携带项目启动步骤
https://blogs.sap.com/2017/04/04/hybris-commerce-suite-installation/原创 2020-08-03 15:45:46 · 554 阅读 · 1 评论 -
maven 开发配置
配置阿里云镜像仓库 <mirror> <id>alimaven</id> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <mirrorOf>central</mirrorOf>原创 2020-07-19 10:50:38 · 245 阅读 · 0 评论 -
面试-spring-springMVC
1、什么是SpringMVC?Spring MVC 是建立在Spring Framework之上且以Servelt API为基础的web框架。它在Spring体系中的模块名是spring-webmvc。原创 2020-07-17 15:54:27 · 136 阅读 · 0 评论 -
面试-Spring-IoC&AOP理论 IoC容器原理
IoCIoC - Inversion of Control官方文档IoC is also known as dependency injection(DI). It is a process whereby objects define their dependencies (that is, the other object they work with) only through constructor arguments, arguments to a factory method, or原创 2020-07-14 18:25:28 · 2635 阅读 · 0 评论 -
Springboot 2 通过注解保存当前用户信息
背景介绍在web应用中,获取当前访问用户是大多数接口所要处理的事情。如何优雅的获取当前用户信息,是许多人的兴趣。根据我的经历,认为通过注解来获取当前用户,是一个很好的方式,简便快捷,封装性高。开始实现背景就介绍到这里,直接上代码:UserInfo用户实体@Data@Builder@ToString@NoArgsConstructor@AllArgsConstructorpub...原创 2020-04-11 12:20:56 · 5661 阅读 · 0 评论 -
spring4 bean的作用域scope 创建及生命周期
spring4 bean的作用域scope 创建及生命周期Spring 的bean是构建Spring应用中很重要的一部分,了解Spring Bean的相关细节对于解读Spring框架很重要。1、Spring4 bean 作用域scope2、bean创建的三种方式3、ApplicationContext容器中的bean 生命周期4、BeanFactory容器中的bean 生命周期...原创 2018-03-25 13:39:31 · 4557 阅读 · 0 评论 -
Springboot 跨域配置
package com.cnasir.server.config;import org.springframework.context.annotation.Configuration;import org.springframework.web.servlet.config.annotation.CorsRegistry;import org.springframework.web.se...原创 2018-03-30 21:24:10 · 365 阅读 · 0 评论 -
Springboot 2.1.0.RELEASE Freemaker 获取项目根路径contextPath
1、问题描述在springboot项目中,由于项目路径的问题,会导致请求或者静态资源访问不到。目前已知两种避免的方式:a)、在项目中的任何请求都只是用一次/,即任何请求的格式都是"/",在ftl中静态资源和请求都用相对路径,即“”。b)、不给项目设置contextPath,任何请求都用绝对路径“/***”。以上两种方式都有局限性。2、解决方式在配置文件中配置freemaker的时候,请...原创 2018-11-23 10:50:32 · 2735 阅读 · 2 评论 -
freemaker 常见操作
1、截取字符串${abbreviate(orderItem.name, 30)}2、控制循坏次数[#--控制循环次数的变量--][#assign x = 0][#list flashSaleActivitie.skus as skuItem] [#assign x = x + 1] <li> <p>业务展示代码</p>...原创 2019-05-22 10:47:11 · 243 阅读 · 0 评论 -
idea 导入spring源码避坑指南
一号坑:从github上下载spring-framework源代码速度过慢,可以选择码云上的镜像库Spring-Framework。二号坑jdk的版本选择8应该是大多数人的选择,由于spring-framework是采用gradle来构建的,在导入源代码之前需要安装gradle,这里请选择gradle的版本为4.1,如果选择5,在import的时候会出现错误。gradle 下载地址:ht...原创 2019-08-01 15:32:32 · 3949 阅读 · 2 评论