Hidden Gems Notes
"classpath:" vs "classpath*:"In the first, it gets the first classpath root only.
The second will check all classpath roots.
Both support patterns
"classpath:mypackage/*.xml"
"classpath*:mypackage/*.xml"
I will probably avoid the wild card pattern bit because of my preference for explicit definitions. Still, good stuff for parallel classpaths and resource roots.
---
Advanced Resource Bundles
ResourceBundleMessageSource: uses java.util.ResourceBundle, can load from multiple bundle basenames, can handle message arguments via java.text.MessageFormat
ReloadableResourceBundleMessageSource, think resource bundles that can be reloaded at runtime. woohoo! has configurable caching and refresh.
Sample definition:
<bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
<property name="basename" value="classpath:myBundle1,classpath:myBundle2" />
<property name="cacheSeconds" value="1" />
<property name="defaultEncoding" value="UTF-8" />
<property name="fileEncodings">
<value>
/WEB-INF/myBundle2_en=ISO-8859-1
</value>
</property>
</bean>
Note: storing reloadable resources in the classpath may not be the best practice. But, probably use in a dev environment tied to a server. Just change before go-live.
The encoding stuf is good but, anybody working for me will save EVERYTHING as UTF-8 if they know whats good for them
;)
ServletRequestDataBinder - I need to investigate this more
2 Comments:
You can probably tie the reload to the logging level so you don't have to mess with removing the configuration. Sorta what the rails kids do with the dev > test > prod settings.
We should do that in our app.
For log4J, its a good idea.
I'd recommend getting the configuration properties out of the classpath though.
Post a Comment
Subscribe to Post Comments [Atom]
<< Home