菜鸡提问, springboot 的 service 单例模式下,全局变量使用 static 修饰与不适用 static 修饰,在效果上有区别吗 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
EminemW
V2EX    问与答

菜鸡提问, springboot 的 service 单例模式下,全局变量使用 static 修饰与不适用 static 修饰,在效果上有区别吗

  •  
  •   EminemW 2020-04-02 15:27:22 +08:00 3475 次点击
    这是一个创建于 2032 天前的主题,其中的信息可能已经有所发展或是发生改变。

    问题应该写的很清楚了把,我一般是用 static 修饰的,准确的做法是修饰还是不修饰呢。

    12 条回复    2020-04-04 23:51:53 +08:00
    kookio
        1
    kookio  
       2020-04-02 17:43:39 +08:00
    没懂说的啥效果,static 修饰直接通过类名就能调用,类加载时就会被初始化,否则只能通过 new 的对象调用,和单例有啥关系
    xhinliang
        2
    xhinliang  
       2020-04-02 17:49:19 +08:00
    看个人喜好。。。
    gemini767
        3
    gemini767  
       2020-04-02 17:53:23 +08:00
    不要乱写代码。。。。
    首先 static 的存放不一致,其次加载方式不一致,乱写只会给自己或者他人埋坑
    wysnylc
        4
    wysnylc  
       2020-04-02 18:13:33 +08:00
    那有什么岁月静好,只不过有人在替你负重前
    EminemW
        5
    EminemW  
    OP
       2020-04-02 18:16:28 +08:00
    @kookio 我的意思是 比如在这个 Service 里面有一个全局变量 /常量,假设它名为 EXPIRE,这个 EXPIRE 会被 Service 里面的几个方法使用,(外部不需要调用这个 EXPIRE ),那它用不用 static 修饰都不影响使用效果吧。
    EminemW
        6
    EminemW  
    OP
       2020-04-02 18:20:27 +08:00
    @gemini767 SpringBoot 中的 Service 默认是单例的吧,在这种情况下,如果我有个类缓存 LoadingCache,那它用 static 修饰跟不用 static 修饰的效果是一样的吧。我一般是会用 static 修饰的,只是不知道哪个更好
    EminemW
        7
    EminemW  
    OP
       2020-04-02 18:31:36 +08:00
    @xhinliang 我一般都是加上 static 的。。
    cccy0
        8
    cccy0  
       2020-04-02 18:53:31 +08:00
    常量还是加上 static 比较好, 如果在别的类中使用这个常量, 就不用注入这个 service 了
    gemini767
        9
    gemini767  
       2020-04-03 09:55:06 +08:00
    @EminemW loadingCache 没必要是全局变量,每一个 service 的 guava 肯定有自己业务场景,没必要去做到全局使用吧,我理解的全局变量一般是配置参数,环境变量之类的,减少业务参数全局飞的现象
    kookio
        10
    kookio  
       2020-04-04 23:08:56 +08:00 via iPhone
    @EminemW 光讲使用效果没区别,不加 static 是属于对象,加 static 属于类,两者在内存中存放的位置不一样,一般如果只是对象自己使用就不用加了,要被外部类使用就加上,还有严格来说 Java 没有全局变量这个说法,叫成员变量和静态变量。
    EminemW
        11
    EminemW  
    OP
       2020-04-04 23:49:10 +08:00 via iPhone
    @kookio 感谢,这样讲我就懂了
    EminemW
        12
    EminemW  
    OP
       2020-04-04 23:51:53 +08:00 via iPhone
    @kookio 这样看来我原来大部分加 static 的变量,可以不用加了
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     867 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 62ms UTC 22:44 PVG 06:44 LAX 15:44 JFK 18:44
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86