发表于: 2022-06-20 20:03:36
1 559
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指定一组资源名。
收获:以上
明天计划:完成接下来的任务
评论