List of usage examples for org.springframework.beans.factory.support DefaultListableBeanFactory setBeanExpressionResolver
@Override public void setBeanExpressionResolver(@Nullable BeanExpressionResolver resolver)
From source file:org.kuali.rice.krad.datadictionary.DataDictionary.java
/** * Sets up the bean post processor and conversion service * * @param beans - The bean factory for the the dictionary beans *//* www.j a v a 2 s .com*/ public static void setupProcessor(DefaultListableBeanFactory beans) { try { // UIF post processor that sets component ids BeanPostProcessor idPostProcessor = ComponentBeanPostProcessor.class.newInstance(); beans.addBeanPostProcessor(idPostProcessor); beans.setBeanExpressionResolver(new StandardBeanExpressionResolver() { @Override protected void customizeEvaluationContext(StandardEvaluationContext evalContext) { try { evalContext.registerFunction("getService", ExpressionFunctions.class .getDeclaredMethod("getService", new Class[] { String.class })); } catch (NoSuchMethodException me) { LOG.error("Unable to register custom expression to data dictionary bean factory", me); } } }); // special converters for shorthand map and list property syntax GenericConversionService conversionService = new GenericConversionService(); conversionService.addConverter(new StringMapConverter()); conversionService.addConverter(new StringListConverter()); beans.setConversionService(conversionService); } catch (Exception e1) { throw new DataDictionaryException( "Cannot create component decorator post processor: " + e1.getMessage(), e1); } }
From source file:org.springframework.beans.factory.DefaultListableBeanFactoryTests.java
@Test public void testExpressionInStringArray() { DefaultListableBeanFactory bf = new DefaultListableBeanFactory(); BeanExpressionResolver beanExpressionResolver = mock(BeanExpressionResolver.class); when(beanExpressionResolver.evaluate(eq("#{foo}"), ArgumentMatchers.any(BeanExpressionContext.class))) .thenReturn("classpath:/org/springframework/beans/factory/xml/util.properties"); bf.setBeanExpressionResolver(beanExpressionResolver); RootBeanDefinition rbd = new RootBeanDefinition(PropertiesFactoryBean.class); MutablePropertyValues pvs = new MutablePropertyValues(); pvs.add("locations", new String[] { "#{foo}" }); rbd.setPropertyValues(pvs);//from ww w .ja va 2 s .co m bf.registerBeanDefinition("myProperties", rbd); Properties properties = (Properties) bf.getBean("myProperties"); assertEquals("bar", properties.getProperty("foo")); }