Example usage for org.springframework.beans.factory.support DefaultListableBeanFactory getBeanDefinitionNames

List of usage examples for org.springframework.beans.factory.support DefaultListableBeanFactory getBeanDefinitionNames

Introduction

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

Prototype

@Override
    public String[] getBeanDefinitionNames() 

Source Link

Usage

From source file:com.sharksharding.resources.register.bean.RegisterDataSource.java

/**
 * bean/*from  w w  w.  ja  v a  2 s.  c om*/
 * 
 * @author gaoxianglong
 * 
 * @param nodePathValue
 *            zookeepervalue
 * 
 * @param resourceType
 *            
 * 
 * @return void
 */
public static void register(String nodePathValue, String resourceType) {
    if (null == aContext)
        return;
    final String tmpdir = TmpManager.createTmp();
    logger.debug("tmpdir-->" + tmpdir);
    try (BufferedWriter out = new BufferedWriter(new FileWriter(tmpdir))) {
        if (null != nodePathValue) {
            out.write(nodePathValue);
            out.flush();
            FileSystemResource resource = new FileSystemResource(tmpdir);
            ConfigurableApplicationContext cfgContext = (ConfigurableApplicationContext) aContext;
            DefaultListableBeanFactory beanfactory = (DefaultListableBeanFactory) cfgContext.getBeanFactory();
            /*
             * ?????ioc?,???bean,
             * loadBeanDefinitions()
             */
            new XmlBeanDefinitionReader(beanfactory).loadBeanDefinitions(resource);
            final String defaultBeanName = "jdbcTemplate";
            String[] beanNames = beanfactory.getBeanDefinitionNames();
            for (String beanName : beanNames) {
                /* ??beanNamejdbcTemplateJdbcTemplate */
                if (defaultBeanName.equals(beanName)) {
                    GetJdbcTemplate.setJdbcTemplate((JdbcTemplate) beanfactory.getBean(defaultBeanName));
                } else {
                    /* bean */
                    beanfactory.getBean(beanName);
                }
            }
        }
    } catch (Exception e) {
        throw new RegisterBeanException(e.toString());
    } finally {
        TmpManager.deleteTmp(tmpdir);
    }
}

From source file:com.framework.demo.spring.SpeedUpSpringProcessor.java

public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException {

    if (!(beanFactory instanceof DefaultListableBeanFactory)) {
        log.error("if speed up spring, bean factory must be type of DefaultListableBeanFactory");
        return;// w w  w. ja va  2s  .  c  o  m
    }

    DefaultListableBeanFactory listableBeanFactory = (DefaultListableBeanFactory) beanFactory;

    for (String beanName : listableBeanFactory.getBeanDefinitionNames()) {
        BeanDefinition beanDefinition = beanFactory.getBeanDefinition(beanName);

        //?? 
        if (needRemove(beanName, beanDefinition)) {
            listableBeanFactory.removeBeanDefinition(beanName);
            continue;
        }

        //?lazy
        if (needLazyInit(beanName)) {
            //                beanDefinition.setLazyInit(true);
        }
    }
}

From source file:cn.guoyukun.spring.SpeedUpSpringProcessor.java

@Override
public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException {

    if (!(beanFactory instanceof DefaultListableBeanFactory)) {
        log.error("if speed up spring, bean factory must be type of DefaultListableBeanFactory");
        return;/* ww w  .j a  v a 2 s  .  c om*/
    }

    DefaultListableBeanFactory listableBeanFactory = (DefaultListableBeanFactory) beanFactory;

    for (String beanName : listableBeanFactory.getBeanDefinitionNames()) {
        BeanDefinition beanDefinition = beanFactory.getBeanDefinition(beanName);

        //?? 
        if (needRemove(beanName, beanDefinition)) {
            listableBeanFactory.removeBeanDefinition(beanName);
            continue;
        }

        //?lazy
        if (needLazyInit(beanName)) {
            beanDefinition.setLazyInit(true);
        }
    }
}

From source file:com.longio.spring.LioBootstrap.java

private void resolveLservice(ApplicationContext app, DefaultListableBeanFactory bf) {
    for (String name : bf.getBeanDefinitionNames()) {
        AbstractBeanDefinition bd = (AbstractBeanDefinition) bf.getBeanDefinition(name);

        if (!bd.hasBeanClass()) {
            continue;
        }// w w  w  . j  a v a  2  s. c  om

        if (!name.endsWith("Service")) {
            continue;
        }

        Class<?> cls = bd.getBeanClass();
        if (cls != LioFactoryBean.class) {
            continue;
        }

        Object obj = app.getBean(name);
        app.getAutowireCapableBeanFactory().autowireBean(obj);
        Lservice ls = obj.getClass().getAnnotation(Lservice.class);
        if (ls != null) {
            String pkg = ls.path();
            Connector connector = getConnector(bf);
            for (Dispatcher d : connector.getDispatcheres(pkg)) {
                MethodRefFactory mrf = new DefaultMethodRefFactory(cmdLookup);
                d.registerMethodRefs(mrf.createMethodRefs(obj));
            }
            logger.info("load longio [" + pkg + "] service");
        }
        LsAutowired lsa = obj.getClass().getAnnotation(LsAutowired.class);
        if (lsa != null) {
            String pkg = lsa.path();
            logger.info("load longio  client [" + pkg + "] service");
        }

    }

}

From source file:com.longio.spring.LioBootstrap.java

private void boot(ConfigurableApplicationContext app) throws Exception {
    DefaultListableBeanFactory bf = (DefaultListableBeanFactory) app.getBeanFactory();

    for (String name : bf.getBeanDefinitionNames()) {
        if (name.equalsIgnoreCase("longio.bootstrap")) {
            bootEndpoints(bf, name);/*from  w ww .  j  av  a 2s  .c om*/
            break;
        }
    }

    doScanAndRegist(bf);

    resolveLservice(app, bf);

    resolveLfilters(app, bf);
}

From source file:com.longio.spring.LioBootstrap.java

private void resolveLfilters(ApplicationContext app, DefaultListableBeanFactory bf) {

    List<MessageFilter> filters = new ArrayList<MessageFilter>();
    for (String name : bf.getBeanDefinitionNames()) {
        AbstractBeanDefinition bd = (AbstractBeanDefinition) bf.getBeanDefinition(name);
        //System.out.println("+++++++++++++++" + name);
        if (!bd.hasBeanClass()) {
            continue;
        }/* w  ww. jav  a2s  . c om*/

        if (!name.endsWith("Filter")) {
            continue;
        }

        Class<?> cls = bd.getBeanClass();
        if (cls != LioFactoryBean.class) {
            continue;
        }

        Object obj = app.getBean(name);
        app.getAutowireCapableBeanFactory().autowireBean(obj);
        LsFilter lf = obj.getClass().getAnnotation(LsFilter.class);
        if (lf != null) {
            filters.add((MessageFilter) obj);
        }
    }

    Connector connector = getConnector(bf);
    for (Dispatcher d : connector.getDispatcheres("*")) {
        d.registerMessageFilters(filters);
        for (MessageFilter filter : filters) {
            logger.info("load longio [" + filter.getClass().getCanonicalName() + "] message filter");
        }

    }

}

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

private void doPostResourceConfiguration(GriffonApplication application,
        RuntimeSpringConfiguration springConfig) {
    ClassLoader classLoader = ApplicationClassLoader.get();
    String resourceName = SPRING_RESOURCES_XML;
    try {/*from   ww  w. j ava 2  s .  c  o  m*/
        Resource springResources = new ClassPathResource(resourceName);

        if (springResources != null && springResources.exists()) {
            if (LOG.isDebugEnabled())
                LOG.debug(
                        "[RuntimeConfiguration] Configuring additional beans from " + springResources.getURL());
            DefaultListableBeanFactory xmlBf = new DefaultListableBeanFactory();
            new XmlBeanDefinitionReader(xmlBf).loadBeanDefinitions(springResources);
            xmlBf.setBeanClassLoader(classLoader);
            String[] beanNames = xmlBf.getBeanDefinitionNames();
            if (LOG.isDebugEnabled())
                LOG.debug("[RuntimeConfiguration] Found [" + beanNames.length + "] beans to configure");
            for (String beanName : beanNames) {
                BeanDefinition bd = xmlBf.getBeanDefinition(beanName);
                final String beanClassName = bd.getBeanClassName();
                Class<?> beanClass = beanClassName == null ? null
                        : ClassUtils.forName(beanClassName, classLoader);

                springConfig.addBeanDefinition(beanName, bd);
                String[] aliases = xmlBf.getAliases(beanName);
                for (String alias : aliases) {
                    springConfig.addAlias(alias, beanName);
                }
                if (beanClass != null) {
                    if (BeanFactoryPostProcessor.class.isAssignableFrom(beanClass)) {
                        ((ConfigurableApplicationContext) springConfig.getUnrefreshedApplicationContext())
                                .addBeanFactoryPostProcessor(
                                        (BeanFactoryPostProcessor) xmlBf.getBean(beanName));
                    }
                }
            }
        } else if (LOG.isDebugEnabled()) {
            LOG.debug("[RuntimeConfiguration] " + resourceName + " not found. Skipping configuration.");
        }
    } catch (Exception ex) {
        LOG.error("[RuntimeConfiguration] Unable to perform post initialization config: " + resourceName,
                sanitize(ex));
    }

    loadSpringGroovyResources(springConfig, application);
}

