这是最近一个小伙找上来问的问题, 我初一看还没看出来啥猫腻,后面认真一想,决定也写下来记录下,给其他初学者也知道下。
原先思路错误代码:
这个小伙想利用 @Value 注解, 给这个属性 赋值,default这个标签在配置文件不存在,所以触发了 : 号 后面的 默认 true 赋值。
思路确实可以,但是结果不如意。

他是怎么使用的  :
通过new出来 ,想得到一个默认值, 但是没有生效:
  

为什么呢?
首先我们来先看看 @Value 的玩法 :
 首先 是 要让使用@Value的这个类,变成spring的bean
所以这时候 用了 @Component, 非常对
 
然后呢 ,就是不能是关键字static修饰 的 (一旦修饰就不可变值了)
那么这么看来, 为啥小伙没有成功?
可以看到,原因很简单,因为这个@Value 是在spring在bean初始化的时候才触发, 代码里面通过new的方式,那肯定是不能成功的。
所以这样使用的话,需要 通过注入bean的方式才能 触发@Value的默认值 :
  

结果:
  

那么假如我们就是想通过 new的 方式,也能有默认值呢?
那也简单,其实也就是常用的几种方式,简单列一下:
  
① 直接赋默认值

② 构造方法触发赋默认值

好了该篇就到这
