diff --git a/framework-docs/src/docs/asciidoc/core/core-aop-api.adoc b/framework-docs/src/docs/asciidoc/core/core-aop-api.adoc
index 1fa9a236eb..e627c4a7d9 100644
--- a/framework-docs/src/docs/asciidoc/core/core-aop-api.adoc
+++ b/framework-docs/src/docs/asciidoc/core/core-aop-api.adoc
@@ -23,7 +23,7 @@ Spring's pointcut model enables pointcut reuse independent of advice types. You
target different advice with the same pointcut.
The `org.springframework.aop.Pointcut` interface is the central interface, used to
-target advices to particular classes and methods. The complete interface follows:
+target advice to particular classes and methods. The complete interface follows:
[source,java,indent=0,subs="verbatim,quotes"]
----
@@ -843,7 +843,7 @@ created by the implementation of the `getObject()` method in the `ProxyFactoryBe
method creates an AOP proxy that wraps a target object.
One of the most important benefits of using a `ProxyFactoryBean` or another IoC-aware
-class to create AOP proxies is that advices and pointcuts can also be
+class to create AOP proxies is that advice and pointcuts can also be
managed by IoC. This is a powerful feature, enabling certain approaches that are hard to
achieve with other AOP frameworks. For example, an advice may itself reference
application objects (besides the target, which should be available in any AOP
@@ -901,7 +901,7 @@ to be applied. You can find an example of using this feature in <`
element. Again, the following example specifies a `ReflectiveLoadTimeWeaver`:
diff --git a/framework-docs/src/docs/asciidoc/core/core-appendix.adoc b/framework-docs/src/docs/asciidoc/core/core-appendix.adoc
index 9ecc847728..488765bd02 100644
--- a/framework-docs/src/docs/asciidoc/core/core-appendix.adoc
+++ b/framework-docs/src/docs/asciidoc/core/core-appendix.adoc
@@ -1069,7 +1069,7 @@ The following listing shows the `Component` class:
private String name;
private List components = new ArrayList ();
- // mmm, there is no setter method for the 'components'
+ // there is no setter method for the 'components'
public void addComponent(Component component) {
this.components.add(component);
}
@@ -1099,7 +1099,7 @@ The following listing shows the `Component` class:
var name: String? = null
private val components = ArrayList()
- // mmm, there is no setter method for the 'components'
+ // there is no setter method for the 'components'
fun addComponent(component: Component) {
this.components.add(component)
}
diff --git a/framework-docs/src/docs/asciidoc/core/core-beans.adoc b/framework-docs/src/docs/asciidoc/core/core-beans.adoc
index d6eec1bd9a..af3dab8a6c 100644
--- a/framework-docs/src/docs/asciidoc/core/core-beans.adoc
+++ b/framework-docs/src/docs/asciidoc/core/core-beans.adoc
@@ -605,7 +605,7 @@ creating a namespace), yet they refer to the same bean.
.Java-configuration
****
-If you use Javaconfiguration, the `@Bean` annotation can be used to provide aliases.
+If you use Java Configuration, the `@Bean` annotation can be used to provide aliases.
See <> for details.
****
@@ -3981,7 +3981,7 @@ dependency type. The following table summarizes the most important `Aware` inter
| <>
| `MessageSourceAware`
-| Configured strategy for resolving messages (with support for parametrization and
+| Configured strategy for resolving messages (with support for parameterization and
internationalization).
| <>
@@ -5020,7 +5020,7 @@ through Java 8's `java.util.Optional`, as the following example shows:
As of Spring Framework 5.0, you can also use a `@Nullable` annotation (of any kind
in any package -- for example, `javax.annotation.Nullable` from JSR-305) or just leverage
-Kotlin builtin null-safety support:
+Kotlin built-in null-safety support:
[source,java,indent=0,subs="verbatim,quotes",role="primary"]
.Java
@@ -6324,7 +6324,7 @@ the `@RestController` annotation from Spring MVC is composed of `@Controller` an
In addition, composed annotations can optionally redeclare attributes from
meta-annotations to allow customization. This can be particularly useful when you
want to only expose a subset of the meta-annotation's attributes. For example, Spring's
-`@SessionScope` annotation hardcodes the scope name to `session` but still allows
+`@SessionScope` annotation hard codes the scope name to `session` but still allows
customization of the `proxyMode`. The following listing shows the definition of the
`SessionScope` annotation:
diff --git a/framework-docs/src/docs/asciidoc/data-access.adoc b/framework-docs/src/docs/asciidoc/data-access.adoc
index 4049083688..49f0f2ce55 100644
--- a/framework-docs/src/docs/asciidoc/data-access.adoc
+++ b/framework-docs/src/docs/asciidoc/data-access.adoc
@@ -4188,7 +4188,7 @@ To configure a `DriverManagerDataSource`:
. Obtain a connection with `DriverManagerDataSource` as you typically obtain a JDBC
connection.
-. Specify the fully qualified classname of the JDBC driver so that the `DriverManager`
+. Specify the fully qualified class name of the JDBC driver so that the `DriverManager`
can load the driver class.
. Provide a URL that varies between JDBC drivers. (See the documentation for your driver
for the correct value.)
@@ -4346,7 +4346,7 @@ javadoc for more details.
==== Using `DataSourceTransactionManager`
The `DataSourceTransactionManager` class is a `PlatformTransactionManager`
-implementation for single JDBC datasources. It binds a JDBC connection from the
+implementation for single JDBC data sources. It binds a JDBC connection from the
specified data source to the currently executing thread, potentially allowing for one
thread connection per data source.
@@ -6966,7 +6966,7 @@ Consider the following query:
SELECT id, name, state FROM table WHERE (name, age) IN (('John', 35), ('Ann', 50))
----
-The preceding query can be parametrized and run as follows:
+The preceding query can be parameterized and run as follows:
[source,java,indent=0,subs="verbatim,quotes",role="primary"]
.Java
@@ -7286,7 +7286,7 @@ javadoc for more details.
==== Using `R2dbcTransactionManager`
The `R2dbcTransactionManager` class is a `ReactiveTransactionManager` implementation for
-single R2DBC datasources. It binds an R2DBC connection from the specified connection factory
+single R2DBC data sources. It binds an R2DBC connection from the specified connection factory
to the subscriber `Context`, potentially allowing for one subscriber connection for each
connection factory.
diff --git a/framework-docs/src/docs/asciidoc/integration/cache.adoc b/framework-docs/src/docs/asciidoc/integration/cache.adoc
index 765a1c65ad..af0c885f80 100644
--- a/framework-docs/src/docs/asciidoc/integration/cache.adoc
+++ b/framework-docs/src/docs/asciidoc/integration/cache.adoc
@@ -140,9 +140,9 @@ Since caches are essentially key-value stores, each invocation of a cached metho
needs to be translated into a suitable key for cache access. The caching abstraction
uses a simple `KeyGenerator` based on the following algorithm:
-* If no params are given, return `SimpleKey.EMPTY`.
-* If only one param is given, return that instance.
-* If more than one param is given, return a `SimpleKey` that contains all parameters.
+* If no parameters are given, return `SimpleKey.EMPTY`.
+* If only one parameter is given, return that instance.
+* If more than one parameter is given, return a `SimpleKey` that contains all parameters.
This approach works well for most use-cases, as long as parameters have natural keys
and implement valid `hashCode()` and `equals()` methods. If that is not the case,
diff --git a/framework-docs/src/docs/asciidoc/testing/spring-mvc-test-framework.adoc b/framework-docs/src/docs/asciidoc/testing/spring-mvc-test-framework.adoc
index 6d0648cd53..196212377f 100644
--- a/framework-docs/src/docs/asciidoc/testing/spring-mvc-test-framework.adoc
+++ b/framework-docs/src/docs/asciidoc/testing/spring-mvc-test-framework.adoc
@@ -961,7 +961,7 @@ leads to a number of additional challenges:
* Testing can become slow, since each test would need to ensure that the database is in
the correct state.
* Since our database needs to be in a specific state, we cannot run tests in parallel.
-* Performing assertions on such items as auto-generated ids, timestamps, and others can
+* Performing assertions on such items as auto-generated IDs, timestamps, and others can
be difficult.
These challenges do not mean that we should abandon end-to-end integration testing
diff --git a/framework-docs/src/docs/asciidoc/web/webflux-webclient.adoc b/framework-docs/src/docs/asciidoc/web/webflux-webclient.adoc
index c93e112b93..267a690d62 100644
--- a/framework-docs/src/docs/asciidoc/web/webflux-webclient.adoc
+++ b/framework-docs/src/docs/asciidoc/web/webflux-webclient.adoc
@@ -1196,7 +1196,7 @@ response individually, and instead wait for the combined result:
The above is merely one example. There are lots of other patterns and operators for putting
together a reactive pipeline that makes many remote calls, potentially some nested,
-inter-dependent, without ever blocking until the end.
+interdependent, without ever blocking until the end.
[NOTE]
====
diff --git a/framework-docs/src/docs/asciidoc/web/webmvc-view.adoc b/framework-docs/src/docs/asciidoc/web/webmvc-view.adoc
index 6e8ce83734..2b0b03c139 100644
--- a/framework-docs/src/docs/asciidoc/web/webmvc-view.adoc
+++ b/framework-docs/src/docs/asciidoc/web/webmvc-view.adoc
@@ -288,7 +288,7 @@ as the value for the `fieldType` parameter.
The parameters to any of the above macros have consistent meanings:
-* `path`: The name of the field to bind to (ie "command.name")
+* `path`: The name of the field to bind to (for example, "command.name")
* `options`: A `Map` of all the available values that can be selected from in the input
field. The keys to the map represent the values that are POSTed back from the form
and bound to the command object. Map objects stored against the keys are the labels
diff --git a/framework-docs/src/docs/asciidoc/web/webmvc.adoc b/framework-docs/src/docs/asciidoc/web/webmvc.adoc
index 4bf1d8f69f..fb8c2a12cc 100644
--- a/framework-docs/src/docs/asciidoc/web/webmvc.adoc
+++ b/framework-docs/src/docs/asciidoc/web/webmvc.adoc
@@ -978,7 +978,7 @@ The following table describes the properties `CookieLocaleResolver`:
| Property | Default | Description
| `cookieName`
-| classname + LOCALE
+| class name + LOCALE
| The name of the cookie
| `cookieMaxAge`
diff --git a/framework-docs/src/docs/asciidoc/web/websocket-intro.adoc b/framework-docs/src/docs/asciidoc/web/websocket-intro.adoc
index 9392a80a79..0c2b096858 100644
--- a/framework-docs/src/docs/asciidoc/web/websocket-intro.adoc
+++ b/framework-docs/src/docs/asciidoc/web/websocket-intro.adoc
@@ -84,7 +84,7 @@ In the absence of that, they need to come up with their own conventions.
== When to Use WebSockets
WebSockets can make a web page be dynamic and interactive. However, in many cases,
-a combination of Ajax and HTTP streaming or long polling can provide a simple and
+a combination of AJAX and HTTP streaming or long polling can provide a simple and
effective solution.
For example, news, mail, and social feeds need to update dynamically, but it may be