com.blade.ioc.bean.BeanDefine - java examples

Here are the examples of the java api com.blade.ioc.bean.BeanDefine taken from open source projects. By voting up you can indicate which examples are most useful and appropriate.

11 Examples 7

19 View Complete Implementation : SimpleIoc.java
Copyright Apache License 2.0
Author : lets-blade
/**
 * Add user-defined objects
 */
private void put(String name, BeanDefine beanDefine) {
    if (pool.put(name, beanDefine) != null) {
        log.warn("Duplicated Bean: {}", name);
    }
}

19 View Complete Implementation : SimpleIoc.java
Copyright Apache License 2.0
Author : lets-blade
/**
 * Add user-defined objects
 */
@Override
public void addBean(String name, Object bean) {
    BeanDefine beanDefine = new BeanDefine(bean);
    put(name, beanDefine);
    // add interface、put to pool
    Clreplaced<?>[] interfaces = beanDefine.getType().getInterfaces();
    if (interfaces.length > 0) {
        for (Clreplaced<?> interfaceClazz : interfaces) {
            this.put(interfaceClazz.getName(), beanDefine);
        }
    }
}

19 View Complete Implementation : SimpleIoc.java
Copyright Apache License 2.0
Author : lets-blade
/**
 * Update BeanDefine
 */
@Override
public void setBean(Clreplaced<?> type, Object proxyBean) {
    BeanDefine beanDefine = pool.get(type.getName());
    if (beanDefine != null) {
        beanDefine.setBean(proxyBean);
    } else {
        beanDefine = new BeanDefine(proxyBean, type);
    }
    pool.put(type.getName(), beanDefine);
}

19 View Complete Implementation : SimpleIoc.java
Copyright Apache License 2.0
Author : lets-blade
@Override
public Object getBean(String name) {
    BeanDefine beanDefine = pool.get(name);
    if (beanDefine == null) {
        return null;
    }
    return beanDefine.getBean();
}

19 View Complete Implementation : SimpleIoc.java
Copyright Apache License 2.0
Author : lets-blade
/**
 * Register @Bean marked objects
 */
private Object put(String name, Clreplaced<?> beanClreplaced, boolean isSingleton) {
    BeanDefine beanDefine = this.createBeanDefine(beanClreplaced, isSingleton);
    if (pool.put(name, beanDefine) != null) {
        log.warn("Duplicated Bean: {}", name);
    }
    // add interface、put to pool
    Clreplaced<?>[] interfaces = beanClreplaced.getInterfaces();
    if (interfaces.length > 0) {
        for (Clreplaced<?> interfaceClazz : interfaces) {
            if (null != this.getBean(interfaceClazz)) {
                break;
            }
            this.put(interfaceClazz.getName(), beanDefine);
        }
    }
    return Objects.requireNonNull(beanDefine).getBean();
}

19 View Complete Implementation : BeanDefineTest.java
Copyright Apache License 2.0
Author : lets-blade
@Test
public void testBeanDefine2() {
    BeanDefine beanDefine = new BeanDefine(new BladeBeanDefineType(), BladeBeanDefineType.clreplaced);
    replacedertEquals(BladeBeanDefineType.clreplaced, beanDefine.getType());
    beanDefine = new BeanDefine(new BladeBeanDefineType(), BladeBeanDefineType.clreplaced, true);
    replacedertEquals(BladeBeanDefineType.clreplaced, beanDefine.getType());
    replacedertEquals(true, beanDefine.isSingleton());
}

18 View Complete Implementation : SimpleIoc.java
Copyright Apache License 2.0
Author : lets-blade
@Override
public Object createBean(Clreplaced<?> type) {
    BeanDefine beanDefine = createBeanDefine(type, true);
    IocKit.initInjection(this, Objects.requireNonNull(beanDefine));
    IocKit.injectionValue(WebContext.blade().environment(), beanDefine);
    return beanDefine.getBean();
}

18 View Complete Implementation : BeanDefineTest.java
Copyright Apache License 2.0
Author : lets-blade
@Test
public void testBeanDefine() {
    BeanDefine beanDefine = new BeanDefine(new BladeBeanDefineType());
    Clreplaced<?> type = beanDefine.getType();
    replacedertEquals(BladeBeanDefineType.clreplaced, type);
    Object bean = beanDefine.getBean();
    replacedertNotNull(bean);
    replacedertEquals(true, beanDefine.isSingleton());
    beanDefine.setSingleton(true);
    beanDefine.setType(BladeBeanDefineType.clreplaced);
    beanDefine.setBean(new BladeBeanDefineType());
    replacedertEquals(BladeBeanDefineType.clreplaced, type);
    replacedertNotNull(bean);
    replacedertEquals(true, beanDefine.isSingleton());
}

17 View Complete Implementation : IocKit.java
Copyright Apache License 2.0
Author : lets-blade
public static void injection(Ioc ioc, BeanDefine beanDefine) {
    ClreplacedDefine clreplacedDefine = ClreplacedDefine.create(beanDefine.getType());
    List<FieldInjector> fieldInjectors = getInjectFields(ioc, clreplacedDefine);
    Object bean = beanDefine.getBean();
    fieldInjectors.forEach(fieldInjector -> {
        Object fieldInstance = ReflectKit.newInstance(fieldInjector.getType());
        if (fieldInjector.hasInjectFields()) {
            injection(ioc, new BeanDefine(fieldInstance));
        }
        fieldInjector.injection(bean, fieldInstance);
    });
}

16 View Complete Implementation : IocKit.java
Copyright Apache License 2.0
Author : lets-blade
public static void injectionValue(Environment environment, BeanDefine beanDefine) {
    ClreplacedDefine clreplacedDefine = ClreplacedDefine.create(beanDefine.getType());
    List<ValueInjector> valueFields = getValueInjectFields(environment, clreplacedDefine);
    Object bean = beanDefine.getBean();
    valueFields.forEach(fieldInjector -> fieldInjector.injection(bean));
}

15 View Complete Implementation : IocKit.java
Copyright Apache License 2.0
Author : lets-blade
public static void initInjection(Ioc ioc, BeanDefine beanDefine) {
    ClreplacedDefine clreplacedDefine = ClreplacedDefine.create(beanDefine.getType());
    List<FieldInjector> fieldInjectors = getInjectFields(ioc, clreplacedDefine);
    Object bean = beanDefine.getBean();
    AtomicBoolean hasPrototypeField = new AtomicBoolean(false);
    fieldInjectors.forEach(fieldInjector -> {
        if (fieldInjector.isSingleton()) {
            fieldInjector.injection(bean);
        } else {
            hasPrototypeField.set(true);
        }
    });
    beanDefine.setFieldHasPrototype(hasPrototypeField.get());
}