• 霍霍
    2020-10-31
    小马哥,想问一下,springboot做的国际化,和前端使用js做的国际化,有什么区别,哪种方式更值得推荐?

    作者回复: Spring Boot 国际化是服务端的,和前端不太一样,服务端国际化比较稳定,而 JS 的方式依赖于网络

    
    1
  • Mr_KID1018
    2020-08-06
    小马哥好,有个问题想问下,现在spring都开始用gradle了,视频里为什么还是用Maven呢

    作者回复: 不会,哈哈~

    
    1
  • Tomy
    2022-08-20 来自广东
    MessageFormat这个文件中在第258的1,273 file(s).后面呼出API文档是如何做到的

    作者回复: IDEA MacOS 快捷键 F1

    
    
  • J.Smile
    2020-11-26
    哈哈,突然想到,这个国际化功能可以做翻译吗?貌似现在比较牛的翻译都是机器学习做的。

    作者回复: 哈哈,做不到啊

    
    
  • 漫不经心的猫
    2020-07-04
    小马哥 ,有个疑问 ,在重置 Locale 后必须再调用 applyPattern 重置 pattern,即时 pattern 的内容并没有变,否则重置的 Locale 没有生效,这是因为什么原因呢? int planet = 7; String event = "a disturbance in the Force"; String pattern = "At {1,time,long} on {1,date,full}, there was {2} on planet {0,number,integer}."; MessageFormat format = new MessageFormat(pattern); String result = format.format(new Object[]{planet, new Date(), event}); System.out.println(result); // 重置 Locale format.setLocale(Locale.ENGLISH); // 需要重置 pattern ? format.applyPattern(pattern); result = format.format(new Object[]{planet, new Date(), event}); System.out.println(result);
    展开

    作者回复: 因为 Pattern 是 MessageFormat 的内部状态,所以重置后,才能变化。

    共 3 条评论
    
  • Geek_ebda96
    2020-05-02
    小马哥,想请教一个问题,关于继承了applicationContextAware接口的bean和一般的bean的初始化顺序的问题,跟踪了一下spring的源码,发现spring在初始化bean的时候是根据bean所在的包的路径的名称,扫描处其中的class来进行加载类,然后实例化,顺序是按照java类对应class的路径和和名称降序来加载的,比如com.test.spring下的SpringUtils类,和com.test.spring.notice.TestBean,会先加载SpringUtils,然后在TestBean里面调用SpringUtils的getBean方法就没问题,如果换成com.test.spring,uotice.TestBean,会先加载TestBean,这里调用SpringUtils的getBean方法会报空指针,这个理解没问题吧?如果没有问题,那这个加载顺序我们可以手工干预吗,通过配置或代码的方式,保证继承来ApplicationContextAware接口的类的bean都被先初始化,然后保证其他用到些类的getBean时不会出错呢? 示例代码如下 @Component public class SpringUtils implements ApplicationContextAware { private static ApplicationContext applicationContext; @Override public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { if(SpringUtils.applicationContext == null){ SpringUtils.applicationContext = applicationContext; } } public static <T> T getBean(String name, Class<T> tClass){ return applicationContext.getBean(name, tClass); } } @Component public class TestBean { private Object dependencyBean = SpringUtils.getBean("testBO", TestBo.class); }
    展开

    作者回复: 确实如你所言,ApplicationContext#getBean 或 BeanFactory#getBean 可以达到手工干预的效果,简言之,就是提早初始化 Bean。

    共 3 条评论
    