当前位置: 首页>>代码示例>>Java>>正文


Java DefaultListableBeanFactory.registerBeanDefinition方法代码示例

本文整理汇总了Java中org.springframework.beans.factory.support.DefaultListableBeanFactory.registerBeanDefinition方法的典型用法代码示例。如果您正苦于以下问题:Java DefaultListableBeanFactory.registerBeanDefinition方法的具体用法?Java DefaultListableBeanFactory.registerBeanDefinition怎么用?Java DefaultListableBeanFactory.registerBeanDefinition使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在org.springframework.beans.factory.support.DefaultListableBeanFactory的用法示例。


在下文中一共展示了DefaultListableBeanFactory.registerBeanDefinition方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: instantiateComponent

import org.springframework.beans.factory.support.DefaultListableBeanFactory; //导入方法依赖的package包/类
public static <T> T instantiateComponent(DefaultListableBeanFactory beanFactory, Class<T> cls, Annotation annotation) {
    T extractor;

    try {
        extractor = beanFactory.getBean(cls);
    } catch (BeansException e) {
        try {
            extractor = (T) beanFactory.getBean(cls.getName());
        } catch (BeansException e1) {
            BeanDefinitionBuilder beanDefinition = BeanDefinitionBuilder.genericBeanDefinition(cls.getName());
            beanFactory.registerBeanDefinition(cls.getName(), beanDefinition.getBeanDefinition());
            extractor = (T) beanFactory.getBean(cls.getName());
        }
    }
    return extractor;
}
 
开发者ID:onepiecex,项目名称:mq-aliyun,代码行数:17,代码来源:ArgumentExtractors.java

示例2: should_do_nothing_with_existing_bean_in_parent_bean_factory_when_spy_creation_requested

import org.springframework.beans.factory.support.DefaultListableBeanFactory; //导入方法依赖的package包/类
@Test
public void should_do_nothing_with_existing_bean_in_parent_bean_factory_when_spy_creation_requested() {
	//given
	final DoubleDefinitionsRegistrationContext registrationContext = new DoubleDefinitionsRegistrationContext();
	final DefaultListableBeanFactory parentFactory = new DefaultListableBeanFactory();
	final DefaultListableBeanFactory beanFactory = new DefaultListableBeanFactory(parentFactory);
	final DoubleDefinition spyDefinition = DoubleDefinitionTestFactory.doubleDefinition(Service.class);
	final String definitionName = "not " + spyDefinition.getName();
	parentFactory.registerBeanDefinition(definitionName, beanDefinition(Service.class));

	//when
	new DoubleContextBuilder()
			.withSpy(spyDefinition)
			.withRegistrationContext(registrationContext)
			.doProcess(beanFactory);
	//then
	assertEquals(
			singleton(definitionName),
			allDefinitionNames(beanFactory));
	assertFalse(registrationContext.isBeanDefinitionRegisteredForDouble(spyDefinition));
}
 
开发者ID:pchudzik,项目名称:springmock,代码行数:22,代码来源:DoubleRegisteringProcessorTest.java

示例3: registerSchedulerTriggerBean

import org.springframework.beans.factory.support.DefaultListableBeanFactory; //导入方法依赖的package包/类
/**
 * 
 * @param acf
 * @param sch
 * @return
 */
private Trigger registerSchedulerTriggerBean(DefaultListableBeanFactory acf, AbstractJob sch) {
    //注册JobDetail
    String jobDetailBeanName = sch.getJobName() + "JobDetail";
    if (context.containsBean(jobDetailBeanName)) {
        throw new RuntimeException("duplicate jobName[" + sch.getJobName() + "] defined!!");
    }
    BeanDefinitionBuilder beanDefBuilder = BeanDefinitionBuilder
        .genericBeanDefinition(MethodInvokingJobDetailFactoryBean.class);
    beanDefBuilder.addPropertyValue("targetObject", sch);
    beanDefBuilder.addPropertyValue("targetMethod", "execute");
    beanDefBuilder.addPropertyValue("concurrent", false);
    acf.registerBeanDefinition(jobDetailBeanName, beanDefBuilder.getRawBeanDefinition());

    //注册Trigger
    String triggerBeanName = sch.getJobName() + "Trigger";
    beanDefBuilder = BeanDefinitionBuilder.genericBeanDefinition(CronTriggerFactoryBean.class);
    beanDefBuilder.addPropertyReference("jobDetail", jobDetailBeanName);
    beanDefBuilder.addPropertyValue("cronExpression", sch.getCronExpr());
    beanDefBuilder.addPropertyValue("group", groupName);
    acf.registerBeanDefinition(triggerBeanName, beanDefBuilder.getRawBeanDefinition());

    logger.info("register scheduler task [{}] ok!!", sch.getJobName());
    return (Trigger) context.getBean(triggerBeanName);

}
 
