List of usage examples for org.springframework.beans.factory.config BeanDefinition getScope
@Nullable String getScope();
From source file:org.echocat.jomon.spring.BeanFactoryUtils.java
@Nullable public static String findScopeOfBeanDefinition(@Nonnull ConfigurableListableBeanFactory beanFactory, @Nonnull String beanName) throws NoSuchBeanDefinitionException { final BeanDefinition definition = beanFactory.getBeanDefinition(beanName); if (definition == null) { throw new NoSuchBeanDefinitionException("Could not find a bean named '" + beanName + "'."); }/* w w w. j a va 2 s . c om*/ return definition.getScope(); }
From source file:com.helpinput.spring.BeanRegister.java
public static boolean removeBean(DefaultListableBeanFactory dlbf, BeanInfo beanInfo, String beanName) { BeanDefinition bd = null; if (!Utils.hasLength(beanName)) if (beanInfo != null) beanName = beanInfo.beanName; if (!Utils.hasLength(beanName)) return false; try {/* w ww.j a v a2s .co m*/ bd = dlbf.getBeanDefinition(beanName); if (bd != null) { //?bean? relativePath?, ?? // BeanRegister.runOnUnregisger(beanName, dlbf); String scope = bd.getScope(); /** * bean?application,singletonbeansession?view? flash? * requestbean, * session,view,flash,requestbeanapplicationbean * application,singletonbean * scopebeanbeanbean */ if (application_scope.equals(scope)) dlbf.destroyScopedBean(beanName); else if (singleton_scope.equals(scope)) dlbf.destroySingleton(beanName); dlbf.removeBeanDefinition(beanName); if (beanInfo != null && beanInfo.beanClass != null && PropertyEditor.class.isAssignableFrom(beanInfo.beanClass)) { ContextHolder.refreshers.remover(beanName); } List<BeanRegistInterceptor> interceptors = ContextHolder.beanRegistIntercpterHolder.getList(); if (Utils.hasLength(interceptors)) { for (BeanRegistInterceptor beanRegistInterceptor : interceptors) { if (beanRegistInterceptor.afterRemove(beanInfo.beanClass, beanName, scope, dlbf)) break; } } logRegist(Info.Removed, (String) bd.getAttribute(relativePath), beanInfo.beanName, scope); return true; } } catch (NoSuchBeanDefinitionException e) { //? BeanDefinition,????beanInfo, return true; } return false; }
From source file:me.springframework.di.spring.SpringConfigurationLoader.java
/** * Loads a {@link MutableInstance} from one of the {@link BeanDefinition}s * provided by the {@link BeanDefinitionRegistry} passed in. * //from ww w . j a v a2s . c o m * @param instance * A {@link MutableInstance} to be populated. * @param definition * A {@link BeanDefinition}, providing the meta data. */ private static void load(MutableInstance instance, BeanDefinition definition, MutableContext context) { instance.setReferencedType(definition.getBeanClassName()); instance.setPrimitive(false); instance.setLazyInit(definition.isLazyInit()); instance.setId("source" + counter++); instance.setFactoryMethod(definition.getFactoryMethodName()); instance.setFactoryInstance(definition.getFactoryBeanName()); if (ConfigurableBeanFactory.SCOPE_SINGLETON.equals(definition.getScope())) { instance.setScope(Scope.SINGLETON); } if (ConfigurableBeanFactory.SCOPE_PROTOTYPE.equals(definition.getScope())) { instance.setScope(Scope.PROTOTYPE); } if (definition instanceof AbstractBeanDefinition) { instance.setInitMethod(((AbstractBeanDefinition) definition).getInitMethodName()); instance.setDestroyMethod(((AbstractBeanDefinition) definition).getDestroyMethodName()); } if (!definition.getConstructorArgumentValues().isEmpty()) { List<MutableConstructorArgument> arguments = new ArrayList<MutableConstructorArgument>(); for (Object object : definition.getConstructorArgumentValues().getGenericArgumentValues()) { MutableConstructorArgument argument = new MutableConstructorArgument(instance); argument.setInstance(instance); ValueHolder holder = (ValueHolder) object; argument.setSource(loadSource(context, argument, holder.getValue())); argument.setType(holder.getType()); arguments.add(argument); } instance.setConstructorArguments(arguments); } Set<MutablePropertySetter> setters = new HashSet<MutablePropertySetter>(); for (Object object : definition.getPropertyValues().getPropertyValueList()) { MutablePropertySetter setter = new MutablePropertySetter(instance); setter.setInstance(instance); PropertyValue value = (PropertyValue) object; setter.setName(value.getName()); setter.setSource(loadSource(context, setter, value.getValue())); setters.add(setter); } instance.setSetters(setters); // added by woj instance.setAutowireCandidate(definition.isAutowireCandidate()); if (definition instanceof AbstractBeanDefinition) { instance.setAutowireMode(((AbstractBeanDefinition) definition).getResolvedAutowireMode()); } else { instance.setAutowireMode(AbstractBeanDefinition.AUTOWIRE_NO); } }
From source file:com.rosenvold.spring.SpringContextAnalyzer.java
/** * Checks if the value in a given field can be accessed from a singleton bean without a proxy. * @param singletonBean The client bean//from ww w . j a va 2s.co m * @param field The field to check * @return true if the requirements are verified not to be met, false in all other cases */ boolean violatesProxyRequirementsForSingletonClient(Object singletonBean, Field field) { Object injectedBean = getFieldValue(singletonBean, field); if (injectedBean == null) return false; // Dont care String[] beanNamesForType = applicationContext.getBeanNamesForType(injectedBean.getClass()); if (beanNamesForType.length != 1) return false; BeanDefinition injectedBeanDef = getBeanDefinition(beanNamesForType[0]); return (isWebScope(injectedBeanDef.getScope()) && !isProxy(injectedBean)); }
From source file:org.echocat.jomon.spring.BeanProvider.java
protected void validateTypeAgainstBeanConfiguration(@Nonnull String name, @Nonnull Type type) { if (type != undefined) { final BeanDefinition definition = getBeanDefinitionRegistry().getBeanDefinition(name); final String scope = definition.getScope(); if (type == multiton && !SCOPE_PROTOTYPE.equals(scope)) { throw new IllegalArgumentException("The bean '" + name + "' was requested as " + type + ". This requires the scope '" + SCOPE_PROTOTYPE + "' but was '" + scope + "'."); }// ww w. j a v a 2s.c om if (type == singleton && !SCOPE_SINGLETON.equals(scope)) { throw new IllegalArgumentException("The bean '" + name + "' was requested as " + type + ". This requires the scope '" + SCOPE_SINGLETON + "' but was '" + scope + "'."); } } }
From source file:com.vaadin.spring.navigator.SpringViewProvider.java
private View getViewFromApplicationContext(String viewName, String beanName) { View view = null;//from w ww . j a va2s . c o m if (isAccessGrantedToBeanName(beanName)) { final BeanDefinition beanDefinition = beanDefinitionRegistry.getBeanDefinition(beanName); if (beanDefinition.getScope().equals(ViewScopeImpl.VAADIN_VIEW_SCOPE_NAME)) { LOGGER.trace("View [{}] is view scoped, activating scope", viewName); final ViewCache viewCache = ViewScopeImpl.getViewCacheRetrievalStrategy() .getViewCache(applicationContext); viewCache.creatingView(viewName); try { view = getViewFromApplicationContextAndCheckAccess(beanName); } finally { viewCache.viewCreated(viewName, view); } } else { view = getViewFromApplicationContextAndCheckAccess(beanName); } } if (view != null) { return view; } else { return getAccessDeniedView(); } }
From source file:org.activiti.spring.components.scope.ProcessScope.java
public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException { beanFactory.registerScope(ProcessScope.PROCESS_SCOPE_NAME, this); Assert.isInstanceOf(BeanDefinitionRegistry.class, beanFactory, "BeanFactory was not a BeanDefinitionRegistry, so ProcessScope cannot be used."); BeanDefinitionRegistry registry = (BeanDefinitionRegistry) beanFactory; for (String beanName : beanFactory.getBeanDefinitionNames()) { BeanDefinition definition = beanFactory.getBeanDefinition(beanName); // Replace this or any of its inner beans with scoped proxy if it has this scope boolean scoped = PROCESS_SCOPE_NAME.equals(definition.getScope()); Scopifier scopifier = new Scopifier(registry, PROCESS_SCOPE_NAME, proxyTargetClass, scoped); scopifier.visitBeanDefinition(definition); if (scoped) { Scopifier.createScopedProxy(beanName, definition, registry, proxyTargetClass); }/* ww w .jav a2s . c o m*/ } beanFactory.registerSingleton(ProcessScope.PROCESS_SCOPE_PROCESS_VARIABLES_SINGLETON, this.processVariablesMap); beanFactory.registerResolvableDependency(ProcessInstance.class, createSharedProcessInstance()); }
From source file:org.os890.ds.addon.spring.impl.SpringBridgeExtension.java
private <T> Bean<T> createBeanAdapter(Class<T> beanClass, String beanName, BeanDefinition beanDefinition, ConfigurableApplicationContext applicationContext, BeanManager bm, AfterBeanDiscovery abd) { String beanScope = beanDefinition.getScope(); ContextualLifecycle lifecycleAdapter = new SpringAwareBeanLifecycle(applicationContext, beanName, beanScope);/*from ww w.j a v a2s .c o m*/ List<Annotation> cdiQualifiers = tryToMapToCdiQualifier(beanName, beanDefinition, abd); //we don't need to handle (remove) interceptor annotations, because BeanBuilder >won't< add them (not supported) BeanBuilder<T> beanBuilder = new BeanBuilder<T>(bm) .readFromType(new AnnotatedTypeBuilder<T>().readFromType(beanClass).create()).name(beanName) .beanLifecycle(lifecycleAdapter).injectionPoints(Collections.<InjectionPoint>emptySet()) .scope(Dependent.class) //the instance (or proxy) returned by spring shouldn't bootContainer proxied .passivationCapable(true).alternative(false).nullable(true); if (!cdiQualifiers.isEmpty()) { beanBuilder.addQualifiers(cdiQualifiers); } boolean typeObjectFound = false; for (Type type : beanBuilder.getTypes()) { if (Object.class.equals(type)) { typeObjectFound = true; } } if (!typeObjectFound) { beanBuilder.addType(Object.class); //java.lang.Object needs to be present (as type) in any case } return beanBuilder.create(); }
From source file:com.github.persapiens.jsfboot.annotations.JsfCdiToSpringBeanNameGenerator.java
@Override public String generateBeanName(BeanDefinition definition, BeanDefinitionRegistry registry) { String result = super.generateBeanName(definition, registry); if (definition instanceof AnnotatedBeanDefinition) { AnnotatedBeanDefinition annDef = (AnnotatedBeanDefinition) definition; String scopeName = JsfCdiToSpring.scopeName(annDef.getMetadata().getAnnotationTypes()); if (scopeName != null) { definition.setScope(scopeName); logger.debug(// w w w . j a v a 2 s .c o m definition.getBeanClassName() + " - Scope(" + definition.getScope().toUpperCase() + ")"); } } return result; }
From source file:org.activiti.spring.components.aop.util.Scopifier.java
@Override protected Object resolveValue(Object value) { BeanDefinition definition = null; String beanName = null;/*from www. j a v a 2 s . co m*/ if (value instanceof BeanDefinition) { definition = (BeanDefinition) value; beanName = BeanDefinitionReaderUtils.generateBeanName(definition, registry); } else if (value instanceof BeanDefinitionHolder) { BeanDefinitionHolder holder = (BeanDefinitionHolder) value; definition = holder.getBeanDefinition(); beanName = holder.getBeanName(); } if (definition != null) { boolean nestedScoped = scope.equals(definition.getScope()); boolean scopeChangeRequiresProxy = !scoped && nestedScoped; if (scopeChangeRequiresProxy) { // Exit here so that nested inner bean definitions are not // analysed return createScopedProxy(beanName, definition, registry, proxyTargetClass); } } // Nested inner bean definitions are recursively analysed here value = super.resolveValue(value); return value; }