Enable Section Summary TOC for small pages

This commit is contained in:
Rob Winch
2023-05-04 15:35:05 +01:00
committed by rstoyanchev
parent 139cde47e2
commit 35229c8bff
62 changed files with 62 additions and 0 deletions
@@ -1,5 +1,6 @@
[[aop-api]]
= Spring AOP APIs
:page-section-summary-toc: 1
The previous chapter described the Spring's support for AOP with @AspectJ and schema-based
aspect definitions. In this chapter, we discuss the lower-level Spring AOP APIs. For common
@@ -1,5 +1,6 @@
[[aop-api-advisor]]
= The Advisor API in Spring
:page-section-summary-toc: 1
In Spring, an Advisor is an aspect that contains only a single advice object associated
with a pointcut expression.
@@ -1,5 +1,6 @@
[[aop-extensibility]]
= Defining New Advice Types
:page-section-summary-toc: 1
Spring AOP is designed to be extensible. While the interception implementation strategy
is presently used internally, it is possible to support arbitrary advice types in
@@ -1,5 +1,6 @@
[[aop-ataspectj]]
= @AspectJ support
:page-section-summary-toc: 1
@AspectJ refers to a style of declaring aspects as regular Java classes annotated with
annotations. The @AspectJ style was introduced by the
@@ -1,5 +1,6 @@
[[aop-introduction-proxies]]
= AOP Proxies
:page-section-summary-toc: 1
Spring AOP defaults to using standard JDK dynamic proxies for AOP proxies. This
enables any interface (or set of interfaces) to be proxied.
@@ -1,5 +1,6 @@
[[aop-mixing-styles]]
= Mixing Aspect Types
:page-section-summary-toc: 1
It is perfectly possible to mix @AspectJ style aspects by using the auto-proxying support,
schema-defined `<aop:aspect>` aspects, `<aop:advisor>` declared advisors, and even proxies
@@ -1,5 +1,6 @@
[[aop-resources]]
= Further Resources
:page-section-summary-toc: 1
More information on AspectJ can be found on the https://www.eclipse.org/aspectj[AspectJ website].
@@ -1,5 +1,6 @@
[[core.appendix]]
= Appendix
:page-section-summary-toc: 1
@@ -1,5 +1,6 @@
[[beans]]
= The IoC Container
:page-section-summary-toc: 1
This chapter covers Spring's Inversion of Control (IoC) container.
@@ -1,5 +1,6 @@
[[beans-dependencies]]
= Dependencies
:page-section-summary-toc: 1
A typical enterprise application does not consist of a single object (or bean in the
Spring parlance). Even the simplest application has a few objects that work together to
@@ -1,5 +1,6 @@
[[beans-java]]
= Java-based Container Configuration
:page-section-summary-toc: 1
This section covers how to use annotations in your Java code to configure the Spring
container. It includes the following topics:
@@ -1,5 +1,6 @@
[[expressions-language-ref]]
= Language Reference
:page-section-summary-toc: 1
This section describes how the Spring Expression Language works. It covers the following
topics:
@@ -1,5 +1,6 @@
[[spring-data-tier]]
= Data Access
:page-section-summary-toc: 1
This part of the reference documentation is concerned with data access and the
interaction between the data access layer and the business or service layer.
@@ -1,5 +1,6 @@
[[orm]]
= Object Relational Mapping (ORM) Data Access
:page-section-summary-toc: 1
This section covers data access when you use Object Relational Mapping (ORM).
@@ -1,5 +1,6 @@
[[transaction-resources]]
= Further Resources
:page-section-summary-toc: 1
For more information about the Spring Framework's transaction support, see:
@@ -1,5 +1,6 @@
[[transaction-solutions-to-common-problems]]
= Solutions to Common Problems
:page-section-summary-toc: 1
This section describes solutions to some common problems.
@@ -1,5 +1,6 @@
[[tx-decl-vs-prog]]
= Choosing Between Programmatic and Declarative Transaction Management
:page-section-summary-toc: 1
Programmatic transaction management is usually a good idea only if you have a small
number of transactional operations. For example, if you have a web application that
@@ -1,5 +1,6 @@
[[spring-integration]]
= Integration
:page-section-summary-toc: 1
This part of the reference documentation covers Spring Framework's integration with
a number of technologies.
@@ -1,5 +1,6 @@
[[cache]]
= Cache Abstraction
:page-section-summary-toc: 1
Since version 3.1, the Spring Framework provides support for transparently adding caching to
an existing Spring application. Similar to the xref:data-access/transaction.adoc[transaction]
@@ -1,5 +1,6 @@
[[cache-plug]]
= Plugging-in Different Back-end Caches
:page-section-summary-toc: 1
Clearly, there are plenty of caching products out there that you can use as a backing
store. For those that do not support JSR-107 you need to provide a `CacheManager` and a
@@ -1,5 +1,6 @@
[[cache-specific-config]]
= How can I Set the TTL/TTI/Eviction policy/XXX feature?
:page-section-summary-toc: 1
Directly through your cache provider. The cache abstraction is an abstraction,
not a cache implementation. The solution you use might support various data
@@ -1,5 +1,6 @@
[[jmx-resources]]
= Further Resources
:page-section-summary-toc: 1
This section contains links to further resources about JMX:
@@ -1,5 +1,6 @@
[[languages]]
= Language Support
:page-section-summary-toc: 1
@@ -1,5 +1,6 @@
[[groovy]]
= Apache Groovy
:page-section-summary-toc: 1
Groovy is a powerful, optionally typed, and dynamic language, with static-typing and static
compilation capabilities. It offers a concise syntax and integrates smoothly with any
@@ -1,5 +1,6 @@
[[kotlin]]
= Kotlin
:page-section-summary-toc: 1
https://kotlinlang.org[Kotlin] is a statically typed language that targets the JVM
(and other platforms) which allows writing concise and elegant code while providing
@@ -1,5 +1,6 @@
[[kotlin-classes-interfaces]]
= Classes and Interfaces
:page-section-summary-toc: 1
The Spring Framework supports various Kotlin constructs, such as instantiating Kotlin classes
through primary constructors, immutable classes data binding, and function optional parameters
@@ -1,5 +1,6 @@
[[kotlin-requirements]]
= Requirements
:page-section-summary-toc: 1
Spring Framework supports Kotlin 1.3+ and requires
https://search.maven.org/artifact/org.jetbrains.kotlin/kotlin-stdlib[`kotlin-stdlib`]
@@ -1,5 +1,6 @@
[[testing]]
= Testing
:page-section-summary-toc: 1
This chapter covers Spring's support for integration testing and best practices for unit
testing. The Spring team advocates test-driven development (TDD). The Spring team has
@@ -1,5 +1,6 @@
[[integration-testing-annotations]]
= Annotations
:page-section-summary-toc: 1
This section covers annotations that you can use when you test Spring applications.
It includes the following topics:
@@ -1,5 +1,6 @@
[[spring-testing-annotation-bootstrapwith]]
= `@BootstrapWith`
:page-section-summary-toc: 1
`@BootstrapWith` is a class-level annotation that you can use to configure how the Spring
TestContext Framework is bootstrapped. Specifically, you can use `@BootstrapWith` to
@@ -1,5 +1,6 @@
[[spring-testing-annotation-recordapplicationevents]]
= `@RecordApplicationEvents`
:page-section-summary-toc: 1
`@RecordApplicationEvents` is a class-level annotation that is used to instruct the
_Spring TestContext Framework_ to record all application events that are published in the
@@ -1,4 +1,5 @@
[[testing.appendix]]
= Appendix
:page-section-summary-toc: 1
@@ -1,5 +1,6 @@
[[testing-introduction]]
= Introduction to Spring Testing
:page-section-summary-toc: 1
Testing is an integral part of enterprise software development. This chapter focuses on
the value added by the IoC principle to xref:testing/unit.adoc[unit testing] and on the benefits
@@ -1,5 +1,6 @@
[[spring-mvc-test-framework]]
= MockMvc
:page-section-summary-toc: 1
The Spring MVC Test framework, also known as MockMvc, provides support for testing Spring
MVC applications. It performs full Spring MVC request handling but via mock request and
@@ -1,5 +1,6 @@
[[spring-mvc-test-server-filters]]
= Filter Registrations
:page-section-summary-toc: 1
When setting up a `MockMvc` instance, you can register one or more Servlet `Filter`
instances, as the following example shows:
@@ -1,5 +1,6 @@
[[spring-mvc-test-server-htmlunit]]
= HtmlUnit Integration
:page-section-summary-toc: 1
Spring provides integration between xref:testing/spring-mvc-test-framework/server.adoc[MockMvc] and
https://htmlunit.sourceforge.io/[HtmlUnit]. This simplifies performing end-to-end testing
@@ -1,5 +1,6 @@
[[spring-mvc-test-server-resources]]
= Further Examples
:page-section-summary-toc: 1
The framework's own tests include
{spring-framework-main-code}/spring-test/src/test/java/org/springframework/test/web/servlet/samples[
@@ -1,5 +1,6 @@
[[spring-mvc-test-server-static-imports]]
= Static Imports
:page-section-summary-toc: 1
When using MockMvc directly to perform requests, you'll need static imports for:
@@ -1,5 +1,6 @@
[[spring-mvc-test-server]]
= Overview
:page-section-summary-toc: 1
You can write plain unit tests for Spring MVC by instantiating a controller, injecting it
with dependencies, and calling its methods. However such tests do not verify request
@@ -1,5 +1,6 @@
[[testcontext-framework]]
= Spring TestContext Framework
:page-section-summary-toc: 1
The Spring TestContext Framework (located in the `org.springframework.test.context`
package) provides generic, annotation-driven unit and integration testing support that is
@@ -1,5 +1,6 @@
[[spring-web]]
= Web on Servlet Stack
:page-section-summary-toc: 1
This part of the documentation covers support for Servlet-stack web applications built on the
Servlet API and deployed to Servlet containers. Individual chapters include xref:web/webmvc.adoc#mvc[Spring MVC],
@@ -1,5 +1,6 @@
[[webflux-client]]
= WebClient
:page-section-summary-toc: 1
Spring WebFlux includes a client to perform HTTP requests with. `WebClient` has a
functional, fluent API based on Reactor, see xref:web-reactive.adoc#webflux-reactive-libraries[Reactive Libraries],
@@ -1,5 +1,6 @@
[[webflux-client-testing]]
= Testing
:page-section-summary-toc: 1
To test code that uses the `WebClient`, you can use a mock web server, such as the
https://github.com/square/okhttp#mockwebserver[OkHttp MockWebServer]. To see an example
@@ -2,6 +2,7 @@
:chapter: webflux
[[spring-webflux]]
= Spring WebFlux
:page-section-summary-toc: 1
The original web framework included in the Spring Framework, Spring Web MVC, was
purpose-built for the Servlet API and Servlet containers. The reactive-stack web framework,
@@ -1,5 +1,6 @@
[[webflux-ann-methods]]
= Handler Methods
:page-section-summary-toc: 1
[.small]#xref:web/webmvc/mvc-controller/ann-methods.adoc[See equivalent in the Servlet stack]#
@@ -1,5 +1,6 @@
[[webflux-ann-typeconversion]]
= Type Conversion
:page-section-summary-toc: 1
[.small]#xref:web/webmvc/mvc-controller/ann-methods/typeconversion.adoc[See equivalent in the Servlet stack]#
@@ -1,5 +1,6 @@
[[webflux-http2]]
= HTTP/2
:page-section-summary-toc: 1
[.small]#xref:web/webmvc/mvc-http2.adoc[See equivalent in the Servlet stack]#
@@ -1,5 +1,6 @@
[[webflux-web-security]]
= Web Security
:page-section-summary-toc: 1
[.small]#xref:web/webmvc/mvc-security.adoc[See equivalent in the Servlet stack]#
@@ -1,5 +1,6 @@
[[webflux-uri-building]]
= URI Links
:page-section-summary-toc: 1
[.small]#xref:web/webmvc/mvc-uri-building.adoc[See equivalent in the Servlet stack]#
@@ -1,5 +1,6 @@
[[mvc-view]]
= View Technologies
:page-section-summary-toc: 1
[.small]#xref:web/webflux-view.adoc[See equivalent in the Reactive stack]#
The use of view technologies in Spring MVC is pluggable. Whether you decide to use
@@ -1,5 +1,6 @@
[[mvc-view-thymeleaf]]
= Thymeleaf
:page-section-summary-toc: 1
[.small]#xref:web/webflux-view.adoc#webflux-view-thymeleaf[See equivalent in the Reactive stack]#
@@ -1,5 +1,6 @@
[[mvc-view-xml-marshalling]]
= XML Marshalling
:page-section-summary-toc: 1
The `MarshallingView` uses an XML `Marshaller` (defined in the `org.springframework.oxm`
package) to render the response content as XML. You can explicitly set the object to be
@@ -2,6 +2,7 @@
:chapter: mvc
[[spring-web-mvc]]
= Spring Web MVC
:page-section-summary-toc: 1
Spring Web MVC is the original web framework built on the Servlet API and has been included
in the Spring Framework from the very beginning. The formal name, "Spring Web MVC,"
@@ -1,5 +1,6 @@
[[mvc-config]]
= MVC Config
:page-section-summary-toc: 1
[.small]#xref:web/webflux/dispatcher-handler.adoc#webflux-framework-config[See equivalent in the Reactive stack]#
@@ -1,5 +1,6 @@
[[mvc-ann-methods]]
= Handler Methods
:page-section-summary-toc: 1
[.small]#xref:web/webflux/controller/ann-methods.adoc[See equivalent in the Reactive stack]#
@@ -1,5 +1,6 @@
[[mvc-http2]]
= HTTP/2
:page-section-summary-toc: 1
[.small]#xref:web/webflux/http2.adoc[See equivalent in the Reactive stack]#
@@ -1,5 +1,6 @@
[[mvc-web-security]]
= Web Security
:page-section-summary-toc: 1
[.small]#xref:web/webflux/security.adoc[See equivalent in the Reactive stack]#
@@ -1,5 +1,6 @@
[[mvc-servlet-config]]
= Web MVC Config
:page-section-summary-toc: 1
[.small]#xref:web/webflux/dispatcher-handler.adoc#webflux-framework-config[See equivalent in the Reactive stack]#
@@ -1,5 +1,6 @@
[[websocket]]
= WebSockets
:page-section-summary-toc: 1
[.small]#xref:web/webflux-websocket.adoc[See equivalent in the Reactive stack]#
This part of the reference documentation covers support for Servlet stack, WebSocket
@@ -1,5 +1,6 @@
[[websocket-stomp]]
= STOMP
:page-section-summary-toc: 1
The WebSocket protocol defines two types of messages (text and binary), but their
content is undefined. The protocol defines a mechanism for client and server to negotiate a
@@ -1,5 +1,6 @@
[[websocket-stomp-authorization]]
= Authorization
:page-section-summary-toc: 1
Spring Security provides
{docs-spring-security}/servlet/integrations/websocket.html#websocket-authorization[WebSocket sub-protocol authorization]
@@ -1,5 +1,6 @@
[[websocket-stomp-benefits]]
= Benefits
:page-section-summary-toc: 1
Using STOMP as a sub-protocol lets the Spring Framework and Spring Security
provide a richer programming model versus using raw WebSockets. The same point can be