Bonjour à tous,

Je suis en train de faire une application web pour une société immobilière en utilisant JSF. Jusqu'a aujourd'hui, tout marchait bien avec mes tests, methodes bien fonctionnelles, mais le drame est survenu quand au lieu de me servir de ma base de données de tests (avec quelques dizaines d'entrées) j'ai importé la base de données de la société (avec des dizaines de milliers d'entrées). Tout marche encore correctement, mais alors c'est d'une lenteur à tuer un escargot.

Je me suis donc dit qu'il serait peut être bien de stocker les données en "cache" histoire de pas récupérer les valeurs en base de données a chaque fois. Etant encore une drouille en Hibernate et ses multi-niveaux de cache, j'ai pensé que je pourrais faire cela via un bean de scope Application. L'idée étant de créer par exemple un attribut "List<Bail> baux" contenant la liste de tous les baux (et y en a un paquet) et qu'on l'initialise via la base de données à la création du bean. Hélas ca marche pas exactement comme je le voudrais... D'où mes questions.

-> A quel moment est créé un bean de scope "Application" exactement ? Dans ma tête, c'était au démarrage de l'application, pourtant j'ai constaté que je pouvais lancer mon serveur et naviguer sur certaines pages du site sans que le bean soit créé.

-> Est-il détruit à un moment ? Je pensais que non, mais du coup, je n'arrive pas à expliquer qu'une fois ce bean créé, quand je vais sur un autre page appellant la liste passée en attribut du bean il interroge à nouveau la base de données...

-> A tout hasard, vous connaissez une meilleure méthode pour stocker quelques Mo de données en cache sur un serveur Tomcat via JSF ?