Revise chomp and fold settings in reference documentation
This commit overrides the `chomp` and `fold` settings for spring-asciidoctor-backends on a per-block basis. Closes gh-30001
This commit is contained in:
parent
3ce71932c0
commit
6c3cb5d2e0
|
|
@ -1,5 +1,3 @@
|
||||||
:chomp: -packages
|
|
||||||
:fold: -imports
|
|
||||||
[[aop]]
|
[[aop]]
|
||||||
= Aspect Oriented Programming with Spring
|
= Aspect Oriented Programming with Spring
|
||||||
|
|
||||||
|
|
@ -291,7 +289,7 @@ context that points to a bean class that has the `@Aspect` annotation:
|
||||||
The second of the two examples shows the `NotVeryUsefulAspect` class definition,
|
The second of the two examples shows the `NotVeryUsefulAspect` class definition,
|
||||||
which is annotated with the `org.aspectj.lang.annotation.Aspect` annotation;
|
which is annotated with the `org.aspectj.lang.annotation.Aspect` annotation;
|
||||||
|
|
||||||
[source,java,indent=0,subs="verbatim,quotes",role="primary"]
|
[source,java,indent=0,subs="verbatim,quotes",role="primary",chomp="-packages"]
|
||||||
.Java
|
.Java
|
||||||
----
|
----
|
||||||
package org.xyz;
|
package org.xyz;
|
||||||
|
|
@ -302,7 +300,7 @@ which is annotated with the `org.aspectj.lang.annotation.Aspect` annotation;
|
||||||
public class NotVeryUsefulAspect {
|
public class NotVeryUsefulAspect {
|
||||||
}
|
}
|
||||||
----
|
----
|
||||||
[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary"]
|
[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary",chomp="-packages"]
|
||||||
.Kotlin
|
.Kotlin
|
||||||
----
|
----
|
||||||
package org.xyz
|
package org.xyz
|
||||||
|
|
@ -531,7 +529,7 @@ the application and particular sets of operations from within several aspects. W
|
||||||
recommend defining a `CommonPointcuts` aspect that captures common pointcut expressions
|
recommend defining a `CommonPointcuts` aspect that captures common pointcut expressions
|
||||||
for this purpose. Such an aspect typically resembles the following example:
|
for this purpose. Such an aspect typically resembles the following example:
|
||||||
|
|
||||||
[source,java,indent=0,subs="verbatim",role="primary"]
|
[source,java,indent=0,subs="verbatim",role="primary",chomp="-packages"]
|
||||||
.Java
|
.Java
|
||||||
----
|
----
|
||||||
package com.xyz.myapp;
|
package com.xyz.myapp;
|
||||||
|
|
@ -593,7 +591,7 @@ for this purpose. Such an aspect typically resembles the following example:
|
||||||
|
|
||||||
}
|
}
|
||||||
----
|
----
|
||||||
[source,kotlin,indent=0,subs="verbatim",role="secondary"]
|
[source,kotlin,indent=0,subs="verbatim",role="secondary",chomp="-packages"]
|
||||||
.Kotlin
|
.Kotlin
|
||||||
----
|
----
|
||||||
package com.xyz.myapp
|
package com.xyz.myapp
|
||||||
|
|
@ -2426,7 +2424,7 @@ The `arg-names` attribute accepts a comma-delimited list of parameter names.
|
||||||
The following slightly more involved example of the XSD-based approach shows
|
The following slightly more involved example of the XSD-based approach shows
|
||||||
some around advice used in conjunction with a number of strongly typed parameters:
|
some around advice used in conjunction with a number of strongly typed parameters:
|
||||||
|
|
||||||
[source,java,indent=0,subs="verbatim,quotes",role="primary"]
|
[source,java,indent=0,subs="verbatim,quotes",role="primary",chomp="-packages"]
|
||||||
.Java
|
.Java
|
||||||
----
|
----
|
||||||
package x.y.service;
|
package x.y.service;
|
||||||
|
|
@ -2443,7 +2441,7 @@ some around advice used in conjunction with a number of strongly typed parameter
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
----
|
----
|
||||||
[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary"]
|
[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary",chomp="-packages"]
|
||||||
.Kotlin
|
.Kotlin
|
||||||
----
|
----
|
||||||
package x.y.service
|
package x.y.service
|
||||||
|
|
@ -2466,7 +2464,7 @@ strongly-typed parameters, the first of which happens to be the join point used
|
||||||
proceed with the method call. The presence of this parameter is an indication that the
|
proceed with the method call. The presence of this parameter is an indication that the
|
||||||
`profile(..)` is to be used as `around` advice, as the following example shows:
|
`profile(..)` is to be used as `around` advice, as the following example shows:
|
||||||
|
|
||||||
[source,java,indent=0,subs="verbatim,quotes",role="primary"]
|
[source,java,indent=0,subs="verbatim,quotes",role="primary",chomp="-packages"]
|
||||||
.Java
|
.Java
|
||||||
----
|
----
|
||||||
package x.y;
|
package x.y;
|
||||||
|
|
@ -2488,7 +2486,7 @@ proceed with the method call. The presence of this parameter is an indication th
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
----
|
----
|
||||||
[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary"]
|
[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary",chomp="-packages"]
|
||||||
.Kotlin
|
.Kotlin
|
||||||
----
|
----
|
||||||
package x.y
|
package x.y
|
||||||
|
|
@ -3355,7 +3353,7 @@ The `@Configurable` annotation marks a class as being eligible for Spring-driven
|
||||||
configuration. In the simplest case, you can use purely it as a marker annotation, as the
|
configuration. In the simplest case, you can use purely it as a marker annotation, as the
|
||||||
following example shows:
|
following example shows:
|
||||||
|
|
||||||
[source,java,indent=0,subs="verbatim,quotes",role="primary"]
|
[source,java,indent=0,subs="verbatim,quotes",role="primary",chomp="-packages"]
|
||||||
.Java
|
.Java
|
||||||
----
|
----
|
||||||
package com.xyz.myapp.domain;
|
package com.xyz.myapp.domain;
|
||||||
|
|
@ -3367,7 +3365,7 @@ following example shows:
|
||||||
// ...
|
// ...
|
||||||
}
|
}
|
||||||
----
|
----
|
||||||
[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary"]
|
[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary",chomp="-packages"]
|
||||||
.Kotlin
|
.Kotlin
|
||||||
----
|
----
|
||||||
package com.xyz.myapp.domain
|
package com.xyz.myapp.domain
|
||||||
|
|
@ -3397,7 +3395,7 @@ is to omit the `id` attribute, as the following example shows:
|
||||||
If you want to explicitly specify the name of the prototype bean definition to use, you
|
If you want to explicitly specify the name of the prototype bean definition to use, you
|
||||||
can do so directly in the annotation, as the following example shows:
|
can do so directly in the annotation, as the following example shows:
|
||||||
|
|
||||||
[source,java,indent=0,subs="verbatim,quotes",role="primary"]
|
[source,java,indent=0,subs="verbatim,quotes",role="primary",chomp="-packages"]
|
||||||
.Java
|
.Java
|
||||||
----
|
----
|
||||||
package com.xyz.myapp.domain;
|
package com.xyz.myapp.domain;
|
||||||
|
|
@ -3409,7 +3407,7 @@ can do so directly in the annotation, as the following example shows:
|
||||||
// ...
|
// ...
|
||||||
}
|
}
|
||||||
----
|
----
|
||||||
[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary"]
|
[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary",chomp="-packages"]
|
||||||
.Kotlin
|
.Kotlin
|
||||||
----
|
----
|
||||||
package com.xyz.myapp.domain
|
package com.xyz.myapp.domain
|
||||||
|
|
@ -3740,7 +3738,7 @@ use @AspectJ with <<beans-java, Java configuration>>. Specifically, you can use
|
||||||
The following example shows the profiling aspect, which is not fancy.
|
The following example shows the profiling aspect, which is not fancy.
|
||||||
It is a time-based profiler that uses the @AspectJ-style of aspect declaration:
|
It is a time-based profiler that uses the @AspectJ-style of aspect declaration:
|
||||||
|
|
||||||
[source,java,indent=0,subs="verbatim",role="primary"]
|
[source,java,indent=0,subs="verbatim",role="primary",chomp="-packages"]
|
||||||
.Java
|
.Java
|
||||||
----
|
----
|
||||||
package foo;
|
package foo;
|
||||||
|
|
@ -3771,7 +3769,7 @@ It is a time-based profiler that uses the @AspectJ-style of aspect declaration:
|
||||||
public void methodsToBeProfiled(){}
|
public void methodsToBeProfiled(){}
|
||||||
}
|
}
|
||||||
----
|
----
|
||||||
[source,kotlin,indent=0,subs="verbatim",role="secondary"]
|
[source,kotlin,indent=0,subs="verbatim",role="secondary",chomp="-packages"]
|
||||||
.Kotlin
|
.Kotlin
|
||||||
----
|
----
|
||||||
package foo
|
package foo
|
||||||
|
|
@ -3860,7 +3858,7 @@ Now that all the required artifacts (the aspect, the `META-INF/aop.xml`
|
||||||
file, and the Spring configuration) are in place, we can create the following
|
file, and the Spring configuration) are in place, we can create the following
|
||||||
driver class with a `main(..)` method to demonstrate the LTW in action:
|
driver class with a `main(..)` method to demonstrate the LTW in action:
|
||||||
|
|
||||||
[source,java,indent=0,subs="verbatim,quotes",role="primary"]
|
[source,java,indent=0,subs="verbatim,quotes",role="primary",chomp="-packages"]
|
||||||
.Java
|
.Java
|
||||||
----
|
----
|
||||||
package foo;
|
package foo;
|
||||||
|
|
@ -3880,7 +3878,7 @@ driver class with a `main(..)` method to demonstrate the LTW in action:
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
----
|
----
|
||||||
[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary"]
|
[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary",chomp="-packages"]
|
||||||
.Kotlin
|
.Kotlin
|
||||||
----
|
----
|
||||||
package foo
|
package foo
|
||||||
|
|
@ -3935,7 +3933,7 @@ Since this LTW is effected by using full-blown AspectJ, we are not limited only
|
||||||
Spring beans. The following slight variation on the `Main` program yields the same
|
Spring beans. The following slight variation on the `Main` program yields the same
|
||||||
result:
|
result:
|
||||||
|
|
||||||
[source,java,indent=0,subs="verbatim,quotes",role="primary"]
|
[source,java,indent=0,subs="verbatim,quotes",role="primary",chomp="-packages"]
|
||||||
.Java
|
.Java
|
||||||
----
|
----
|
||||||
package foo;
|
package foo;
|
||||||
|
|
@ -3955,7 +3953,7 @@ result:
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
----
|
----
|
||||||
[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary"]
|
[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary",chomp="-packages"]
|
||||||
.Kotlin
|
.Kotlin
|
||||||
----
|
----
|
||||||
package foo
|
package foo
|
||||||
|
|
|
||||||
|
|
@ -123,7 +123,7 @@ easy to do in Spring. You do not actually have to do anything or know anything a
|
||||||
the Spring internals (or even about classes such as the `FieldRetrievingFactoryBean`).
|
the Spring internals (or even about classes such as the `FieldRetrievingFactoryBean`).
|
||||||
The following example enumeration shows how easy injecting an enum value is:
|
The following example enumeration shows how easy injecting an enum value is:
|
||||||
|
|
||||||
[source,java,indent=0,subs="verbatim,quotes",role="primary"]
|
[source,java,indent=0,subs="verbatim,quotes",role="primary",chomp="-packages"]
|
||||||
.Java
|
.Java
|
||||||
----
|
----
|
||||||
package jakarta.persistence;
|
package jakarta.persistence;
|
||||||
|
|
@ -134,7 +134,7 @@ The following example enumeration shows how easy injecting an enum value is:
|
||||||
EXTENDED
|
EXTENDED
|
||||||
}
|
}
|
||||||
----
|
----
|
||||||
[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary"]
|
[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary",chomp="-packages"]
|
||||||
.Kotlin
|
.Kotlin
|
||||||
----
|
----
|
||||||
package jakarta.persistence
|
package jakarta.persistence
|
||||||
|
|
@ -148,7 +148,7 @@ The following example enumeration shows how easy injecting an enum value is:
|
||||||
|
|
||||||
Now consider the following setter of type `PersistenceContextType` and the corresponding bean definition:
|
Now consider the following setter of type `PersistenceContextType` and the corresponding bean definition:
|
||||||
|
|
||||||
[source,java,indent=0,subs="verbatim,quotes",role="primary"]
|
[source,java,indent=0,subs="verbatim,quotes",role="primary",chomp="-packages"]
|
||||||
.Java
|
.Java
|
||||||
----
|
----
|
||||||
package example;
|
package example;
|
||||||
|
|
@ -162,7 +162,7 @@ Now consider the following setter of type `PersistenceContextType` and the corre
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
----
|
----
|
||||||
[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary"]
|
[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary",chomp="-packages"]
|
||||||
.Kotlin
|
.Kotlin
|
||||||
----
|
----
|
||||||
package example
|
package example
|
||||||
|
|
@ -796,7 +796,7 @@ element results in a single `SimpleDateFormat` bean definition). Spring features
|
||||||
number of convenience classes that support this scenario. In the following example, we
|
number of convenience classes that support this scenario. In the following example, we
|
||||||
use the `NamespaceHandlerSupport` class:
|
use the `NamespaceHandlerSupport` class:
|
||||||
|
|
||||||
[source,java,indent=0,subs="verbatim,quotes",role="primary"]
|
[source,java,indent=0,subs="verbatim,quotes",role="primary",chomp="-packages"]
|
||||||
.Java
|
.Java
|
||||||
----
|
----
|
||||||
package org.springframework.samples.xml;
|
package org.springframework.samples.xml;
|
||||||
|
|
@ -810,7 +810,7 @@ use the `NamespaceHandlerSupport` class:
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
----
|
----
|
||||||
[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary"]
|
[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary",chomp="-packages"]
|
||||||
.Kotlin
|
.Kotlin
|
||||||
----
|
----
|
||||||
package org.springframework.samples.xml
|
package org.springframework.samples.xml
|
||||||
|
|
@ -847,7 +847,7 @@ responsible for parsing one distinct top-level XML element defined in the schema
|
||||||
the parser, we' have access to the XML element (and thus to its subelements, too) so that
|
the parser, we' have access to the XML element (and thus to its subelements, too) so that
|
||||||
we can parse our custom XML content, as you can see in the following example:
|
we can parse our custom XML content, as you can see in the following example:
|
||||||
|
|
||||||
[source,java,indent=0,subs="verbatim,quotes",role="primary"]
|
[source,java,indent=0,subs="verbatim,quotes",role="primary",chomp="-packages"]
|
||||||
.Java
|
.Java
|
||||||
----
|
----
|
||||||
package org.springframework.samples.xml;
|
package org.springframework.samples.xml;
|
||||||
|
|
@ -884,7 +884,7 @@ the basic grunt work of creating a single `BeanDefinition`.
|
||||||
<2> We supply the `AbstractSingleBeanDefinitionParser` superclass with the type that our
|
<2> We supply the `AbstractSingleBeanDefinitionParser` superclass with the type that our
|
||||||
single `BeanDefinition` represents.
|
single `BeanDefinition` represents.
|
||||||
|
|
||||||
[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary"]
|
[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary",chomp="-packages"]
|
||||||
.Kotlin
|
.Kotlin
|
||||||
----
|
----
|
||||||
package org.springframework.samples.xml
|
package org.springframework.samples.xml
|
||||||
|
|
@ -1056,7 +1056,7 @@ setter method for the `components` property. This makes it hard (or rather impos
|
||||||
to configure a bean definition for the `Component` class by using setter injection.
|
to configure a bean definition for the `Component` class by using setter injection.
|
||||||
The following listing shows the `Component` class:
|
The following listing shows the `Component` class:
|
||||||
|
|
||||||
[source,java,indent=0,subs="verbatim,quotes",role="primary"]
|
[source,java,indent=0,subs="verbatim,quotes",role="primary",chomp="-packages"]
|
||||||
.Java
|
.Java
|
||||||
----
|
----
|
||||||
package com.foo;
|
package com.foo;
|
||||||
|
|
@ -1087,7 +1087,7 @@ The following listing shows the `Component` class:
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
----
|
----
|
||||||
[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary"]
|
[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary",chomp="-packages"]
|
||||||
.Kotlin
|
.Kotlin
|
||||||
----
|
----
|
||||||
package com.foo
|
package com.foo
|
||||||
|
|
@ -1114,7 +1114,7 @@ The typical solution to this issue is to create a custom `FactoryBean` that expo
|
||||||
setter property for the `components` property. The following listing shows such a custom
|
setter property for the `components` property. The following listing shows such a custom
|
||||||
`FactoryBean`:
|
`FactoryBean`:
|
||||||
|
|
||||||
[source,java,indent=0,subs="verbatim,quotes",role="primary"]
|
[source,java,indent=0,subs="verbatim,quotes",role="primary",chomp="-packages"]
|
||||||
.Java
|
.Java
|
||||||
----
|
----
|
||||||
package com.foo;
|
package com.foo;
|
||||||
|
|
@ -1154,7 +1154,7 @@ setter property for the `components` property. The following listing shows such
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
----
|
----
|
||||||
[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary"]
|
[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary",chomp="-packages"]
|
||||||
.Kotlin
|
.Kotlin
|
||||||
----
|
----
|
||||||
package com.foo
|
package com.foo
|
||||||
|
|
@ -1226,7 +1226,7 @@ listing shows:
|
||||||
Again following <<core.appendix.xsd-custom-introduction, the process described earlier>>,
|
Again following <<core.appendix.xsd-custom-introduction, the process described earlier>>,
|
||||||
we then create a custom `NamespaceHandler`:
|
we then create a custom `NamespaceHandler`:
|
||||||
|
|
||||||
[source,java,indent=0,subs="verbatim,quotes",role="primary"]
|
[source,java,indent=0,subs="verbatim,quotes",role="primary",chomp="-packages"]
|
||||||
.Java
|
.Java
|
||||||
----
|
----
|
||||||
package com.foo;
|
package com.foo;
|
||||||
|
|
@ -1240,7 +1240,7 @@ we then create a custom `NamespaceHandler`:
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
----
|
----
|
||||||
[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary"]
|
[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary",chomp="-packages"]
|
||||||
.Kotlin
|
.Kotlin
|
||||||
----
|
----
|
||||||
package com.foo
|
package com.foo
|
||||||
|
|
@ -1259,7 +1259,7 @@ Next up is the custom `BeanDefinitionParser`. Remember that we are creating
|
||||||
a `BeanDefinition` that describes a `ComponentFactoryBean`. The following
|
a `BeanDefinition` that describes a `ComponentFactoryBean`. The following
|
||||||
listing shows our custom `BeanDefinitionParser` implementation:
|
listing shows our custom `BeanDefinitionParser` implementation:
|
||||||
|
|
||||||
[source,java,indent=0,subs="verbatim,quotes",role="primary"]
|
[source,java,indent=0,subs="verbatim,quotes",role="primary",chomp="-packages"]
|
||||||
.Java
|
.Java
|
||||||
----
|
----
|
||||||
package com.foo;
|
package com.foo;
|
||||||
|
|
@ -1308,7 +1308,7 @@ listing shows our custom `BeanDefinitionParser` implementation:
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
----
|
----
|
||||||
[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary"]
|
[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary",chomp="-packages"]
|
||||||
.Kotlin
|
.Kotlin
|
||||||
----
|
----
|
||||||
package com.foo
|
package com.foo
|
||||||
|
|
@ -1403,7 +1403,7 @@ the named JCache for us. We can also modify the existing `BeanDefinition` for th
|
||||||
`'checkingAccountService'` so that it has a dependency on this new
|
`'checkingAccountService'` so that it has a dependency on this new
|
||||||
JCache-initializing `BeanDefinition`. The following listing shows our `JCacheInitializer`:
|
JCache-initializing `BeanDefinition`. The following listing shows our `JCacheInitializer`:
|
||||||
|
|
||||||
[source,java,indent=0,subs="verbatim,quotes",role="primary"]
|
[source,java,indent=0,subs="verbatim,quotes",role="primary",chomp="-packages"]
|
||||||
.Java
|
.Java
|
||||||
----
|
----
|
||||||
package com.foo;
|
package com.foo;
|
||||||
|
|
@ -1421,7 +1421,7 @@ JCache-initializing `BeanDefinition`. The following listing shows our `JCacheIni
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
----
|
----
|
||||||
[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary"]
|
[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary",chomp="-packages"]
|
||||||
.Kotlin
|
.Kotlin
|
||||||
----
|
----
|
||||||
package com.foo
|
package com.foo
|
||||||
|
|
@ -1453,7 +1453,7 @@ the XSD schema that describes the custom attribute, as follows:
|
||||||
|
|
||||||
Next, we need to create the associated `NamespaceHandler`, as follows:
|
Next, we need to create the associated `NamespaceHandler`, as follows:
|
||||||
|
|
||||||
[source,java,indent=0,subs="verbatim,quotes",role="primary"]
|
[source,java,indent=0,subs="verbatim,quotes",role="primary",chomp="-packages"]
|
||||||
.Java
|
.Java
|
||||||
----
|
----
|
||||||
package com.foo;
|
package com.foo;
|
||||||
|
|
@ -1469,7 +1469,7 @@ Next, we need to create the associated `NamespaceHandler`, as follows:
|
||||||
|
|
||||||
}
|
}
|
||||||
----
|
----
|
||||||
[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary"]
|
[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary",chomp="-packages"]
|
||||||
.Kotlin
|
.Kotlin
|
||||||
----
|
----
|
||||||
package com.foo
|
package com.foo
|
||||||
|
|
@ -1490,7 +1490,7 @@ Next, we need to create the parser. Note that, in this case, because we are goin
|
||||||
an XML attribute, we write a `BeanDefinitionDecorator` rather than a `BeanDefinitionParser`.
|
an XML attribute, we write a `BeanDefinitionDecorator` rather than a `BeanDefinitionParser`.
|
||||||
The following listing shows our `BeanDefinitionDecorator` implementation:
|
The following listing shows our `BeanDefinitionDecorator` implementation:
|
||||||
|
|
||||||
[source,java,indent=0,subs="verbatim,quotes",role="primary"]
|
[source,java,indent=0,subs="verbatim,quotes",role="primary",chomp="-packages"]
|
||||||
.Java
|
.Java
|
||||||
----
|
----
|
||||||
package com.foo;
|
package com.foo;
|
||||||
|
|
@ -1544,7 +1544,7 @@ The following listing shows our `BeanDefinitionDecorator` implementation:
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
----
|
----
|
||||||
[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary"]
|
[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary",chomp="-packages"]
|
||||||
.Kotlin
|
.Kotlin
|
||||||
----
|
----
|
||||||
package com.foo
|
package com.foo
|
||||||
|
|
|
||||||
|
|
@ -949,7 +949,7 @@ order in which the constructor arguments are defined in a bean definition is the
|
||||||
in which those arguments are supplied to the appropriate constructor when the bean is
|
in which those arguments are supplied to the appropriate constructor when the bean is
|
||||||
being instantiated. Consider the following class:
|
being instantiated. Consider the following class:
|
||||||
|
|
||||||
[source,java,indent=0,subs="verbatim,quotes",role="primary"]
|
[source,java,indent=0,subs="verbatim,quotes",role="primary",chomp="-packages"]
|
||||||
.Java
|
.Java
|
||||||
----
|
----
|
||||||
package x.y;
|
package x.y;
|
||||||
|
|
@ -961,7 +961,7 @@ being instantiated. Consider the following class:
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
----
|
----
|
||||||
[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary"]
|
[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary",chomp="-packages"]
|
||||||
.Kotlin
|
.Kotlin
|
||||||
----
|
----
|
||||||
package x.y
|
package x.y
|
||||||
|
|
@ -993,7 +993,7 @@ case with the preceding example). When a simple type is used, such as
|
||||||
`<value>true</value>`, Spring cannot determine the type of the value, and so cannot match
|
`<value>true</value>`, Spring cannot determine the type of the value, and so cannot match
|
||||||
by type without help. Consider the following class:
|
by type without help. Consider the following class:
|
||||||
|
|
||||||
[source,java,indent=0,subs="verbatim,quotes",role="primary"]
|
[source,java,indent=0,subs="verbatim,quotes",role="primary",chomp="-packages"]
|
||||||
.Java
|
.Java
|
||||||
----
|
----
|
||||||
package examples;
|
package examples;
|
||||||
|
|
@ -1012,7 +1012,7 @@ by type without help. Consider the following class:
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
----
|
----
|
||||||
[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary"]
|
[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary",chomp="-packages"]
|
||||||
.Kotlin
|
.Kotlin
|
||||||
----
|
----
|
||||||
package examples
|
package examples
|
||||||
|
|
@ -1077,7 +1077,7 @@ https://download.oracle.com/javase/8/docs/api/java/beans/ConstructorProperties.h
|
||||||
JDK annotation to explicitly name your constructor arguments. The sample class would
|
JDK annotation to explicitly name your constructor arguments. The sample class would
|
||||||
then have to look as follows:
|
then have to look as follows:
|
||||||
|
|
||||||
[source,java,indent=0,subs="verbatim,quotes",role="primary"]
|
[source,java,indent=0,subs="verbatim,quotes",role="primary",chomp="-packages"]
|
||||||
.Java
|
.Java
|
||||||
----
|
----
|
||||||
package examples;
|
package examples;
|
||||||
|
|
@ -1093,7 +1093,7 @@ then have to look as follows:
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
----
|
----
|
||||||
[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary"]
|
[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary",chomp="-packages"]
|
||||||
.Kotlin
|
.Kotlin
|
||||||
----
|
----
|
||||||
package examples
|
package examples
|
||||||
|
|
@ -2276,7 +2276,7 @@ and by <<beans-factory-client,making a `getBean("B")` call to the container>> as
|
||||||
typically new) bean B instance every time bean A needs it. The following example
|
typically new) bean B instance every time bean A needs it. The following example
|
||||||
shows this approach:
|
shows this approach:
|
||||||
|
|
||||||
[source,java,indent=0,subs="verbatim,quotes",role="primary"]
|
[source,java,indent=0,subs="verbatim,quotes",role="primary",chomp="-packages",fold="none"]
|
||||||
.Java
|
.Java
|
||||||
----
|
----
|
||||||
package fiona.apple;
|
package fiona.apple;
|
||||||
|
|
@ -2313,7 +2313,7 @@ shows this approach:
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
----
|
----
|
||||||
[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary"]
|
[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary",chomp="-packages",fold="none"]
|
||||||
.Kotlin
|
.Kotlin
|
||||||
----
|
----
|
||||||
package fiona.apple
|
package fiona.apple
|
||||||
|
|
@ -2386,7 +2386,7 @@ Spring container dynamically overrides the implementation of the `createCommand(
|
||||||
method. The `CommandManager` class does not have any Spring dependencies, as
|
method. The `CommandManager` class does not have any Spring dependencies, as
|
||||||
the reworked example shows:
|
the reworked example shows:
|
||||||
|
|
||||||
[source,java,indent=0,subs="verbatim,quotes",role="primary"]
|
[source,java,indent=0,subs="verbatim,quotes",role="primary",chomp="-packages",fold="none"]
|
||||||
.Java
|
.Java
|
||||||
----
|
----
|
||||||
package fiona.apple;
|
package fiona.apple;
|
||||||
|
|
@ -2407,7 +2407,7 @@ the reworked example shows:
|
||||||
protected abstract Command createCommand();
|
protected abstract Command createCommand();
|
||||||
}
|
}
|
||||||
----
|
----
|
||||||
[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary"]
|
[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary",chomp="-packages",fold="none"]
|
||||||
.Kotlin
|
.Kotlin
|
||||||
----
|
----
|
||||||
package fiona.apple
|
package fiona.apple
|
||||||
|
|
@ -4218,7 +4218,7 @@ it is created by the container and prints the resulting string to the system con
|
||||||
|
|
||||||
The following listing shows the custom `BeanPostProcessor` implementation class definition:
|
The following listing shows the custom `BeanPostProcessor` implementation class definition:
|
||||||
|
|
||||||
[source,java,indent=0,subs="verbatim,quotes",role="primary"]
|
[source,java,indent=0,subs="verbatim,quotes",role="primary",chomp="-packages"]
|
||||||
.Java
|
.Java
|
||||||
----
|
----
|
||||||
package scripting;
|
package scripting;
|
||||||
|
|
@ -4238,7 +4238,7 @@ The following listing shows the custom `BeanPostProcessor` implementation class
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
----
|
----
|
||||||
[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary"]
|
[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary",chomp="-packages"]
|
||||||
.Kotlin
|
.Kotlin
|
||||||
----
|
----
|
||||||
package scripting
|
package scripting
|
||||||
|
|
|
||||||
|
|
@ -1978,7 +1978,7 @@ The definition of `TemplateParserContext` follows:
|
||||||
|
|
||||||
This section lists the classes used in the examples throughout this chapter.
|
This section lists the classes used in the examples throughout this chapter.
|
||||||
|
|
||||||
[source,java,indent=0,subs="verbatim,quotes",role="primary"]
|
[source,java,indent=0,subs="verbatim,quotes",role="primary",chomp="-packages"]
|
||||||
.Inventor.Java
|
.Inventor.Java
|
||||||
----
|
----
|
||||||
package org.spring.samples.spel.inventor;
|
package org.spring.samples.spel.inventor;
|
||||||
|
|
@ -2051,7 +2051,7 @@ This section lists the classes used in the examples throughout this chapter.
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
----
|
----
|
||||||
[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary"]
|
[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary",chomp="-packages"]
|
||||||
.Inventor.kt
|
.Inventor.kt
|
||||||
----
|
----
|
||||||
package org.spring.samples.spel.inventor
|
package org.spring.samples.spel.inventor
|
||||||
|
|
@ -2064,7 +2064,7 @@ This section lists the classes used in the examples throughout this chapter.
|
||||||
var placeOfBirth: PlaceOfBirth? = null)
|
var placeOfBirth: PlaceOfBirth? = null)
|
||||||
----
|
----
|
||||||
|
|
||||||
[source,java,indent=0,subs="verbatim,quotes",role="primary"]
|
[source,java,indent=0,subs="verbatim,quotes",role="primary",chomp="-packages"]
|
||||||
.PlaceOfBirth.java
|
.PlaceOfBirth.java
|
||||||
----
|
----
|
||||||
package org.spring.samples.spel.inventor;
|
package org.spring.samples.spel.inventor;
|
||||||
|
|
@ -2100,7 +2100,7 @@ This section lists the classes used in the examples throughout this chapter.
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
----
|
----
|
||||||
[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary"]
|
[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary",chomp="-packages"]
|
||||||
.PlaceOfBirth.kt
|
.PlaceOfBirth.kt
|
||||||
----
|
----
|
||||||
package org.spring.samples.spel.inventor
|
package org.spring.samples.spel.inventor
|
||||||
|
|
@ -2108,7 +2108,7 @@ This section lists the classes used in the examples throughout this chapter.
|
||||||
class PlaceOfBirth(var city: String, var country: String? = null) {
|
class PlaceOfBirth(var city: String, var country: String? = null) {
|
||||||
----
|
----
|
||||||
|
|
||||||
[source,java,indent=0,subs="verbatim,quotes",role="primary"]
|
[source,java,indent=0,subs="verbatim,quotes",role="primary",chomp="-packages"]
|
||||||
.Society.java
|
.Society.java
|
||||||
----
|
----
|
||||||
package org.spring.samples.spel.inventor;
|
package org.spring.samples.spel.inventor;
|
||||||
|
|
@ -2151,7 +2151,7 @@ This section lists the classes used in the examples throughout this chapter.
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
----
|
----
|
||||||
[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary"]
|
[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary",chomp="-packages"]
|
||||||
.Society.kt
|
.Society.kt
|
||||||
----
|
----
|
||||||
package org.spring.samples.spel.inventor
|
package org.spring.samples.spel.inventor
|
||||||
|
|
|
||||||
|
|
@ -640,7 +640,7 @@ support for additional `PropertyEditor` instances to an `ApplicationContext`.
|
||||||
Consider the following example, which defines a user class called `ExoticType` and
|
Consider the following example, which defines a user class called `ExoticType` and
|
||||||
another class called `DependsOnExoticType`, which needs `ExoticType` set as a property:
|
another class called `DependsOnExoticType`, which needs `ExoticType` set as a property:
|
||||||
|
|
||||||
[source,java,indent=0,subs="verbatim,quotes",role="primary"]
|
[source,java,indent=0,subs="verbatim,quotes",role="primary",chomp="-packages"]
|
||||||
.Java
|
.Java
|
||||||
----
|
----
|
||||||
package example;
|
package example;
|
||||||
|
|
@ -663,7 +663,7 @@ another class called `DependsOnExoticType`, which needs `ExoticType` set as a pr
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
----
|
----
|
||||||
[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary"]
|
[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary",chomp="-packages"]
|
||||||
.Kotlin
|
.Kotlin
|
||||||
----
|
----
|
||||||
package example
|
package example
|
||||||
|
|
@ -689,7 +689,7 @@ string, which a `PropertyEditor` converts into an actual
|
||||||
|
|
||||||
The `PropertyEditor` implementation could look similar to the following:
|
The `PropertyEditor` implementation could look similar to the following:
|
||||||
|
|
||||||
[source,java,indent=0,subs="verbatim,quotes",role="primary"]
|
[source,java,indent=0,subs="verbatim,quotes",role="primary",chomp="-packages"]
|
||||||
.Java
|
.Java
|
||||||
----
|
----
|
||||||
package example;
|
package example;
|
||||||
|
|
@ -704,7 +704,7 @@ The `PropertyEditor` implementation could look similar to the following:
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
----
|
----
|
||||||
[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary"]
|
[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary",chomp="-packages"]
|
||||||
.Kotlin
|
.Kotlin
|
||||||
----
|
----
|
||||||
package example
|
package example
|
||||||
|
|
@ -754,7 +754,7 @@ instances for each bean creation attempt.
|
||||||
|
|
||||||
The following example shows how to create your own `PropertyEditorRegistrar` implementation:
|
The following example shows how to create your own `PropertyEditorRegistrar` implementation:
|
||||||
|
|
||||||
[source,java,indent=0,subs="verbatim,quotes",role="primary"]
|
[source,java,indent=0,subs="verbatim,quotes",role="primary",chomp="-packages"]
|
||||||
.Java
|
.Java
|
||||||
----
|
----
|
||||||
package com.foo.editors.spring;
|
package com.foo.editors.spring;
|
||||||
|
|
@ -770,7 +770,7 @@ The following example shows how to create your own `PropertyEditorRegistrar` imp
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
----
|
----
|
||||||
[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary"]
|
[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary",chomp="-packages"]
|
||||||
.Kotlin
|
.Kotlin
|
||||||
----
|
----
|
||||||
package com.foo.editors.spring
|
package com.foo.editors.spring
|
||||||
|
|
@ -878,7 +878,7 @@ where type conversion is needed.
|
||||||
The SPI to implement type conversion logic is simple and strongly typed, as the following
|
The SPI to implement type conversion logic is simple and strongly typed, as the following
|
||||||
interface definition shows:
|
interface definition shows:
|
||||||
|
|
||||||
[source,java,indent=0,subs="verbatim,quotes"]
|
[source,java,indent=0,subs="verbatim,quotes",chomp="-packages"]
|
||||||
----
|
----
|
||||||
package org.springframework.core.convert.converter;
|
package org.springframework.core.convert.converter;
|
||||||
|
|
||||||
|
|
@ -903,7 +903,7 @@ Several converter implementations are provided in the `core.convert.support` pac
|
||||||
a convenience. These include converters from strings to numbers and other common types.
|
a convenience. These include converters from strings to numbers and other common types.
|
||||||
The following listing shows the `StringToInteger` class, which is a typical `Converter` implementation:
|
The following listing shows the `StringToInteger` class, which is a typical `Converter` implementation:
|
||||||
|
|
||||||
[source,java,indent=0,subs="verbatim,quotes"]
|
[source,java,indent=0,subs="verbatim,quotes",chomp="-packages"]
|
||||||
----
|
----
|
||||||
package org.springframework.core.convert.support;
|
package org.springframework.core.convert.support;
|
||||||
|
|
||||||
|
|
@ -924,7 +924,7 @@ When you need to centralize the conversion logic for an entire class hierarchy
|
||||||
(for example, when converting from `String` to `Enum` objects), you can implement
|
(for example, when converting from `String` to `Enum` objects), you can implement
|
||||||
`ConverterFactory`, as the following example shows:
|
`ConverterFactory`, as the following example shows:
|
||||||
|
|
||||||
[source,java,indent=0,subs="verbatim,quotes"]
|
[source,java,indent=0,subs="verbatim,quotes",chomp="-packages"]
|
||||||
----
|
----
|
||||||
package org.springframework.core.convert.converter;
|
package org.springframework.core.convert.converter;
|
||||||
|
|
||||||
|
|
@ -940,7 +940,7 @@ where T is a subclass of R.
|
||||||
|
|
||||||
Consider the `StringToEnumConverterFactory` as an example:
|
Consider the `StringToEnumConverterFactory` as an example:
|
||||||
|
|
||||||
[source,java,indent=0,subs="verbatim,quotes"]
|
[source,java,indent=0,subs="verbatim,quotes",chomp="-packages"]
|
||||||
----
|
----
|
||||||
package org.springframework.core.convert.support;
|
package org.springframework.core.convert.support;
|
||||||
|
|
||||||
|
|
@ -977,7 +977,7 @@ context that you can use when you implement your conversion logic. Such context
|
||||||
type conversion be driven by a field annotation or by generic information declared on a
|
type conversion be driven by a field annotation or by generic information declared on a
|
||||||
field signature. The following listing shows the interface definition of `GenericConverter`:
|
field signature. The following listing shows the interface definition of `GenericConverter`:
|
||||||
|
|
||||||
[source,java,indent=0,subs="verbatim,quotes"]
|
[source,java,indent=0,subs="verbatim,quotes",chomp="-packages"]
|
||||||
----
|
----
|
||||||
package org.springframework.core.convert.converter;
|
package org.springframework.core.convert.converter;
|
||||||
|
|
||||||
|
|
@ -1041,7 +1041,7 @@ might match only if the target entity type declares a static finder method (for
|
||||||
`ConversionService` defines a unified API for executing type conversion logic at
|
`ConversionService` defines a unified API for executing type conversion logic at
|
||||||
runtime. Converters are often run behind the following facade interface:
|
runtime. Converters are often run behind the following facade interface:
|
||||||
|
|
||||||
[source,java,indent=0,subs="verbatim,quotes"]
|
[source,java,indent=0,subs="verbatim,quotes",chomp="-packages"]
|
||||||
----
|
----
|
||||||
package org.springframework.core.convert;
|
package org.springframework.core.convert;
|
||||||
|
|
||||||
|
|
@ -1225,7 +1225,7 @@ provides a unified type conversion API for both SPIs.
|
||||||
The `Formatter` SPI to implement field formatting logic is simple and strongly typed. The
|
The `Formatter` SPI to implement field formatting logic is simple and strongly typed. The
|
||||||
following listing shows the `Formatter` interface definition:
|
following listing shows the `Formatter` interface definition:
|
||||||
|
|
||||||
[source,java,indent=0,subs="verbatim,quotes"]
|
[source,java,indent=0,subs="verbatim,quotes",chomp="-packages"]
|
||||||
----
|
----
|
||||||
package org.springframework.format;
|
package org.springframework.format;
|
||||||
|
|
||||||
|
|
@ -1270,7 +1270,7 @@ a `java.text.DateFormat`.
|
||||||
|
|
||||||
The following `DateFormatter` is an example `Formatter` implementation:
|
The following `DateFormatter` is an example `Formatter` implementation:
|
||||||
|
|
||||||
[source,java,indent=0,subs="verbatim,quotes",role="primary"]
|
[source,java,indent=0,subs="verbatim,quotes",role="primary",chomp="-packages"]
|
||||||
.Java
|
.Java
|
||||||
----
|
----
|
||||||
package org.springframework.format.datetime;
|
package org.springframework.format.datetime;
|
||||||
|
|
@ -1304,7 +1304,7 @@ The following `DateFormatter` is an example `Formatter` implementation:
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
----
|
----
|
||||||
[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary"]
|
[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary",chomp="-packages"]
|
||||||
.Kotlin
|
.Kotlin
|
||||||
----
|
----
|
||||||
class DateFormatter(private val pattern: String) : Formatter<Date> {
|
class DateFormatter(private val pattern: String) : Formatter<Date> {
|
||||||
|
|
@ -1336,7 +1336,7 @@ Field formatting can be configured by field type or annotation. To bind
|
||||||
an annotation to a `Formatter`, implement `AnnotationFormatterFactory`. The following
|
an annotation to a `Formatter`, implement `AnnotationFormatterFactory`. The following
|
||||||
listing shows the definition of the `AnnotationFormatterFactory` interface:
|
listing shows the definition of the `AnnotationFormatterFactory` interface:
|
||||||
|
|
||||||
[source,java,indent=0,subs="verbatim,quotes"]
|
[source,java,indent=0,subs="verbatim,quotes",chomp="-packages"]
|
||||||
----
|
----
|
||||||
package org.springframework.format;
|
package org.springframework.format;
|
||||||
|
|
||||||
|
|
@ -1490,7 +1490,7 @@ for use with Spring's `DataBinder` and the Spring Expression Language (SpEL).
|
||||||
|
|
||||||
The following listing shows the `FormatterRegistry` SPI:
|
The following listing shows the `FormatterRegistry` SPI:
|
||||||
|
|
||||||
[source,java,indent=0,subs="verbatim,quotes"]
|
[source,java,indent=0,subs="verbatim,quotes",chomp="-packages"]
|
||||||
----
|
----
|
||||||
package org.springframework.format;
|
package org.springframework.format;
|
||||||
|
|
||||||
|
|
@ -1526,7 +1526,7 @@ these rules once, and they are applied whenever formatting is needed.
|
||||||
`FormatterRegistrar` is an SPI for registering formatters and converters through the
|
`FormatterRegistrar` is an SPI for registering formatters and converters through the
|
||||||
FormatterRegistry. The following listing shows its interface definition:
|
FormatterRegistry. The following listing shows its interface definition:
|
||||||
|
|
||||||
[source,java,indent=0,subs="verbatim,quotes"]
|
[source,java,indent=0,subs="verbatim,quotes",chomp="-packages"]
|
||||||
----
|
----
|
||||||
package org.springframework.format;
|
package org.springframework.format;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -622,7 +622,7 @@ transactions being created and then rolled back in response to the
|
||||||
`UnsupportedOperationException` instance. The following listing shows the `FooService`
|
`UnsupportedOperationException` instance. The following listing shows the `FooService`
|
||||||
interface:
|
interface:
|
||||||
|
|
||||||
[source,java,indent=0,subs="verbatim,quotes",role="primary"]
|
[source,java,indent=0,subs="verbatim,quotes",role="primary",chomp="-packages"]
|
||||||
.Java
|
.Java
|
||||||
----
|
----
|
||||||
// the service interface that we want to make transactional
|
// the service interface that we want to make transactional
|
||||||
|
|
@ -641,7 +641,7 @@ interface:
|
||||||
|
|
||||||
}
|
}
|
||||||
----
|
----
|
||||||
[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary"]
|
[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary",chomp="-packages"]
|
||||||
.Kotlin
|
.Kotlin
|
||||||
----
|
----
|
||||||
// the service interface that we want to make transactional
|
// the service interface that we want to make transactional
|
||||||
|
|
@ -662,7 +662,7 @@ interface:
|
||||||
|
|
||||||
The following example shows an implementation of the preceding interface:
|
The following example shows an implementation of the preceding interface:
|
||||||
|
|
||||||
[source,java,indent=0,subs="verbatim,quotes",role="primary"]
|
[source,java,indent=0,subs="verbatim,quotes",role="primary",chomp="-packages"]
|
||||||
.Java
|
.Java
|
||||||
----
|
----
|
||||||
package x.y.service;
|
package x.y.service;
|
||||||
|
|
@ -690,7 +690,7 @@ The following example shows an implementation of the preceding interface:
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
----
|
----
|
||||||
[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary"]
|
[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary",chomp="-packages"]
|
||||||
.Kotlin
|
.Kotlin
|
||||||
----
|
----
|
||||||
package x.y.service
|
package x.y.service
|
||||||
|
|
@ -893,7 +893,7 @@ return type is reactive.
|
||||||
The following listing shows a modified version of the previously used `FooService`, but
|
The following listing shows a modified version of the previously used `FooService`, but
|
||||||
this time the code uses reactive types:
|
this time the code uses reactive types:
|
||||||
|
|
||||||
[source,java,indent=0,subs="verbatim,quotes",role="primary"]
|
[source,java,indent=0,subs="verbatim,quotes",role="primary",chomp="-packages"]
|
||||||
.Java
|
.Java
|
||||||
----
|
----
|
||||||
// the reactive service interface that we want to make transactional
|
// the reactive service interface that we want to make transactional
|
||||||
|
|
@ -912,7 +912,7 @@ this time the code uses reactive types:
|
||||||
|
|
||||||
}
|
}
|
||||||
----
|
----
|
||||||
[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary"]
|
[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary",chomp="-packages"]
|
||||||
.Kotlin
|
.Kotlin
|
||||||
----
|
----
|
||||||
// the reactive service interface that we want to make transactional
|
// the reactive service interface that we want to make transactional
|
||||||
|
|
@ -933,7 +933,7 @@ this time the code uses reactive types:
|
||||||
|
|
||||||
The following example shows an implementation of the preceding interface:
|
The following example shows an implementation of the preceding interface:
|
||||||
|
|
||||||
[source,java,indent=0,subs="verbatim,quotes",role="primary"]
|
[source,java,indent=0,subs="verbatim,quotes",role="primary",chomp="-packages"]
|
||||||
.Java
|
.Java
|
||||||
----
|
----
|
||||||
package x.y.service;
|
package x.y.service;
|
||||||
|
|
@ -961,7 +961,7 @@ The following example shows an implementation of the preceding interface:
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
----
|
----
|
||||||
[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary"]
|
[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary",chomp="-packages"]
|
||||||
.Kotlin
|
.Kotlin
|
||||||
----
|
----
|
||||||
package x.y.service
|
package x.y.service
|
||||||
|
|
@ -2028,7 +2028,7 @@ configuration and AOP in general.
|
||||||
|
|
||||||
The following code shows the simple profiling aspect discussed earlier:
|
The following code shows the simple profiling aspect discussed earlier:
|
||||||
|
|
||||||
[source,java,indent=0,subs="verbatim,quotes",role="primary"]
|
[source,java,indent=0,subs="verbatim,quotes",role="primary",chomp="-packages"]
|
||||||
.Java
|
.Java
|
||||||
----
|
----
|
||||||
package x.y;
|
package x.y;
|
||||||
|
|
@ -2065,7 +2065,7 @@ The following code shows the simple profiling aspect discussed earlier:
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
----
|
----
|
||||||
[source,kotlin,indent=0,subs="verbatim",role="secondary"]
|
[source,kotlin,indent=0,subs="verbatim",role="secondary",chomp="-packages"]
|
||||||
.Kotlin
|
.Kotlin
|
||||||
----
|
----
|
||||||
package x.y
|
package x.y
|
||||||
|
|
|
||||||
|
|
@ -582,7 +582,7 @@ a similar contract to the JMS `MessageListener` interface but also gives the mes
|
||||||
method access to the JMS `Session` from which the `Message` was received.
|
method access to the JMS `Session` from which the `Message` was received.
|
||||||
The following listing shows the definition of the `SessionAwareMessageListener` interface:
|
The following listing shows the definition of the `SessionAwareMessageListener` interface:
|
||||||
|
|
||||||
[source,java,indent=0,subs="verbatim,quotes"]
|
[source,java,indent=0,subs="verbatim,quotes",chomp="-packages"]
|
||||||
----
|
----
|
||||||
package org.springframework.jms.listener;
|
package org.springframework.jms.listener;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -31,7 +31,7 @@ The core class in Spring's JMX framework is the `MBeanExporter`. This class is
|
||||||
responsible for taking your Spring beans and registering them with a JMX `MBeanServer`.
|
responsible for taking your Spring beans and registering them with a JMX `MBeanServer`.
|
||||||
For example, consider the following class:
|
For example, consider the following class:
|
||||||
|
|
||||||
[source,java,indent=0,subs="verbatim,quotes"]
|
[source,java,indent=0,subs="verbatim,quotes",chomp="-packages",chomp="-packages"]
|
||||||
----
|
----
|
||||||
package org.springframework.jmx;
|
package org.springframework.jmx;
|
||||||
|
|
||||||
|
|
@ -358,7 +358,7 @@ an operation or an attribute.
|
||||||
The following example shows the annotated version of the `JmxTestBean` class that we
|
The following example shows the annotated version of the `JmxTestBean` class that we
|
||||||
used in <<jmx-exporting-mbeanserver>>:
|
used in <<jmx-exporting-mbeanserver>>:
|
||||||
|
|
||||||
[source,java,indent=0,subs="verbatim,quotes"]
|
[source,java,indent=0,subs="verbatim,quotes",chomp="-packages"]
|
||||||
----
|
----
|
||||||
package org.springframework.jmx;
|
package org.springframework.jmx;
|
||||||
|
|
||||||
|
|
@ -1067,7 +1067,7 @@ example, consider the scenario where one would like to be informed (through a
|
||||||
`Notification`) each and every time an attribute of a target MBean changes. The following
|
`Notification`) each and every time an attribute of a target MBean changes. The following
|
||||||
example writes notifications to the console:
|
example writes notifications to the console:
|
||||||
|
|
||||||
[source,java,indent=0,subs="verbatim,quotes"]
|
[source,java,indent=0,subs="verbatim,quotes",chomp="-packages"]
|
||||||
----
|
----
|
||||||
package com.example;
|
package com.example;
|
||||||
|
|
||||||
|
|
@ -1317,7 +1317,7 @@ published, and invoke the `sendNotification(Notification)` on the
|
||||||
In the following example, exported instances of the `JmxTestBean` publish a
|
In the following example, exported instances of the `JmxTestBean` publish a
|
||||||
`NotificationEvent` every time the `add(int, int)` operation is invoked:
|
`NotificationEvent` every time the `add(int, int)` operation is invoked:
|
||||||
|
|
||||||
[source,java,indent=0,subs="verbatim,quotes"]
|
[source,java,indent=0,subs="verbatim,quotes",chomp="-packages"]
|
||||||
----
|
----
|
||||||
package org.springframework.jmx;
|
package org.springframework.jmx;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -816,8 +816,7 @@ its properties from the job data mapped to properties of the job instance. So, i
|
||||||
the `ExampleJob` contains a bean property named `timeout`, and the `JobDetail`
|
the `ExampleJob` contains a bean property named `timeout`, and the `JobDetail`
|
||||||
has it applied automatically:
|
has it applied automatically:
|
||||||
|
|
||||||
[source,java,indent=0]
|
[source,java,indent=0,subs="verbatim,quotes",chomp="-packages"]
|
||||||
[subs="verbatim"]
|
|
||||||
----
|
----
|
||||||
package example;
|
package example;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -33,7 +33,7 @@ implement. Note that this interface is defined in plain Java. Dependent objects
|
||||||
are injected with a reference to the `Messenger` do not know that the underlying
|
are injected with a reference to the `Messenger` do not know that the underlying
|
||||||
implementation is a Groovy script. The following listing shows the `Messenger` interface:
|
implementation is a Groovy script. The following listing shows the `Messenger` interface:
|
||||||
|
|
||||||
[source,java,indent=0,subs="verbatim,quotes"]
|
[source,java,indent=0,subs="verbatim,quotes",chomp="-packages"]
|
||||||
----
|
----
|
||||||
package org.springframework.scripting;
|
package org.springframework.scripting;
|
||||||
|
|
||||||
|
|
@ -45,7 +45,7 @@ implementation is a Groovy script. The following listing shows the `Messenger` i
|
||||||
|
|
||||||
The following example defines a class that has a dependency on the `Messenger` interface:
|
The following example defines a class that has a dependency on the `Messenger` interface:
|
||||||
|
|
||||||
[source,java,indent=0,subs="verbatim,quotes"]
|
[source,java,indent=0,subs="verbatim,quotes",chomp="-packages"]
|
||||||
----
|
----
|
||||||
package org.springframework.scripting;
|
package org.springframework.scripting;
|
||||||
|
|
||||||
|
|
@ -65,7 +65,7 @@ The following example defines a class that has a dependency on the `Messenger` i
|
||||||
|
|
||||||
The following example implements the `Messenger` interface in Groovy:
|
The following example implements the `Messenger` interface in Groovy:
|
||||||
|
|
||||||
[source,groovy,indent=0,subs="verbatim,quotes"]
|
[source,groovy,indent=0,subs="verbatim,quotes",chomp="-packages",fold="none"]
|
||||||
----
|
----
|
||||||
package org.springframework.scripting.groovy
|
package org.springframework.scripting.groovy
|
||||||
|
|
||||||
|
|
@ -275,7 +275,7 @@ surrounded by quotation marks. The following listing shows the changes that you
|
||||||
(the developer) should make to the `Messenger.groovy` source file when the
|
(the developer) should make to the `Messenger.groovy` source file when the
|
||||||
execution of the program is paused:
|
execution of the program is paused:
|
||||||
|
|
||||||
[source,groovy,indent=0,subs="verbatim,quotes"]
|
[source,groovy,indent=0,subs="verbatim,quotes",chomp="-packages"]
|
||||||
----
|
----
|
||||||
package org.springframework.scripting
|
package org.springframework.scripting
|
||||||
|
|
||||||
|
|
@ -362,7 +362,7 @@ constructors and properties 100% clear, the following mixture of code and config
|
||||||
does not work:
|
does not work:
|
||||||
|
|
||||||
.An approach that cannot work
|
.An approach that cannot work
|
||||||
[source,groovy,indent=0,subs="verbatim,quotes"]
|
[source,groovy,indent=0,subs="verbatim,quotes",chomp="-packages"]
|
||||||
----
|
----
|
||||||
package org.springframework.scripting.groovy
|
package org.springframework.scripting.groovy
|
||||||
|
|
||||||
|
|
@ -419,7 +419,7 @@ If you have read this chapter straight from the top, you have already
|
||||||
<<dynamic-language-a-first-example, seen an example>> of a Groovy-dynamic-language-backed
|
<<dynamic-language-a-first-example, seen an example>> of a Groovy-dynamic-language-backed
|
||||||
bean. Now consider another example (again using an example from the Spring test suite):
|
bean. Now consider another example (again using an example from the Spring test suite):
|
||||||
|
|
||||||
[source,java,indent=0,subs="verbatim,quotes"]
|
[source,java,indent=0,subs="verbatim,quotes",chomp="-packages"]
|
||||||
----
|
----
|
||||||
package org.springframework.scripting;
|
package org.springframework.scripting;
|
||||||
|
|
||||||
|
|
@ -431,7 +431,7 @@ bean. Now consider another example (again using an example from the Spring test
|
||||||
|
|
||||||
The following example implements the `Calculator` interface in Groovy:
|
The following example implements the `Calculator` interface in Groovy:
|
||||||
|
|
||||||
[source,groovy,indent=0,subs="verbatim,quotes"]
|
[source,groovy,indent=0,subs="verbatim,quotes",chomp="-packages"]
|
||||||
----
|
----
|
||||||
package org.springframework.scripting.groovy
|
package org.springframework.scripting.groovy
|
||||||
|
|
||||||
|
|
@ -456,7 +456,7 @@ The following bean definition uses the calculator defined in Groovy:
|
||||||
|
|
||||||
Finally, the following small application exercises the preceding configuration:
|
Finally, the following small application exercises the preceding configuration:
|
||||||
|
|
||||||
[source,java,indent=0,subs="verbatim,quotes"]
|
[source,java,indent=0,subs="verbatim,quotes",chomp="-packages"]
|
||||||
----
|
----
|
||||||
package org.springframework.scripting;
|
package org.springframework.scripting;
|
||||||
|
|
||||||
|
|
@ -595,7 +595,7 @@ Now we can show a fully working example of using a BeanShell-based bean that imp
|
||||||
the `Messenger` interface that was defined earlier in this chapter. We again show the
|
the `Messenger` interface that was defined earlier in this chapter. We again show the
|
||||||
definition of the `Messenger` interface:
|
definition of the `Messenger` interface:
|
||||||
|
|
||||||
[source,java,indent=0,subs="verbatim,quotes"]
|
[source,java,indent=0,subs="verbatim,quotes",chomp="-packages"]
|
||||||
----
|
----
|
||||||
package org.springframework.scripting;
|
package org.springframework.scripting;
|
||||||
|
|
||||||
|
|
@ -675,7 +675,7 @@ beans, you have to enable the "`refreshable beans`" functionality. See
|
||||||
The following example shows an `org.springframework.web.servlet.mvc.Controller` implemented
|
The following example shows an `org.springframework.web.servlet.mvc.Controller` implemented
|
||||||
by using the Groovy dynamic language:
|
by using the Groovy dynamic language:
|
||||||
|
|
||||||
[source,groovy,indent=0,subs="verbatim,quotes"]
|
[source,groovy,indent=0,subs="verbatim,quotes",chomp="-packages"]
|
||||||
----
|
----
|
||||||
package org.springframework.showcase.fortune.web
|
package org.springframework.showcase.fortune.web
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue