本文整理汇总了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;
}
示例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));
}
示例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);
}
示例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;
}
示例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));
}
示例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()));
}
示例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()));
}
示例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()));
}
示例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);
}
}
示例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());
}
示例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
}
}
示例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());
}
示例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}"));
}