/*
* Copyright 2002-2020 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
*
* https://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.context.annotation;
Enumerates the various scoped-proxy options.
For a more complete discussion of exactly what a scoped proxy is, see the
section of the Spring reference documentation entitled 'Scoped beans as
dependencies'.
Author: Mark Fisher See Also: Since: 2.5
/**
* Enumerates the various scoped-proxy options.
*
* <p>For a more complete discussion of exactly what a scoped proxy is, see the
* section of the Spring reference documentation entitled '<em>Scoped beans as
* dependencies</em>'.
*
* @author Mark Fisher
* @since 2.5
* @see ScopeMetadata
*/
public enum ScopedProxyMode {
Default typically equals NO
, unless a different default has been configured at the component-scan instruction level. /**
* Default typically equals {@link #NO}, unless a different default
* has been configured at the component-scan instruction level.
*/
DEFAULT,
Do not create a scoped proxy.
This proxy-mode is not typically useful when used with a non-singleton scoped instance, which should favor the use of the INTERFACES
or TARGET_CLASS
proxy-modes instead if it is to be used as a dependency.
/**
* Do not create a scoped proxy.
* <p>This proxy-mode is not typically useful when used with a
* non-singleton scoped instance, which should favor the use of the
* {@link #INTERFACES} or {@link #TARGET_CLASS} proxy-modes instead if it
* is to be used as a dependency.
*/
NO,
Create a JDK dynamic proxy implementing all interfaces exposed by
the class of the target object.
/**
* Create a JDK dynamic proxy implementing <i>all</i> interfaces exposed by
* the class of the target object.
*/
INTERFACES,
Create a class-based proxy (uses CGLIB).
/**
* Create a class-based proxy (uses CGLIB).
*/
TARGET_CLASS
}