Example usage for org.springframework.beans.factory.support GenericBeanDefinition setBeanClass

List of usage examples for org.springframework.beans.factory.support GenericBeanDefinition setBeanClass

Introduction

In this page you can find the example usage for org.springframework.beans.factory.support GenericBeanDefinition setBeanClass.

Prototype

public void setBeanClass(@Nullable Class<?> beanClass) 

Source Link

Document

Specify the class for this bean.

Usage

From source file:guru.qas.martini.annotation.StepsAnnotationProcessorTest.java

@Test(expectedExceptions = FatalBeanException.class)
public void testNonSingletonSteps() {
    ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("emptyContext.xml");
    ConfigurableListableBeanFactory factory = context.getBeanFactory();

    GenericBeanDefinition definition = new GenericBeanDefinition();
    definition.setBeanClass(DuplicateGivenBeanA.class);
    definition.setLazyInit(false);/*from  w w  w .  j  a va  2s.  co m*/
    definition.setScope("prototype");

    BeanDefinitionRegistry registry = BeanDefinitionRegistry.class.cast(factory);
    registry.registerBeanDefinition(DuplicateGivenBeanA.class.getName(), definition);
    process(context, new DuplicateGivenBeanA());
}

From source file:darks.orm.spring.MapperClassDefinitionScanner.java

private void processBeanDefinition(GenericBeanDefinition definition) {
    definition.getPropertyValues().add("sqlMapInterface", definition.getBeanClassName());
    definition.setBeanClass(SqlMapFactoryBean.class);
    definition.setAutowireMode(AbstractBeanDefinition.AUTOWIRE_BY_TYPE);
}

From source file:com.dianping.zebra.monitor.spring.DataSourceAutoMonitor.java

private BeanDefinition createMonitorableBeanDefinition(String beanName, BeanDefinition dataSourceDefinition) {
    if (MonitorableDataSource.class.getName().equals(dataSourceDefinition.getBeanClassName())
            || GroupDataSource.class.getName().equals(dataSourceDefinition.getBeanClassName())) {
        return dataSourceDefinition;
    }/*from w  w  w . ja v a 2s .  c  o m*/

    String newBeanName = String.format("%s-z%d", beanName, nameId++);

    listableBeanFactory.registerBeanDefinition(newBeanName, dataSourceDefinition);

    GenericBeanDefinition monitorableDataSourceDefinition = new GenericBeanDefinition();
    monitorableDataSourceDefinition.setBeanClass(MonitorableDataSource.class);
    monitorableDataSourceDefinition.getConstructorArgumentValues()
            .addGenericArgumentValue(new RuntimeBeanReference(newBeanName));
    return monitorableDataSourceDefinition;
}

From source file:architecture.ee.spring.context.impl.ApplicationHelperImpl.java

@SuppressWarnings("rawtypes")
protected void addComponent(String name, Class clazz) {
    GenericBeanDefinition bd = new GenericBeanDefinition();
    bd.setBeanClass(clazz);
    getBeanFactory().registerSingleton(name, bd);
}

From source file:org.codehaus.griffon.runtime.spring.GriffonApplicationContext.java

/**
 * Register a prototype bean with the underlying bean factory.
 * <p>For more advanced needs, register with the underlying BeanFactory directly.
 * @see #getDefaultListableBeanFactory//ww  w.j av  a2  s. co  m
 */
public void registerPrototype(String name, Class clazz) throws BeansException {
    GenericBeanDefinition bd = new GenericBeanDefinition();
    bd.setScope(GenericBeanDefinition.SCOPE_PROTOTYPE);
    bd.setBeanClass(clazz);
    getDefaultListableBeanFactory().registerBeanDefinition(name, bd);
}

From source file:org.mybatis.spring.annotation.EnableMapperScanningTest.java

private void setupSqlSessionFactory(String name) {
    GenericBeanDefinition definition = new GenericBeanDefinition();
    definition.setBeanClass(SqlSessionFactoryBean.class);
    definition.getPropertyValues().add("dataSource", new MockDataSource());
    applicationContext.registerBeanDefinition(name, definition);
}

From source file:org.codehaus.griffon.runtime.spring.GriffonApplicationContext.java