开发者ID:warlock-china,项目名称:azeroth,代码行数:32,代码来源:SchedulerFactoryBeanWrapper.java

示例4: makeMethodTrigger

import org.springframework.beans.factory.support.DefaultListableBeanFactory; //导入方法依赖的package包/类
public static BeanFactory makeMethodTrigger ( Object o, String method ) throws Exception {
    DefaultListableBeanFactory bf = new DefaultListableBeanFactory();
    RootBeanDefinition caller = new RootBeanDefinition();

    caller.setFactoryBeanName("obj");
    caller.setFactoryMethodName(method);
    Reflections.setFieldValue(caller.getMethodOverrides(), "overrides", new HashSet<>());
    bf.registerBeanDefinition("caller", caller);

    Reflections.getField(DefaultListableBeanFactory.class, "beanClassLoader").set(bf, null);
    Reflections.getField(DefaultListableBeanFactory.class, "alreadyCreated").set(bf, new HashSet<>());
    Reflections.getField(DefaultListableBeanFactory.class, "singletonsCurrentlyInCreation").set(bf, new HashSet<>());
    Reflections.getField(DefaultListableBeanFactory.class, "inCreationCheckExclusions").set(bf, new HashSet<>());
    Reflections.getField(DefaultListableBeanFactory.class, "logger").set(bf, new NoOpLog());
    Reflections.getField(DefaultListableBeanFactory.class, "prototypesCurrentlyInCreation").set(bf, new ThreadLocal<>());

    @SuppressWarnings ( "unchecked" )
    Map<String, Object> objs = (Map<String, Object>) Reflections.getFieldValue(bf, "singletonObjects");
    objs.put("obj", o);
    return bf;
}
 
开发者ID:mbechler,项目名称:marshalsec,代码行数:22,代码来源:SpringUtil.java

示例5: should_do_nothing_with_existing_bean_when_spy_creation_requested

import org.springframework.beans.factory.support.DefaultListableBeanFactory; //导入方法依赖的package包/类
@Test
public void should_do_nothing_with_existing_bean_when_spy_creation_requested() {
	//given
	final DoubleDefinitionsRegistrationContext registrationContext = new DoubleDefinitionsRegistrationContext();
	final DefaultListableBeanFactory beanFactory = new DefaultListableBeanFactory();
	final DoubleDefinition spyDefinition = DoubleDefinitionTestFactory.doubleDefinition(Service.class);
	final String definitionName = "not " + spyDefinition.getName();
	beanFactory.registerBeanDefinition(definitionName, beanDefinition(Service.class));

	//when
	new DoubleContextBuilder()
			.withSpy(spyDefinition)
			.withRegistrationContext(registrationContext)
			.doProcess(beanFactory);
	//then
	assertEquals(
			singleton(definitionName),
			allDefinitionNames(beanFactory));
	assertFalse(registrationContext.isBeanDefinitionRegisteredForDouble(spyDefinition));
}
 
开发者ID:pchudzik,项目名称:springmock,代码行数:21,代码来源:DoubleRegisteringProcessorTest.java

示例6: should_replace_bean_definition_with_mock_definition_when_destination_bean_exists_match_by_name

import org.springframework.beans.factory.support.DefaultListableBeanFactory; //导入方法依赖的package包/类
@Test
public void should_replace_bean_definition_with_mock_definition_when_destination_bean_exists_match_by_name() {
	//given
	final DoubleDefinition mockDefinition = DoubleDefinitionTestFactory.doubleDefinition(Service.class);
	final DefaultListableBeanFactory beanFactory = new DefaultListableBeanFactory();
	beanFactory.registerBeanDefinition(mockDefinition.getName(), beanDefinition(Service.class));

	//when
	new DoubleContextBuilder()
			.withMock(mockDefinition)
			.doProcess(beanFactory);

	//then
	assertEquals(
			singleton(mockDefinition.getName()),
			allDefinitionNames(beanFactory));
	assertMockWillBeCreatedByDoubleFactory(beanFactory.getMergedBeanDefinition(mockDefinition.getName()));
}
 
