问题速查手册(Java Web)

问题速查手册

原来很多问题解决了就过了,现在打算为自己解决过,有一定价值,并且大家应该也会碰到的问题做个记录。为啥突然想做这个事,也是受这本书的激励
主要为后端问题,也有部分前端问题

记录自己超过30分钟才解决的问题,直截了当写出问题解决方案, 全部内容都是经过本人验证确实有效后才会记录在此,避免长篇大论
希望更多的人看到并快速解决,避免大家反复搜索并筛选无效内容的问题。

Hibernate Validator

1. 如何在非controller(service)层做验证

环境:
  • Spring 框架及MVC 4.x以上
  • Hibernate Validator 6.x以上
问题描述:

hibernate validator引入后,在controller层可以直接使用,但是在非controller层,比如service层是不会生效的。

解决示例:

最新最简单方法如下:

//需要在三个层级加入对应注解,缺一不可
@Service
@Validated         //service类层次加注解,注明此类需要验证
public class MyClass {

    @Validated({Group1.class})   //需要验证的方法加注解,支持可以分组
    public myMethod1(@Valid Foo foo) { ... }       //需要验证的方法入参加@Valid

    @Validated({Group2.class})
    public myMethod2(@Valid Foo foo) { ... }

    ...
}

来源:StackOverFlow

原因:

2. 如何使用Redis做分布式锁

3. Vue.js 2.0中 <video :poster="xxx"> poster的xxx变量动态变更不能生效问题

//coverUrl变量在改变时,video不会自动刷新封面
<video class="videoPreview"  :src="videoUrl" :poster="coverUrl" height="270" width="375" controls></video>


环境:

Vue.js 2.x
ElementUI 2.6.x
Chrome 51+

解决方法:
  1. video标签不能含有preload=“none”,会导致不加载poster
  2. 需要使用$nextTick强制vue刷新该组件
<video v-if="videoUrl" class="videoPreview"  :src="videoUrl" :poster="coverUrl" height="270" width="375" controls ></video>

......
//监视coverUrl变量,如果变更,则强制刷新video标签
    watch:{
      coverUrl:function(){
        //重新生成video标签,不然poster不会生效
        let videoTempUrl = this.videoUrl;
        this.videoUrl = '';
        this.$nextTick(() => {
          this.videoUrl = videoTempUrl;
        });
      }
    },
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值