33:doc-root: https://docs.spring.io
44:api-spring-framework: {doc-root}/spring-framework/docs/{spring-version}/javadoc-api/org/springframework
55:wiki-spring-framework: https://github.com/spring-projects/spring-framework/wiki
6-
6+ :toc: left
7+ :toclevels: 2
78
89[[spring-whats-new]]
910== What's New in the Spring Framework
@@ -36,13 +37,14 @@ the respective sections of the reference manual.
3637=== Classic ORM usage
3738This section documents the classic usage patterns that you might encounter in a legacy
3839Spring application. For the currently recommended usage patterns, please refer to the
39- <<orm,ORM>> chapter.
40+ <<data-access.adoc# orm,ORM>> chapter.
4041
4142
4243
4344[[classic-spring-hibernate]]
4445==== Hibernate
45- For the currently recommended usage patterns for Hibernate see <<orm-hibernate>>.
46+ For the currently recommended usage patterns for Hibernate see
47+ <<data-access.adoc#orm-hibernate,the Hibernate section>>.
4648
4749
4850[[orm-hibernate-template]]
@@ -238,8 +240,8 @@ used.
238240
239241[[classic-spring-aysnc-messages]]
240242==== Asynchronous Message Reception
241- <<jms-receiving-async-message-listener-adapter,MessageListenerAdapter's>> are used in
242- conjunction with Spring's <<jms-mdp,message listener containers>> to support
243+ <<integration.adoc# jms-receiving-async-message-listener-adapter,MessageListenerAdapter's>> are used in
244+ conjunction with Spring's <<integration.adoc# jms-mdp,message listener containers>> to support
243245asynchronous message reception by exposing almost any class as a Message-driven POJO. If
244246you are using the JMS 1.0.2 API, you will want to use the 1.0.2 specific classes such as
245247`MessageListenerAdapter102`, `SimpleMessageListenerContainer102`, and
@@ -264,7 +266,7 @@ differentiate between a `javax.jms.QueueConnection` and a `javax.jmsTopicConnect
264266==== Transaction Management
265267In a JMS 1.0.2 environment the class `JmsTransactionManager102` provides support for
266268managing JMS transactions for a single Connection Factory. Please refer to the reference
267- documentation on <<jms-tx,JMS Transaction Management>> for more information on this
269+ documentation on <<integration.adoc# jms-tx,JMS Transaction Management>> for more information on this
268270functionality.
269271
270272
@@ -273,7 +275,7 @@ functionality.
273275== Classic Spring AOP Usage
274276In this appendix we discuss the lower-level Spring AOP APIs and the AOP support used in
275277Spring 1.2 applications. For new applications, we recommend the use of the Spring 2.0
276- AOP support described in the <<aop,AOP>> chapter, but when working with existing
278+ AOP support described in the <<core.adoc# aop,AOP>> chapter, but when working with existing
277279applications, or when reading books and articles, you may come across Spring 1.2 style
278280examples. Spring 2.0 is fully backwards compatible with Spring 1.2 and everything
279281described in this appendix is fully supported in Spring 2.0.
@@ -1037,14 +1039,16 @@ In common with most `FactoryBean` implementations provided with Spring, the
10371039`ProxyFactoryBean` class is itself a JavaBean. Its properties are used to:
10381040
10391041* Specify the target you want to proxy.
1040- * Specify whether to use CGLIB (see below and also <<aop-pfb-proxy-types>>).
1042+ * Specify whether to use CGLIB (see below and also <<core.adoc#aop-pfb-proxy-types,
1043+ JDK- and CGLIB-based proxies>>).
10411044
10421045Some key properties are inherited from `org.springframework.aop.framework.ProxyConfig`
10431046(the superclass for all AOP proxy factories in Spring). These key properties include:
10441047
10451048* `proxyTargetClass`: `true` if the target class is to be proxied, rather than the
10461049 target class' interfaces. If this property value is set to `true`, then CGLIB proxies
1047- will be created (but see also below <<aop-pfb-proxy-types>>).
1050+ will be created (but see also below
1051+ <<core.adoc#aop-pfb-proxy-types,JDK- and CGLIB-based proxies>>).
10481052* `optimize`: controls whether or not aggressive optimizations are applied to proxies
10491053 __created via CGLIB__. One should not blithely use this setting unless one fully
10501054 understands how the relevant AOP proxy handles optimization. This is currently used
@@ -1067,7 +1071,8 @@ Some key properties are inherited from `org.springframework.aop.framework.ProxyC
10671071Other properties specific to `ProxyFactoryBean` include:
10681072
10691073* `proxyInterfaces`: array of String interface names. If this isn't supplied, a CGLIB
1070- proxy for the target class will be used (but see also below <<aop-pfb-proxy-types>>).
1074+ proxy for the target class will be used (but see also below
1075+ <<core.adoc#aop-pfb-proxy-types,JDK- and CGLIB-based proxies>>).
10711076* `interceptorNames`: String array of `Advisor`, interceptor or other advice names to
10721077 apply. Ordering is significant, on a first come-first served basis. That is to say
10731078 that the first interceptor in the list will be the first to be able to intercept the
@@ -1079,7 +1084,8 @@ factories. You can't mention bean references here since doing so would result in
10791084
10801085You can append an interceptor name with an asterisk ( `*`). This will result in the
10811086application of all advisor beans with names starting with the part before the asterisk
1082- to be applied. An example of using this feature can be found in <<aop-global-advisors>>.
1087+ to be applied. An example of using this feature can be found in
1088+ <<core.adoc#aop-global-advisors,Using 'global' advisors>>.
10831089
10841090* singleton: whether or not the factory should return a single object, no matter how
10851091 often the `getObject()` method is called. Several `FactoryBean` implementations offer
@@ -1377,7 +1383,7 @@ this case, the transaction propagation settings:
13771383
13781384Note that in the example above, we have explicitly marked the parent bean definition as
13791385__abstract__ by using the __abstract__ attribute, as described
1380- <<beans-child-bean-definitions,previously>>, so that it may not actually ever be
1386+ <<core.adoc# beans-child-bean-definitions,previously>>, so that it may not actually ever be
13811387instantiated. Application contexts (but not simple bean factories) will by default
13821388pre-instantiate all singletons. It is therefore important (at least for singleton beans)
13831389that if you have a (parent) bean definition which you intend to use only as a template,
@@ -2462,7 +2468,7 @@ Before...
24622468
24632469The above configuration uses a Spring `FactoryBean` implementation, the
24642470`PropertiesFactoryBean`, to instantiate a `java.util.Properties` instance with values
2465- loaded from the supplied <<resources, `Resource`>> location).
2471+ loaded from the supplied <<core.adoc# resources, `Resource`>> location).
24662472
24672473After...
24682474
@@ -2907,8 +2913,8 @@ The `lang` tags deal with exposing objects that have been written in a dynamic l
29072913such as JRuby or Groovy as beans in the Spring container.
29082914
29092915These tags (and the dynamic language support) are comprehensively covered in the chapter
2910- entitled <<dynamic-language>>. Please do consult that chapter for full details on this
2911- support and the `lang` tags themselves.
2916+ entitled <<integration.adoc# dynamic-language,Dynamic language support >>.
2917+ Please do consult that chapter for full details on this support and the `lang` tags themselves.
29122918
29132919In the interest of completeness, to use the tags in the `lang` schema, you need to have
29142920the following preamble at the top of your Spring XML configuration file; the text in the
@@ -2934,9 +2940,10 @@ are available to you.
29342940==== the jms schema
29352941
29362942The `jms` tags deal with configuring JMS-related beans such as Spring's
2937- <<jms-mdp,MessageListenerContainers>>. These tags are detailed in the section of the
2938- <<jms,JMS chapter>> entitled <<jms-namespace>>. Please do consult that chapter for full
2939- details on this support and the `jms` tags themselves.
2943+ <<integration.adoc#jms-mdp,MessageListenerContainers>>. These tags are detailed in the
2944+ section of the <<integration.adoc#jms,JMS chapter>> entitled <<integration.adoc#jms-namespace,
2945+ JMS namespace support>>. Please do consult that chapter for full details on this support
2946+ and the `jms` tags themselves.
29402947
29412948In the interest of completeness, to use the tags in the `jms` schema, you need to have
29422949the following preamble at the top of your Spring XML configuration file; the text in the
@@ -2962,7 +2969,8 @@ are available to you.
29622969==== the tx (transaction) schema
29632970
29642971The `tx` tags deal with configuring all of those beans in Spring's comprehensive support
2965- for transactions. These tags are covered in the chapter entitled <<transaction>>.
2972+ for transactions. These tags are covered in the chapter entitled
2973+ <<data-access.adoc#transaction,Transaction Management>>.
29662974
29672975[TIP]
29682976====
@@ -3010,7 +3018,8 @@ using AOP). The above XML snippet contains the relevant lines needed to referenc
30103018
30113019The `aop` tags deal with configuring all things AOP in Spring: this includes Spring's
30123020own proxy-based AOP framework and Spring's integration with the AspectJ AOP framework.
3013- These tags are comprehensively covered in the chapter entitled <<aop>>.
3021+ These tags are comprehensively covered in the chapter entitled <<core.adoc#aop,
3022+ Aspect Oriented Programming with Spring>>.
30143023
30153024In the interest of completeness, to use the tags in the `aop` schema, you need to have
30163025the following preamble at the top of your Spring XML configuration file; the text in the
@@ -3064,8 +3073,8 @@ The `context` schema was only introduced in Spring 2.5.
30643073===== <property-placeholder/>
30653074
30663075This element activates the replacement of `${...}` placeholders, resolved against the
3067- specified properties file (as a <<resources,Spring resource location>>). This element is
3068- a convenience mechanism that sets up a<<beans-factory-placeholderconfigurer,
3076+ specified properties file (as a <<core.adoc# resources,Spring resource location>>). This element is
3077+ a convenience mechanism that sets up a<<core.adoc# beans-factory-placeholderconfigurer,
30693078`PropertyPlaceholderConfigurer`>> for you; if you need more control over the
30703079`PropertyPlaceholderConfigurer`, just define one yourself explicitly.
30713080
@@ -3074,42 +3083,46 @@ a convenience mechanism that sets up a<<beans-factory-placeholderconfigurer,
30743083===== <annotation-config/>
30753084
30763085Activates the Spring infrastructure for various annotations to be detected in bean
3077- classes: Spring's <<beans-required-annotation, `@Required`>> and
3078- <<beans-annotation-config, `@Autowired`>>, as well as JSR 250's `@PostConstruct`,
3086+ classes: Spring's <<core.adoc# beans-required-annotation, `@Required`>> and
3087+ <<core.adoc# beans-annotation-config, `@Autowired`>>, as well as JSR 250's `@PostConstruct`,
30793088`@PreDestroy` and `@Resource` (if available), and JPA's `@PersistenceContext` and
30803089`@PersistenceUnit` (if available). Alternatively, you can choose to activate the
30813090individual `BeanPostProcessors` for those annotations explicitly.
30823091
30833092[NOTE]
30843093====
30853094This element does __not__ activate processing of Spring's
3086- <<transaction-declarative-annotations, `@Transactional`>> annotation. Use the
3087- <<tx-decl-explained, `<tx:annotation-driven/>`>> element for that purpose.
3095+ <<data-access.adoc# transaction-declarative-annotations, `@Transactional`>> annotation. Use the
3096+ <<data-access.adoc# tx-decl-explained, `<tx:annotation-driven/>`>> element for that purpose.
30883097====
30893098
30903099
30913100[[xsd-config-body-schemas-context-component-scan]]
30923101===== <component-scan/>
30933102
3094- This element is detailed in <<beans-annotation-config>>.
3103+ This element is detailed in <<core.adoc#beans-annotation-config,
3104+ Annotation-based container configuration>>.
30953105
30963106
30973107[[xsd-config-body-schemas-context-ltw]]
30983108===== <load-time-weaver/>
30993109
3100- This element is detailed in <<aop-aj-ltw>>.
3110+ This element is detailed in <<core.adoc#aop-aj-ltw,
3111+ Load-time weaving with AspectJ in the Spring Framework>>.
31013112
31023113
31033114[[xsd-config-body-schemas-context-sc]]
31043115===== <spring-configured/>
31053116
3106- This element is detailed in <<aop-atconfigurable>>.
3117+ This element is detailed in <<core.adoc#aop-atconfigurable,
3118+ Using AspectJ to dependency inject domain objects with Spring>>.
31073119
31083120
31093121[[xsd-config-body-schemas-context-mbe]]
31103122===== <mbean-export/>
31113123
3112- This element is detailed in <<jmx-context-mbeanexport>>.
3124+ This element is detailed in <<integration.adoc#jmx-context-mbeanexport,
3125+ Configuring annotation based MBean export>>.
31133126
31143127
31153128
@@ -3134,8 +3147,9 @@ distribution.
31343147==== the jdbc schema
31353148
31363149The `jdbc` tags allow you to quickly configure an embedded database or initialize an
3137- existing data source. These tags are documented in <<jdbc-embedded-database-support>>
3138- and <<jdbc-intializing-datasource>> respectively.
3150+ existing data source. These tags are documented in
3151+ <<data-access.adoc#jdbc-embedded-database-support,Embedded database support>>
3152+ and <<data-access.adoc#jdbc-initializing-datasource,Initializing a DataSource>> respectively.
31393153
31403154To use the tags in the `jdbc` schema, you need to have the following preamble at the top
31413155of your Spring XML configuration file; the text in the following snippet references the
@@ -3161,7 +3175,8 @@ correct schema so that the tags in the `jdbc` namespace are available to you.
31613175
31623176The `cache` tags can be used to enable support for Spring's `@CacheEvict`, `@CachePut`
31633177and `@Caching` annotations. It it also supports declarative XML-based caching. See
3164- <<cache-annotation-enable>> and <<cache-declarative-xml>> for details.
3178+ <<integration.adoc#cache-annotation-enable,Enable caching annotations>> and
3179+ <<integration.adoc#cache-declarative-xml,Declarative XML-based caching>> for details.
31653180
31663181To use the tags in the `cache` schema, you need to have the following preamble at the
31673182top of your Spring XML configuration file; the text in the following snippet references
@@ -3188,7 +3203,8 @@ the correct schema so that the tags in the `cache` namespace are available to yo
31883203Last but not least we have the tags in the `beans` schema. These are the same tags that
31893204have been in Spring since the very dawn of the framework. Examples of the various tags
31903205in the `beans` schema are not shown here because they are quite comprehensively covered
3191- in <<beans-factory-properties-detailed>> (and indeed in that entire <<beans,chapter>>).
3206+ in <<core.adoc#beans-factory-properties-detailed,Dependencies and configuration in detail>>
3207+ (and indeed in that entire <<core.adoc#beans,chapter>>).
31923208
31933209One thing that is new to the beans tags themselves in Spring 2.0 is the idea of
31943210arbitrary bean metadata. In Spring 2.0 it is now possible to add zero or more key /
@@ -3365,7 +3381,7 @@ The `NamespaceHandler` interface is pretty simple in that it features just three
33653381* `BeanDefinitionHolder decorate(Node, BeanDefinitionHolder, ParserContext)` - called
33663382 when Spring encounters an attribute or nested element of a different namespace. The
33673383 decoration of one or more bean definitions is used for example with
3368- the<<beans-factory-scopes,out-of-the-box scopes Spring 2.0 supports>>. We'll start by
3384+ the<<core.adoc# beans-factory-scopes,out-of-the-box scopes Spring 2.0 supports>>. We'll start by
33693385 highlighting a simple example, without using decoration, after which we will show
33703386 decoration in a somewhat more advanced example.
33713387
0 commit comments