开发者ID:pchudzik,项目名称:springmock,代码行数:19,代码来源:DoubleRegisteringProcessorTest.java

示例7: DefaultListableBeanFactory

import org.springframework.beans.factory.support.DefaultListableBeanFactory; //导入方法依赖的package包/类
@Test
public void should_replace_bean_definition_with_mock_definition_when_destination_bean_exists_in_parent_bean_factory_match_by_name() {
	//given
	final DoubleDefinition mockDefinition = DoubleDefinitionTestFactory.doubleDefinition(Service.class);
	final DefaultListableBeanFactory parentFactory = new DefaultListableBeanFactory();
	final DefaultListableBeanFactory beanFactory = new DefaultListableBeanFactory(parentFactory);
	parentFactory.registerBeanDefinition(mockDefinition.getName(), beanDefinition(Service.class));

	//when
	new DoubleContextBuilder()
			.withMock(mockDefinition)
			.doProcess(beanFactory);

	//then
	assertEquals(
			singleton(mockDefinition.getName()),
			allDefinitionNames(beanFactory));
	assertMockWillBeCreatedByDoubleFactory(beanFactory.getMergedBeanDefinition(mockDefinition.getName()));
}
 
开发者ID:pchudzik,项目名称:springmock,代码行数:20,代码来源:DoubleRegisteringProcessorTest.java

示例8: should_register_mock_as_yet_another_bean_when_multiple_definition_exists

import org.springframework.beans.factory.support.DefaultListableBeanFactory; //导入方法依赖的package包/类
@Test
public void should_register_mock_as_yet_another_bean_when_multiple_definition_exists() {
	//given
	final DefaultListableBeanFactory parentFactory = new DefaultListableBeanFactory();
	final DefaultListableBeanFactory beanFactory = new DefaultListableBeanFactory(parentFactory);
	final DoubleDefinition mockDefinition = DoubleDefinitionTestFactory.doubleDefinition(Service.class);
	final String parentBeanDefinitionName = "parent not " + mockDefinition.getName();
	final String beanDefinitionName = "not " + mockDefinition.getName();
	parentFactory.registerBeanDefinition(parentBeanDefinitionName, beanDefinition(Service.class));
	beanFactory.registerBeanDefinition(beanDefinitionName, beanDefinition(Service.class));

	//when
	new DoubleContextBuilder()
			.withMock(mockDefinition)
			.doProcess(beanFactory);

	//then
	assertEquals(
			asSet(parentBeanDefinitionName, beanDefinitionName, mockDefinition.getName()),
			allDefinitionNames(beanFactory));
	assertMockWillBeCreatedByDoubleFactory(beanFactory.getMergedBeanDefinition(mockDefinition.getName()));
}
 
开发者ID:pchudzik,项目名称:springmock,代码行数:23,代码来源:DoubleRegisteringProcessorTest.java

示例9: load

import org.springframework.beans.factory.support.DefaultListableBeanFactory; //导入方法依赖的package包/类
private void load(ClassLoader loader, String name) {
    try {
        DefaultListableBeanFactory lbf = (DefaultListableBeanFactory) applicationContext.getAutowireCapableBeanFactory();
        BeanDefinition bd = BeanDefinitionReaderUtils.createBeanDefinition(null, name, loader);
        String dynamicBeanName = generator.uuid();
        lbf.registerBeanDefinition(dynamicBeanName, bd);
        Object bean = lbf.getBean(dynamicBeanName);
        String beanName = getBeanName(bean.getClass());
        Object oldBean = null;
        if (beanName != null) {
            oldBean = container.getBean(beanName);
            container.mapBeanName(beanName, dynamicBeanName);
        }
        inject(bean.getClass(), null, bean);
        inject(bean, oldBean);
    } catch (Exception e) {
        logger.warn(e, "重新载入[{}]时发生异常!", name);
    }
}
 
开发者ID:heisedebaise,项目名称:tephra,代码行数:20,代码来源:ClassReloaderImpl.java

示例10: testConstructorResourceInjectionWithMultipleCandidatesAsCollection

