Obtenir un EhCache exemple avec le Printemps... intelligemment
J'ai besoin d'obtenir une EhCache exemple par nom et je préfère autowire si possible. Le suivant est automatiquement configuré contrôleur, comment puis-je autowire dans l'instance de cache je suis à la recherche d'?
@Controller
public class MyUniqueService {
...
}
<beans ...>
<ctx:component-scan base-package="my.controllers"/>
<mvc:annotation-driven />
</beans>
Comment puis-je configurer EhCache dans mon contexte de l'application? Je ne vois pas les messages du journal de EhCache sujet de chargement de la ehcache.xml fichier dans mon /WEB-INF/
répertoire. Comment puis-je faire en charger?
Comment puis-je intégrer EhCache avec mon Ressort de l'application de façon à charger le ehcache.xml
fichier à partir de mon /WEB-INF/
répertoire et autowire un cache par un nom donné dans mon MyUniqueService
contrôleur?
OriginalL'auteur Naftuli Kay | 2012-07-13
Vous devez vous connecter pour publier un commentaire.
Vous devez d'abord créer un Ehcache CacheManager singleton en vous app contexte comme celui-ci:
Ici
configLocation
est mis à la charge de classpath ou de l'utilisationvalue="/WEB-INF/my-ehcache.xml"
.Dans votre contrôleur simplement injecter la
CacheManager
exemple:Alternativement, si vous voulez aller de l' "entièrement autocâblés" route à faire:
Installation de votre classe comme ceci:
uniqueObjectCache
correspond à cette instance de cache dans votreehcache.xml
cache définition:Il n'y a pas un moyen pour injecter une réelle instance de cache, mais comme indiqué ci-dessus, vous pouvez injecter un gestionnaire de cache et l'utiliser pour obtenir le cache qui vous intéresse.
OriginalL'auteur jeha
En supposant que vous avez cacheManager définis:
Vous pouvez obtenir/injecter cache spécifique comme ceci:
Voir aussi les exemples sur la façon d'utiliser le Printemps EL à l'intérieur de la
@Value()
http://www.mkyong.com/spring3/spring-el-method-invocation-example/ si vous êtes intéressé.OriginalL'auteur petrsyn
Vous pouvez également utiliser autowire si le contexte peut trouver un bean avec la classe correcte. Voici comment j'ai configuré mon xml
Et ma classe java
Cette configuration fonctionne pour moi.
Si vous avez plus d'un, il vous suffit d'utiliser
@Qualifier('cacheBeanId')
avec@Autowired
OriginalL'auteur Bryant Larsen
En effet! Ou si vous voulez utiliser un java config classe:
OriginalL'auteur Vincent Devillers