Я не хочу звучать также отрицательным, но существуют случаи, когда то, что Вы хотите, почти невозможно без большой "искусственной" настройки разрывов страницы.
, Если выноска падает естественно около конца страницы, и показатель падает на следующей странице, перемещая число назад, одна страница, вероятно, переместит выноску вперед .
я рекомендовал бы (в максимально возможной степени, и в зависимости от точного размера чисел):
, По моему опыту, это - большой едок не имеющегося в наличии времени (:-)
В ответ на комментарий Jon, я думаю, что это - по сути трудная проблема, потому что ЛАТЕКСНЫЕ парни, не сутулится. Вы хотели бы читать газета Frank Mittelbach .
В вашем примере используется EhCacheManagerFactoryBean
, чтобы предоставить ссылку на CacheManager
с кешами, определенными во внешнем файле cacheConfig.xml
. . Как указал @ ChssPly76, преобразователь свойств Spring работает только в файлах определения компонентов Spring.
Однако вам не нужно определять отдельные кэши во внешнем файле, вы можете определять их прямо в файле определения bean-компонентов Spring, используя EhCacheFactoryBean
:
FactoryBean, который создает именованный Экземпляр EHCache Cache ... Если указанный именованный кеш не настраивается в конфигурации кеша дескриптор, этот FactoryBean будет создать экземпляр Cache с указанное имя и указанное свойства кеша и добавьте его в CacheManager для последующего извлечения.
Другими словами, если вы используете EhCacheFactoryBean
для ссылки на именованный кеш, который еще не определен в cacheConfig.xml
, то Spring создаст и настроить новый экземпляр кэша и зарегистрировать его с помощью CacheManager
во время выполнения. Это включает в себя определение таких вещей, как maxElementsInMemory
, и поскольку это будет указано в файле определения компонента Spring, вы получите полную поддержку преобразователя свойств:
<context:property-placeholder location="classpath:cacheConfig.properties"/>
<bean id="myCache" class="org.springframework.cache.ehcache.EhCacheFactoryBean">
<property name="cacheManager" ref="cacheManager"/>
<property name="maxElementsInMemory" value="${cache.maxMemoryElements}"/>
</bean>
<bean id="cacheManager" class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean">
<property name="shared" value="false"/>
<property name="configLocation" value="classpath:cacheConfig.xml"/>
</bean>
Это не то, как работает PropertyPlaceholderConfigurer. Его можно использовать для замены значений в контексте , но не внутри произвольных внешних файлов. А cacheConfig.xml
- это внешний файл - он просто передается Spring в EH Cache.
Если вы используете Maven или Ant, оба предлагают возможность фильтрации токенов в файлах ресурсов.
Для Maven вы можете сделать что-то вроде
<cache name="someCacheName"
maxElementsInMemory="${cache.maxMemoryElements}" ... />
А в файле фильтра или в самом POM иметь
cache.maxMemoryElements = 200
] Фильтрация ресурсов в Maven: Полное руководство
В Ant это можно сделать с помощью FilterSets и задачи
.