All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.test4j.module.spring.strategy.Test4JBeanFactory Maven / Gradle / Ivy

package org.test4j.module.spring.strategy;

import javax.sql.DataSource;

import org.springframework.beans.BeansException;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.support.DefaultListableBeanFactory;
import org.test4j.module.database.environment.DBEnvironmentFactory;
import org.test4j.tools.commons.ConfigHelper;

@SuppressWarnings("rawtypes")
public class Test4JBeanFactory extends DefaultListableBeanFactory {

    public Test4JBeanFactory(final BeanFactory parentBeanFactory) {
        super(parentBeanFactory);
    }

    @Override
    public Object getBean(final String name, final Class requiredType, final Object[] args) throws BeansException {
        Object bean = getMyBean(name, requiredType, args);
        return bean;
    }

    /**
     * 返回容器中的spring对象
     * 
     * @param name
     * @return
     */
    public Object getSpringBean(final String name) {
        Object bean = this.getBean(name, null, null);
        return bean;
    }

    /**
     * 返回依赖项的代理对象(对象的调用转向spring容器中的spring bean)
*
* {@inheritDoc} * * @param name * @return */ @Override public Object getBean(final String name) { return this.getProxyBean(name); } /** * 返回依赖项的代理对象(对象的调用转向spring容器中的spring bean) * * @param name * @return */ public Object getProxyBean(final String name) { return this.getBean(name, null, null); } private Object getMyBean(final String name, final Class requiredType, final Object[] args) throws BeansException { if (ConfigHelper.isSpringDataSourceName(name)) { DataSource dataSource = DBEnvironmentFactory.getDefaultDBEnvironment() .getDataSourceAndActivateTransactionIfNeeded(); return dataSource; } else { Object bean = super.getBean(name, requiredType, args); return bean; } } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy