mirror of
https://github.com/spring-projects/spring-framework.git
synced 2026-09-17 08:24:13 +00:00
This commit introduces a configurable limit on the estimated result size of BigDecimal and BigInteger power operations within SpEL expressions. The estimated result size in bits is computed as the product of the base value's bit length and the exponent. If this limit is exceeded, a SpelEvaluationException is thrown. The limit defaults to 1,000,000 bits, which is approximately equivalent to a decimal number with 300,000 digits, and can be configured either on a per-use-case basis via the new maximumBigPowerBits constructor argument in SpelParserConfiguration or globally as a JVM system property or Spring property named `spring.expression.maxBigPowerBits`. Parsers intended for trusted internal expressions may supply Integer.MAX_VALUE to remove the limit entirely. Closes ch-37034
163 lines
8.3 KiB
Plaintext
163 lines
8.3 KiB
Plaintext
[[appendix]]
|
|
= Appendix
|
|
|
|
This part of the reference documentation covers topics that apply to multiple modules
|
|
within the core Spring Framework.
|
|
|
|
|
|
[[appendix-spring-properties]]
|
|
== Spring Properties
|
|
|
|
{spring-framework-api}/core/SpringProperties.html[`SpringProperties`] is a static holder
|
|
for properties that control certain low-level aspects of the Spring Framework. Users can
|
|
configure these properties via JVM system properties or programmatically via the
|
|
`SpringProperties.setProperty(String key, String value)` method. The latter may be
|
|
necessary if the deployment environment disallows custom JVM system properties. As an
|
|
alternative, these properties may be configured in a `spring.properties` file in the root
|
|
of the classpath -- for example, deployed within the application's JAR file.
|
|
|
|
The following table lists all currently supported Spring properties.
|
|
|
|
.Supported Spring Properties
|
|
[cols="1,1"]
|
|
|===
|
|
| Name | Description
|
|
|
|
| `spring.aop.ajc.ignore`
|
|
| Instructs Spring to ignore ajc-compiled aspects for Spring AOP proxying, restoring traditional
|
|
Spring behavior for scenarios where both weaving and AspectJ auto-proxying are enabled. See
|
|
{spring-framework-api}++/aop/aspectj/annotation/AbstractAspectJAdvisorFactory.html#IGNORE_AJC_PROPERTY_NAME++[`AbstractAspectJAdvisorFactory`]
|
|
for details.
|
|
|
|
| `spring.aot.enabled`
|
|
| Indicates the application should run with AOT generated artifacts. See
|
|
xref:core/aot.adoc[Ahead of Time Optimizations] and
|
|
{spring-framework-api}++/aot/AotDetector.html#AOT_ENABLED++[`AotDetector`]
|
|
for details.
|
|
|
|
| `spring.beaninfo.ignore`
|
|
| Instructs Spring to use the `Introspector.IGNORE_ALL_BEANINFO` mode when calling the
|
|
JavaBeans `Introspector`. See
|
|
{spring-framework-api}++/beans/StandardBeanInfoFactory.html#IGNORE_BEANINFO_PROPERTY_NAME++[`StandardBeanInfoFactory`]
|
|
for details.
|
|
|
|
| `spring.cache.reactivestreams.ignore`
|
|
| Instructs Spring's caching infrastructure to ignore the presence of Reactive Streams,
|
|
in particular Reactor's `Mono`/`Flux` in `@Cacheable` method return type declarations. See
|
|
{spring-framework-api}++/cache/interceptor/CacheAspectSupport.html#IGNORE_REACTIVESTREAMS_PROPERTY_NAME++[`CacheAspectSupport`]
|
|
for details.
|
|
|
|
| `spring.classformat.ignore`
|
|
| Instructs Spring to ignore class format exceptions during classpath scanning, in
|
|
particular for unsupported class file versions. See
|
|
{spring-framework-api}++/context/annotation/ClassPathScanningCandidateComponentProvider.html#IGNORE_CLASSFORMAT_PROPERTY_NAME++[`ClassPathScanningCandidateComponentProvider`]
|
|
for details.
|
|
|
|
| `spring.context.checkpoint`
|
|
| Property that specifies a common context checkpoint. See
|
|
xref:integration/checkpoint-restore.adoc#_automatic_checkpointrestore_at_startup[Automatic checkpoint/restore at startup] and
|
|
{spring-framework-api}++/context/support/DefaultLifecycleProcessor.html#CHECKPOINT_PROPERTY_NAME++[`DefaultLifecycleProcessor`]
|
|
for details.
|
|
|
|
| `spring.context.exit`
|
|
| Property for terminating the JVM when the context reaches a specific phase. See
|
|
xref:integration/checkpoint-restore.adoc#_automatic_checkpointrestore_at_startup[Automatic checkpoint/restore at startup] and
|
|
{spring-framework-api}++/context/support/DefaultLifecycleProcessor.html#EXIT_PROPERTY_NAME++[`DefaultLifecycleProcessor`]
|
|
for details.
|
|
|
|
| `spring.context.expression.maxLength`
|
|
| The maximum length for
|
|
xref:core/expressions/evaluation.adoc#expressions-parser-configuration[Spring Expression Language]
|
|
expressions used in XML bean definitions, `@Value`, etc.
|
|
|
|
| `spring.expression.compiler.mode`
|
|
| The mode to use when compiling expressions for the
|
|
xref:core/expressions/evaluation.adoc#expressions-compiler-configuration[Spring Expression Language].
|
|
|
|
| `spring.expression.maxBigPowerBits`
|
|
| The default maximum number of bits permitted in the result of a `BigDecimal` or
|
|
`BigInteger` power operation within a
|
|
xref:core/expressions/evaluation.adoc#expressions-parser-configuration[Spring Expression Language]
|
|
expression.
|
|
|
|
| `spring.expression.maxOperations`
|
|
| The default maximum number of operations permitted during
|
|
xref:core/expressions/evaluation.adoc#expressions-parser-configuration[Spring Expression Language]
|
|
expression evaluation.
|
|
|
|
| `spring.getenv.ignore`
|
|
| Instructs Spring to ignore operating system environment variables if a Spring
|
|
`Environment` property -- for example, a placeholder in a configuration String -- isn't
|
|
resolvable otherwise. See
|
|
{spring-framework-api}++/core/env/AbstractEnvironment.html#IGNORE_GETENV_PROPERTY_NAME++[`AbstractEnvironment`]
|
|
for details.
|
|
|
|
| `spring.http.response.flush.enabled`
|
|
| Configures the Spring MVC `ServletServerHttpResponse` to allow flushing on the `OutputStream`
|
|
returned by `ServletServerHttpResponse#getBody()`. By default, such flush calls are ignored and
|
|
only `ServletServerHttpResponse#flush()` will actually flush the response to the network.
|
|
|
|
| `spring.jdbc.getParameterType.ignore`
|
|
| Instructs Spring to ignore `java.sql.ParameterMetaData.getParameterType` completely.
|
|
See the note in xref:data-access/jdbc/advanced.adoc#jdbc-batch-list[Batch Operations with a List of Objects].
|
|
|
|
| `spring.jndi.ignore`
|
|
| Instructs Spring to ignore a default JNDI environment, as an optimization for scenarios
|
|
where nothing is ever to be found for such JNDI fallback searches to begin with, avoiding
|
|
the repeated JNDI lookup overhead. See
|
|
{spring-framework-api}++/jndi/JndiLocatorDelegate.html#IGNORE_JNDI_PROPERTY_NAME++[`JndiLocatorDelegate`]
|
|
for details.
|
|
|
|
| `spring.locking.strict`
|
|
| Instructs Spring to enforce strict locking during bean creation, rather than the mix of
|
|
strict and lenient locking that 6.2 applies by default. See
|
|
{spring-framework-api}++/beans/factory/support/DefaultListableBeanFactory.html#STRICT_LOCKING_PROPERTY_NAME++[`DefaultListableBeanFactory`]
|
|
for details.
|
|
|
|
| `spring.objenesis.ignore`
|
|
| Instructs Spring to ignore Objenesis, not even attempting to use it. See
|
|
{spring-framework-api}++/objenesis/SpringObjenesis.html#IGNORE_OBJENESIS_PROPERTY_NAME++[`SpringObjenesis`]
|
|
for details.
|
|
|
|
| `spring.placeholder.escapeCharacter.default`
|
|
| The default escape character for property placeholder support. If not set, `'\'` will
|
|
be used. Can be set to a custom escape character or an empty string to disable support
|
|
for an escape character. The default escape character be explicitly overridden in
|
|
`PropertySourcesPlaceholderConfigurer` and subclasses of `AbstractPropertyResolver`. See
|
|
{spring-framework-api}++/core/env/AbstractPropertyResolver.html#DEFAULT_PLACEHOLDER_ESCAPE_CHARACTER_PROPERTY_NAME++[`AbstractPropertyResolver`]
|
|
for details.
|
|
|
|
| `spring.test.aot.processing.failOnError`
|
|
| A boolean flag that controls whether errors encountered during AOT processing in the
|
|
_Spring TestContext Framework_ should result in an exception that fails the overall process.
|
|
See xref:testing/testcontext-framework/aot.adoc[Ahead of Time Support for Tests].
|
|
|
|
| `spring.test.constructor.autowire.mode`
|
|
| The default _test constructor autowire mode_ to use if `@TestConstructor` is not present
|
|
on a test class. See xref:testing/annotations/integration-junit-jupiter.adoc#integration-testing-annotations-testconstructor[Changing the default test constructor autowire mode].
|
|
|
|
| `spring.test.context.cache.maxSize`
|
|
| The maximum size of the context cache in the _Spring TestContext Framework_. See
|
|
xref:testing/testcontext-framework/ctx-management/caching.adoc[Context Caching].
|
|
|
|
| `spring.test.context.cache.pause`
|
|
| The pause mode for the context cache in the _Spring TestContext Framework_. See
|
|
xref:testing/testcontext-framework/ctx-management/context-pausing.adoc[Context Pausing].
|
|
|
|
| `spring.test.context.failure.threshold`
|
|
| The failure threshold for errors encountered while attempting to load an `ApplicationContext`
|
|
in the _Spring TestContext Framework_. See
|
|
xref:testing/testcontext-framework/ctx-management/failure-threshold.adoc[Context Failure Threshold].
|
|
|
|
| `spring.test.extension.context.scope`
|
|
| The default _extension context scope_ used by the `SpringExtension` in `@Nested` test
|
|
class hierarchies. See
|
|
xref:testing/annotations/integration-junit-jupiter.adoc#integration-testing-annotations-springextensionconfig[`@SpringExtensionConfig`].
|
|
|
|
| `spring.test.enclosing.configuration`
|
|
| The default _enclosing configuration inheritance mode_ to use if
|
|
`@NestedTestConfiguration` is not present on a test class. See
|
|
xref:testing/annotations/integration-junit-jupiter.adoc#integration-testing-annotations-nestedtestconfiguration[Changing the default enclosing configuration inheritance mode].
|
|
|
|
|===
|