import org.springframework.beans.factory.support.DefaultListableBeanFactory; //导入方法依赖的package包/类
@Test
public void testConstructorResourceInjectionWithMultipleCandidatesAsCollection() {
	DefaultListableBeanFactory bf = new DefaultListableBeanFactory();
	AutowiredAnnotationBeanPostProcessor bpp = new AutowiredAnnotationBeanPostProcessor();
	bpp.setBeanFactory(bf);
	bf.addBeanPostProcessor(bpp);
	bf.registerBeanDefinition("annotatedBean",
			new RootBeanDefinition(ConstructorsCollectionResourceInjectionBean.class));
	TestBean tb = new TestBean();
	bf.registerSingleton("testBean", tb);
	NestedTestBean ntb1 = new NestedTestBean();
	bf.registerSingleton("nestedTestBean1", ntb1);
	NestedTestBean ntb2 = new NestedTestBean();
	bf.registerSingleton("nestedTestBean2", ntb2);

	ConstructorsCollectionResourceInjectionBean bean = (ConstructorsCollectionResourceInjectionBean) bf.getBean("annotatedBean");
	assertNull(bean.getTestBean3());
	assertSame(tb, bean.getTestBean4());
	assertEquals(2, bean.getNestedTestBeans().size());
	assertSame(ntb1, bean.getNestedTestBeans().get(0));
	assertSame(ntb2, bean.getNestedTestBeans().get(1));
	bf.destroySingletons();
}
 
开发者ID:langtianya,项目名称:spring4-understanding,代码行数:24,代码来源:InjectAnnotationBeanPostProcessorTests.java

示例11: testConfigureBeanWithAutowiring

import org.springframework.beans.factory.support.DefaultListableBeanFactory; //导入方法依赖的package包/类
@Test
public void testConfigureBeanWithAutowiring() {
	DefaultListableBeanFactory lbf = new DefaultListableBeanFactory();
	RootBeanDefinition bd = new RootBeanDefinition(TestBean.class);
	lbf.registerBeanDefinition("spouse", bd);
	MutablePropertyValues pvs = new MutablePropertyValues();
	pvs.add("age", "99");
	RootBeanDefinition tbd = new RootBeanDefinition(TestBean.class);
	tbd.setAutowireMode(RootBeanDefinition.AUTOWIRE_BY_NAME);
	lbf.registerBeanDefinition("test", tbd);
	TestBean tb = new TestBean();
	lbf.configureBean(tb, "test");
	assertSame(lbf, tb.getBeanFactory());
	TestBean spouse = (TestBean) lbf.getBean("spouse");
	assertEquals(spouse, tb.getSpouse());
}
 
开发者ID:langtianya,项目名称:spring4-understanding,代码行数:17,代码来源:DefaultListableBeanFactoryTests.java

示例12: testGetBeanByTypeInstanceFiltersOutNonAutowireCandidates

import org.springframework.beans.factory.support.DefaultListableBeanFactory; //导入方法依赖的package包/类
@Test
public void testGetBeanByTypeInstanceFiltersOutNonAutowireCandidates() {
	DefaultListableBeanFactory lbf = new DefaultListableBeanFactory();
	RootBeanDefinition bd1 = createConstructorDependencyBeanDefinition(99);
	RootBeanDefinition bd2 = createConstructorDependencyBeanDefinition(43);
	RootBeanDefinition na1 = createConstructorDependencyBeanDefinition(21);
	na1.setAutowireCandidate(false);

	lbf.registerBeanDefinition("bd1", bd1);
	lbf.registerBeanDefinition("na1", na1);
	ConstructorDependency actual = lbf.getBean(ConstructorDependency.class, 42); // na1 was filtered
	assertThat(actual.beanName, equalTo("bd1"));

	lbf.registerBeanDefinition("bd2", bd2);
	try {
		lbf.getBean(TestBean.class, 67);
		fail("Should have thrown NoSuchBeanDefinitionException");
	}
	catch (NoSuchBeanDefinitionException ex) {
		// expected
	}
}
 
开发者ID:langtianya,项目名称:spring4-understanding,代码行数:23,代码来源:DefaultListableBeanFactoryTests.java

示例13: testConstructorResourceInjectionWithMultipleCandidates

import org.springframework.beans.factory.support.DefaultListableBeanFactory; //导入方法依赖的package包/类
@Test
public void testConstructorResourceInjectionWithMultipleCandidates() {
	DefaultListableBeanFactory bf = new DefaultListableBeanFactory();
	AutowiredAnnotationBeanPostProcessor bpp = new AutowiredAnnotationBeanPostProcessor();
	bpp.setBeanFactory(bf);
	bf.addBeanPostProcessor(bpp);
	bf.registerBeanDefinition("annotatedBean", new RootBeanDefinition(ConstructorsResourceInjectionBean.class));
	TestBean tb = new TestBean();
	bf.registerSingleton("testBean", tb);
	NestedTestBean ntb1 = new NestedTestBean();
	bf.registerSingleton("nestedTestBean1", ntb1);
	NestedTestBean ntb2 = new NestedTestBean();
	bf.registerSingleton("nestedTestBean2", ntb2);

	ConstructorsResourceInjectionBean bean = (ConstructorsResourceInjectionBean) bf.getBean("annotatedBean");
	assertNull(bean.getTestBean3());
	assertSame(tb, bean.getTestBean4());
	assertEquals(2, bean.getNestedTestBeans().length);
	assertSame(ntb1, bean.getNestedTestBeans()[0]);
	assertSame(ntb2, bean.getNestedTestBeans()[1]);
	bf.destroySingletons();
}
 
开发者ID:langtianya,项目名称:spring4-understanding,代码行数:23,代码来源:AutowiredAnnotationBeanPostProcessorTests.java

示例14: byTypeAutowireWithPrimaryOverridingParentFactory

import org.springframework.beans.factory.support.DefaultListableBeanFactory; //导入方法依赖的package包/类
@Test
public void byTypeAutowireWithPrimaryOverridingParentFactory() throws Exception {
	CountingFactory.reset();
	DefaultListableBeanFactory parent = getBeanFactory("autowire-with-exclusion.xml");
	parent.preInstantiateSingletons();
	DefaultListableBeanFactory child = new DefaultListableBeanFactory(parent);
	RootBeanDefinition robDef = new RootBeanDefinition(TestBean.class);
	robDef.setAutowireMode(RootBeanDefinition.AUTOWIRE_BY_TYPE);
	robDef.getPropertyValues().add("spouse", new RuntimeBeanReference("sally"));
	child.registerBeanDefinition("rob2", robDef);
	RootBeanDefinition propsDef = new RootBeanDefinition(PropertiesFactoryBean.class);
	propsDef.getPropertyValues().add("properties", "name=props3");
	propsDef.setPrimary(true);
	child.registerBeanDefinition("props3", propsDef);
	TestBean rob = (TestBean) child.getBean("rob2");
	assertEquals("props3", rob.getSomeProperties().getProperty("name"));
	assertEquals(1, CountingFactory.getFactoryBeanInstanceCount());
}
 
开发者ID:langtianya,项目名称:spring4-understanding,代码行数:19,代码来源:AutowireWithExclusionTests.java

示例15: customPlaceholderPrefixAndSuffix

import org.springframework.beans.factory.support.DefaultListableBeanFactory; //导入方法依赖的package包/类
@Test
public void customPlaceholderPrefixAndSuffix() {
	PropertyPlaceholderConfigurer ppc = new PropertyPlaceholderConfigurer();
	ppc.setPlaceholderPrefix("@<");
	ppc.setPlaceholderSuffix(">");

	DefaultListableBeanFactory bf = new DefaultListableBeanFactory();
	bf.registerBeanDefinition("testBean",
			rootBeanDefinition(TestBean.class)
			.addPropertyValue("name", "@<key1>")
			.addPropertyValue("sex", "${key2}")
			.getBeanDefinition());

	System.setProperty("key1", "systemKey1Value");
	System.setProperty("key2", "systemKey2Value");
	ppc.postProcessBeanFactory(bf);
	System.clearProperty("key1");
	System.clearProperty("key2");

	assertThat(bf.getBean(TestBean.class).getName(), is("systemKey1Value"));
	assertThat(bf.getBean(TestBean.class).getSex(), is("${key2}"));
}
 
开发者ID:langtianya,项目名称:spring4-understanding,代码行数:23,代码来源:PropertyPlaceholderConfigurerTests.java


注:本文中的org.springframework.beans.factory.support.DefaultListableBeanFactory.registerBeanDefinition方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。