A Spring module allows you to use standard Spring XML configuration tags.
A Spring module appears in atlassian-plugin.xml like this:
<spring name="Space Cleaner Job" key="spaceCleanerJob" class="org.springframework.scheduling.quartz.JobDetailBean">
... any standard spring configuration goes here...
</spring>
|
The above is equivalent to the following configuration in applicationContext.xml:
<bean id="spaceCleanerJob" class="org.springframework.scheduling.quartz.JobDetailBean">
...
</bean>
|
If you declare a Spring component that refers to another Spring component, you must ensure the referred component is declared first. For example:
<spring name="Bean A" key="beanA" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
...
</spring>
<spring name="Bean B" key="beanB" alias="soapServiceDelegator" class="org.springframework.aop.framework.ProxyFactoryBean">
<property name="target">
<ref local="beanA"/>
</property>
...
</spring>
|
Notice that beanB refers to beanA and that beanA is declared before beanB. If you don't do it in this order, Confluence will complain that beanA does not exist.