发表于: 2022-06-20 20:03:36

1 558




CRUD的接口文:、

增添接口:

------------------------------------------------------------------------------------------------------------------------------------------------

查询接口:


------------------------------------------------------------------------------------------------------------------------------------------------

修改接口:

------------------------------------------------------------------------------------------------------------------------------------------------

删除接口:




---------------------------------------------------------------------------------------------------------------------------------------------------


输入示例:



返回示例:




MessageSource用于解析消息,并支持消息的参数化和国际化。 

Spring 包含两个内置的MessageSource实现:ResourceBundleMessageSource和ReloadableResourceBundleMessageSource。


后者能够重新加载消息定义,而无需重新启动虚拟机。

ApplicationContext接口扩展了MessageSource接口,因而提供了消息处理的功能(i18n或者国际化)


让我们快速浏览一下它所定义的方法:

String getMessage(String code, Object[] args, String default, Locale loc):用来从MessageSource获取消息的基本方法。


如果在指定的locale中没有找到消息,则使用默认的消息。args中的参数将使用标准类库中的MessageFormat来作消息中替换值。


String getMessage(String code, Object[] args, Locale loc):本质上和上一个方法相同,其区别在:没有指定默认值,如果没找到消息,

会抛出一个NoSuchMessageException异常。


String getMessage(MessageSourceResolvable resolvable, Locale locale):

上面方法中所使用的属性都封装到一个MessageSourceResolvable实现中,

而本方法可以指定MessageSourceResolvable实现。


当一个ApplicationContext被加载时,它会自动在context中查找已定义为MessageSource类型的bean。此bean的名称须为messageSource。

如果找到,那么所有对上述方法的调用将被委托给该bean。否则ApplicationContext会在其父类中查找是否含有同名的bean。


如果有,就把它作为MessageSource。如果它最终没有找到任何的消息源,

一个空的StaticMessageSource将会被实例化,使它能够接受上述方法的调用。


Spring目前提供了两个MessageSource的实现:ResourceBundleMessageSource和StaticMessageSource。

它们都继承NestingMessageSource以便能够处理嵌套的消息。StaticMessageSource很少被使用,但能以编程的方式向消息源添加消息。


ResourceBundleMessageSource会用得更多一些

Spring定义了访问国际化信息的MessageSource接口,并提供了几个易用的实现类。首先来了解一下该接口的几个重要方法:

 String getMessage(String code, Object[] args, String defaultMessage, Locale locale) 

code表示国际化资源中的属性名;

args用于传递格式化串占位符所用的运行期参数;当在资源找不到对应属性名时,返回defaultMessage参数所指定的默认信息;


locale表示本地化对象;

String getMessage(String code, Object[] args, Locale locale) throws NoSuchMessageException

与上面的方法类似,只不过在找不到资源中对应的属性名时,直接抛出NoSuchMessageException异常;


String getMessage(MessageSourceResolvable resolvable, Locale locale) throws NoSuchMessageException

MessageSourceResolvable 将属性名、参数数组以及默认信息封装起来,它的功能和第一个接口方法相同

HierarchicalMessageSource接口添加了两个方法,建立父子层级的MessageSource结构,类似于前面我们所介绍的HierarchicalBeanFactory。


该接口的setParentMessageSource (MessageSource parent)方法用于设置父MessageSource,

而getParentMessageSource()方法用于返回父MessageSource。


HierarchicalMessageSource接口最重要的两个实现类是ResourceBundleMessageSource和ReloadableResourceBundleMessageSource。

它们基于Java的ResourceBundle基础类实现,允许仅通过资源名加载国际化资源。


ReloadableResourceBundleMessageSource提供了定时刷新功能,允许在不重启系统的情况下,更新资源的信息。

StaticMessageSource主要用于程序测试,它允许通过编程的方式提供国际化信息。


DelegatingMessageSource是为方便操作父MessageSource而提供的代理类。

ResourceBundleMessageSource该实现类允许用户通过beanName指定一个资源名(包括类路径的全限定资源名),

或通过beanNames指定一组资源名。





收获:以上




明天计划:完成接下来的任务




返回列表 返回列表
评论

    分享到