/**
 * Register a prototype bean with the underlying bean factory.
 * <p>For more advanced needs, register with the underlying BeanFactory directly.
 * @see #getDefaultListableBeanFactory//from  www  .  j  av a  2  s . c o m
 */
public void registerPrototype(String name, Class clazz, MutablePropertyValues pvs) throws BeansException {
    GenericBeanDefinition bd = new GenericBeanDefinition();
    bd.setScope(GenericBeanDefinition.SCOPE_PROTOTYPE);
    bd.setBeanClass(clazz);
    bd.setPropertyValues(pvs);
    getDefaultListableBeanFactory().registerBeanDefinition(name, bd);
}

From source file:org.mybatis.spring.annotation.EnableMapperScanningTest.java

@Test
public void testScanWithNameConflict() {
    GenericBeanDefinition definition = new GenericBeanDefinition();
    definition.setBeanClass(Object.class);
    applicationContext.registerBeanDefinition("mapperInterface", definition);

    applicationContext.register(AppConfigWithPackageScan.class);

    startContext();/* ww w  .ja v a  2s  . c om*/

    assertSame("scanner should not overwite existing bean definition",
            applicationContext.getBean("mapperInterface").getClass(), Object.class);
}

From source file:org.mybatis.spring.annotation.EnableMapperScanningTest.java

@Test
public void testScanWithExplicitSqlSessionTemplate() throws Exception {
    GenericBeanDefinition definition = new GenericBeanDefinition();
    definition.setBeanClass(SqlSessionTemplate.class);
    ConstructorArgumentValues constructorArgs = new ConstructorArgumentValues();
    constructorArgs.addGenericArgumentValue(new RuntimeBeanReference("sqlSessionFactory"));
    definition.setConstructorArgumentValues(constructorArgs);
    applicationContext.registerBeanDefinition("sqlSessionTemplate", definition);

    applicationContext.register(AppConfigWithSqlSessionTemplate.class);

    startContext();//from  ww  w  .java 2s. co m

    // all interfaces with methods should be loaded
    applicationContext.getBean("mapperInterface");
    applicationContext.getBean("mapperSubinterface");
    applicationContext.getBean("mapperChildInterface");
    applicationContext.getBean("annotatedMapper");

}

From source file:com.fitbur.jestify.junit.spring.IntegrationTestReifier.java

@Override
public Object reifyCut(CutDescriptor cutDescriptor, Object[] arguments) {
    return AccessController.doPrivileged((PrivilegedAction<Object>) () -> {
        try {/*from  w w w.ja  va2 s.  c o  m*/
            Cut cut = cutDescriptor.getCut();
            Field field = cutDescriptor.getField();
            Type fieldType = field.getGenericType();
            String fieldName = field.getName();

            field.setAccessible(true);

            Constructor<?> constructor = cutDescriptor.getConstructor();
            constructor.setAccessible(true);

            ResolvableType resolver = ResolvableType.forType(fieldType);

            Class rawType;

            if (resolver.hasGenerics()) {
                if (resolver.isAssignableFrom(Provider.class) || resolver.isAssignableFrom(Optional.class)) {
                    rawType = resolver.getRawClass();
                } else {
                    rawType = resolver.resolve();
                }
            } else {
                rawType = resolver.resolve();
            }

            Module module = testInstance.getClass().getDeclaredAnnotation(Module.class);

            GenericBeanDefinition bean = new GenericBeanDefinition();
            bean.setBeanClass(rawType);
            bean.setAutowireCandidate(false);
            bean.setScope(SCOPE_PROTOTYPE);
            bean.setPrimary(true);
            bean.setLazyInit(true);
            bean.setRole(RootBeanDefinition.ROLE_APPLICATION);
            bean.setAutowireMode(RootBeanDefinition.AUTOWIRE_NO);
            appContext.registerBeanDefinition(fieldName, bean);
            if (module != null) {
                appContext.register(module.value());
            }
            appContext.refresh();

            Object instance = appContext.getBean(fieldName, arguments);

            if (cut.value()) {
                instance = spy(instance);
            }

            field.set(testInstance, instance);

            return instance;
        } catch (SecurityException | IllegalAccessException | IllegalArgumentException e) {
            throw new RuntimeException(e);
        }
    });
}