From source file:com.laxser.blitz.web.impl.module.ModulesBuilderImpl.java

private void registerBeanDefinitions(XmlWebApplicationContext context, List<Class<?>> classes) {
    DefaultListableBeanFactory bf = (DefaultListableBeanFactory) context.getBeanFactory();
    String[] definedClasses = new String[bf.getBeanDefinitionCount()];
    String[] definitionNames = bf.getBeanDefinitionNames();
    for (int i = 0; i < definedClasses.length; i++) {
        String name = definitionNames[i];
        definedClasses[i] = bf.getBeanDefinition(name).getBeanClassName();
    }/*from  w w w . j  ava2s. com*/
    for (Class<?> clazz : classes) {
        // ?
        if (!isCandidate(clazz)) {
            continue;
        }

        // bean
        String clazzName = clazz.getName();
        if (ArrayUtils.contains(definedClasses, clazzName)) {
            if (logger.isDebugEnabled()) {
                logger.debug(
                        "Ignores bean definition because it has been exist in context: " + clazz.getName());
            }
            continue;
        }
        //
        String beanName = null;
        if (StringUtils.isEmpty(beanName) && clazz.isAnnotationPresent(Component.class)) {
            beanName = clazz.getAnnotation(Component.class).value();
        }
        if (StringUtils.isEmpty(beanName) && clazz.isAnnotationPresent(Resource.class)) {
            beanName = clazz.getAnnotation(Resource.class).name();
        }
        if (StringUtils.isEmpty(beanName) && clazz.isAnnotationPresent(Service.class)) {
            beanName = clazz.getAnnotation(Service.class).value();
        }
        if (StringUtils.isEmpty(beanName)) {
            beanName = AUTO_BEAN_NAME_PREFIX + clazz.getName();
        }

        bf.registerBeanDefinition(beanName, new AnnotatedGenericBeanDefinition(clazz));
    }
}

From source file:com.liferay.arkadiko.bean.AKBeanPostProcessor.java

/**
 * Post process bean factory.//from  w  w w.j ava 2s  .  c om
 *
 * @param beanFactory the bean factory
 * @throws BeansException the beans exception
 */
public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException {

    if (!(beanFactory instanceof DefaultListableBeanFactory)) {
        return;
    }

    DefaultListableBeanFactory defaultListableBeanFactory = (DefaultListableBeanFactory) beanFactory;

    defaultListableBeanFactory.setInstantiationStrategy(this);

    AutowireCandidateResolver autowireCandidateResolver = defaultListableBeanFactory
            .getAutowireCandidateResolver();

    defaultListableBeanFactory
            .setAutowireCandidateResolver(new AKAutowireCandidateResolver(autowireCandidateResolver));

    for (String beanName : defaultListableBeanFactory.getBeanDefinitionNames()) {

        BeanDefinition beanDefinition = beanFactory.getBeanDefinition(beanName);

        if (!(beanDefinition instanceof AbstractBeanDefinition)) {
            continue;
        }

        String className = beanDefinition.getBeanClassName();

        if (className == null) {
            continue;
        }

        try {
            AKBeanDefinition akBeanDefinition = new AKBeanDefinition(this,
                    (AbstractBeanDefinition) beanDefinition, beanName, getServiceRegistry());

            defaultListableBeanFactory.removeBeanDefinition(beanName);

            defaultListableBeanFactory.registerBeanDefinition(beanName, akBeanDefinition);
        } catch (Exception e) {
            if (_log.isLoggable(Level.SEVERE)) {
                _log.log(Level.SEVERE, e.getMessage(), e);
            }
        }
    }
}

From source file:co.paralleluniverse.common.spring.SpringContainerHelper.java

