疯狂

STANDING ON THE SHOULDERS OF GIANTS
posts - 481, comments - 486, trackbacks - 0, articles - 1
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

spring :硬编码注入bean实例

Posted on 2012-11-16 17:12 疯狂 阅读(4093) 评论(0)  编辑  收藏 所属分类: spring

本实例通过手动编码注册spring国际化处理的bean(ResourceBundleMessageSource):
在通过xml文件来注册国际化处理bean时的配置:

<beans>  
   
<bean id="messageSource"  class="org.springframework.context.support.ResourceBundleMessageSource">       
      
<property name="basename" value="messages"/>  
      
<property name="useCodeAsDefaultMessage" value="true"/>  
   
</bean>  
</beans>  


现在为减少配置文件进行手动编码注入:具体如下

 

public class TestRegisterBean {

 
public static void main(String[] args) {

  ClassPathXmlApplicationContext applicationContext 
= new ClassPathXmlApplicationContext(
    
"applicationContext.xml");//在web环境下也可通过如下如方式获取
//
WebApplicationContextUtils.getRequiredWebApplicationContext(servletContextEvent
      .getServletContext());
  
  DefaultListableBeanFactory beanFactory 
= (DefaultListableBeanFactory)                 

applicationContext.getBeanFactory();
  GenericBeanDefinition messageSourceDefinition 
= new GenericBeanDefinition();
 
  
//参数参考上面配置文件里面
  Map<String , String> original = new HashMap<String, String>();
  original.put(
"basenames""messages");
  original.put(
"useCodeAsDefaultMessage""true");
  messageSourceDefinition.setBeanClass(ResourceBundleMessageSource.
class);
  messageSourceDefinition.setPropertyValues(
new MutablePropertyValues(original));
  
//注册
  beanFactory.registerBeanDefinition("ResourceBundleMessageSource",
    messageSourceDefinition);
  
//获取
  ResourceBundleMessageSource messageSource = (ResourceBundleMessageSource) applicationContext
    .getBean(
"ResourceBundleMessageSource");
                
//测试
  System.out.println(messageSource.getMessage("test"nullnull));
 }


}


测试本实例需在classpath下面创建messages_zh_CN.properties 并添加test。


只有注册用户登录后才能发表评论。


网站导航: