- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Spring Bean封装机制 ⑷ init-method 初始化方法,此方法将在BeanFactory创建JavaBean实例之后,在向应用层返回引用之前执行。一般用于一些资源的初始化工作。 ⑸ destroy-method 销毁方法。此方法将在BeanFactory销毁的时候执行,一般用于资源释放。 ⑹ depends-on Bean依赖关系。一般情况下无需设定。Spring会根据情况组织各个依赖关系的构建工作(这里示例中的depends-on属性非必须)。只有某些特殊情况下,如JavaBean中的某些静态变量需要进行初始化(这是一种BadSmell,应该在设计上应该避免)。通过depends-on指定其依赖关系可保证在此Bean加载之前,首先对depends-on所指定的资源进行加载。 Spring Bean封装机制 ⑺ value 通过value/节点可指定属性值。BeanFactory将自动根据Java Bean对应的属性类型加以匹配。 下面的”desc”属性提供了一个null值的设定示例。注意value/value代表一个空字符串,如果需要将属性值设定为null,必须使用null/节点。 ⑻ ref 指定了属性对BeanFactory中其他Bean的引用关系。示例 中,TheAction的dataSource属性引用了id为cataSource的Bean。BeanFactory将在运行期创建dataSource bean实例,并将其引用传入TheAction Bean的dataSource属性。 Spring Bean封装机制 下面的代码演示了如何通过BeanFactory获取Bean实例: InputStream is = new FileInputStream(bean.xml); XmlBeanFactory factory = new XmlBeanFactory(is); Action action = (Action) factory.getBean(TheAction); 此时我们获得的Action实例,由BeanFactory进行加 载,并根据配置文件进行了初始化和属性设定。 联合上面关于BeanWrapper的内容,我们可以看到,BeanWrapper实现了针对单个Bean的属性设定操作。而BeanFactory则是针对多个Bean的管理容器,根据给定的配置文件,BeanFactory从中读取类名、属性名/值,然后通过Reflection机制进行Bean加载和属性设定。 Spring Bean封装机制 ApplicationContext BeanFactory提供了针对Java Bean的管理功能,而ApplicationContext提供了一个更为框架化的实现(从上面的示例中可以看出,BeanFactory的使用方式更加类似一个API,而非Framework style)。 ApplicationContext覆盖了BeanFactory的所有功能,并提供了更多的特性。此外,ApplicationContext为与现有应用框架相整合,提供了更为开放式的实现(如对于Web应用,我们可以在web.xml中对ApplicationContext进行配置)。相对BeanFactory而言,ApplicationContext提供了以下扩展功能: Spring Bean封装机制 ApplicationContext 1. 国际化支持 我们可以在Beans.xml文件中,对程序中的语言信息(如提示信息)进行定义,将程序中的提示信息抽取到配置文件中加以定义,为我们进行应用的各语言版本转换提供了极大的灵活性。 2. 资源访问 支持对文件和URL的访问。 3. 事件传播 事件传播特性为系统中状态改变时的检测提供了良好支持 4. 多实例加载 可以在同一个应用中加载多个Context实例。 Spring Bean封装机制 ApplicationContext 1) 国际化支持 国际化支持在实际开发中可能是最常用的特性。对于一个需要支持不同语言环境的应用而言, 我们所采取的最常用的策略一般是通过一个独立的资源文件(如一个properties文件)完成所有语言信息(如界面上的提示信息)的配置,Spring对这种传统的方式进行了封装,并提供了更加强大的功能,如信息的自动装配以及热部署功能(配置文件修改后自动读取,而无需重新启动应用程序),下面是一个典型的示例: Spring Bean封装机制 beans descriptionSpring Quick Start/description bean id=messageSource class=org.springfr
文档评论(0)