public static ConfigurableApplicationContext createContext(String defaultDomain, Resource xmlResource,
        Object properties, BeanFactoryPostProcessor beanFactoryPostProcessor) {
    LOG.info("JAVA: {} {}, {}", new Object[] { System.getProperty("java.runtime.name"),
            System.getProperty("java.runtime.version"), System.getProperty("java.vendor") });
    LOG.info("OS: {} {}, {}", new Object[] { System.getProperty("os.name"), System.getProperty("os.version"),
            System.getProperty("os.arch") });
    LOG.info("DIR: {}", System.getProperty("user.dir"));

    final DefaultListableBeanFactory beanFactory = createBeanFactory();
    final GenericApplicationContext context = new GenericApplicationContext(beanFactory);
    context.registerShutdownHook();//from  w w w .  j av  a 2 s  .  c  o  m

    final PropertyPlaceholderConfigurer propertyPlaceholderConfigurer = new PropertyPlaceholderConfigurer();
    propertyPlaceholderConfigurer
            .setSystemPropertiesMode(PropertyPlaceholderConfigurer.SYSTEM_PROPERTIES_MODE_OVERRIDE);

    if (properties != null) {
        if (properties instanceof Resource)
            propertyPlaceholderConfigurer.setLocation((Resource) properties);
        else if (properties instanceof Properties)
            propertyPlaceholderConfigurer.setProperties((Properties) properties);
        else
            throw new IllegalArgumentException(
                    "Properties argument - " + properties + " - is of an unhandled type");
    }
    context.addBeanFactoryPostProcessor(propertyPlaceholderConfigurer);

    // MBean exporter
    //final MBeanExporter mbeanExporter = new AnnotationMBeanExporter();
    //mbeanExporter.setServer(ManagementFactory.getPlatformMBeanServer());
    //beanFactory.registerSingleton("mbeanExporter", mbeanExporter);
    context.registerBeanDefinition("mbeanExporter", getMBeanExporterBeanDefinition(defaultDomain));

    // inject bean names into components
    context.addBeanFactoryPostProcessor(new BeanFactoryPostProcessor() {
        @Override
        public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException {
            for (String beanName : beanFactory.getBeanDefinitionNames()) {
                try {
                    final BeanDefinition beanDefinition = beanFactory.getBeanDefinition(beanName);
                    if (beanDefinition.getBeanClassName() != null) { // van be null for factory methods
                        final Class<?> beanClass = Class.forName(beanDefinition.getBeanClassName());
                        if (Component.class.isAssignableFrom(beanClass))
                            beanDefinition.getConstructorArgumentValues().addIndexedArgumentValue(0, beanName);
                    }
                } catch (Exception ex) {
                    LOG.error("Error loading bean " + beanName + " definition.", ex);
                    throw new Error(ex);
                }
            }
        }
    });

    if (beanFactoryPostProcessor != null)
        context.addBeanFactoryPostProcessor(beanFactoryPostProcessor);

    beanFactory.registerCustomEditor(org.w3c.dom.Element.class,
            co.paralleluniverse.common.util.DOMElementProprtyEditor.class);

    final Map<String, Object> beans = new HashMap<String, Object>();

    beanFactory.addBeanPostProcessor(new BeanPostProcessor() {
        @Override
        public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
            LOG.info("Loading bean {} [{}]", beanName, bean.getClass().getName());
            beans.put(beanName, bean);

            if (bean instanceof Service) {
                final BeanDefinition beanDefinition = beanFactory.getBeanDefinition(beanName);
                Collection<String> dependencies = getBeanDependencies(beanDefinition);

                for (String dependeeName : dependencies) {
                    Object dependee = beanFactory.getBean(dependeeName);
                    if (dependee instanceof Service) {
                        ((Service) dependee).addDependedBy((Service) bean);
                        ((Service) bean).addDependsOn((Service) dependee);
                    }
                }
            }
            return bean;
        }

        @Override
        public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
            LOG.info("Bean {} [{}] loaded", beanName, bean.getClass().getName());
            return bean;
        }
    });

    final XmlBeanDefinitionReader xmlReader = new XmlBeanDefinitionReader((BeanDefinitionRegistry) beanFactory);
    xmlReader.loadBeanDefinitions(xmlResource);

    // start container
    context.refresh();

    // Call .postInit() on all Components
    // There's probably a better way to do this
    try {
        for (Map.Entry<String, Object> entry : beans.entrySet()) {
            final String beanName = entry.getKey();
            final Object bean = entry.getValue();
            if (bean instanceof Component) {
                LOG.info("Performing post-initialization on bean {} [{}]", beanName, bean.getClass().getName());
                ((Component) bean).postInit();
            }
        }
    } catch (Exception e) {
        throw Throwables.propagate(e);
    }

    return context;
}