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

org.springframework.beans.factory.SmartFactoryBean Maven / Gradle / Ivy

There is a newer version: 5.3.34
Show newest version
/*
 * Copyright 2002-2007 the original author or authors.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package org.springframework.beans.factory;

/**
 * Extension of the {@link FactoryBean} interface. Implementations may
 * indicate whether they always return independent instances, for the
 * case where their {@link #isSingleton()} implementation returning
 * false does not clearly indicate independent instances.
 *
 * 

Plain {@link FactoryBean} implementations which do not implement * this extended interface are simply assumed to always return independent * instances if their {@link #isSingleton()} implementation returns * false. * *

NOTE: This interface is a special purpose interface, mainly for * internal use within the framework. In general, application-provided * FactoryBeans should simply implement the plain {@link FactoryBean} interface. * * @author Juergen Hoeller * @since 2.0.3 * @see #isPrototype() * @see #isSingleton() */ public interface SmartFactoryBean extends FactoryBean { /** * Is the object managed by this factory a prototype? That is, * will {@link #getObject()} always return an independent instance? *

The prototype status of the FactoryBean itself will generally * be provided by the owning {@link BeanFactory}; usually, it has to be * defined as singleton there. *

This method is supposed to strictly check for independent instances; * it should not return true for scoped objects or other * kinds of non-singleton, non-independent objects. For this reason, * this is not simply the inverted form of {@link #isSingleton()}. * @return if the exposed object is a prototype * @see #getObject() * @see #isSingleton() */ boolean isPrototype(); }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy