Laste ned presentasjonen
Presentasjon lastes. Vennligst vent
PublisertHenriette Thomassen Endret for 9 år siden
1
Implementering av caching ved hjelp av Spring Christian Vestøl 27.04.06
2
April 20061 Caching med Spring, Christian Vestøl Kort introduksjon til Spring Caching med Spring Praktiske eksempler Forskjellige rammeverk for caching Agenda
3
April 20062 Caching med Spring, Christian Vestøl Kort om Spring Inversion of Control (IoC) Opprette og konfigurere objekter Holder javakoden fri for klassespesifik konfigurasjon Dependency Injection Knytter sammen objekter Støtter Aspekt Orientert Programmering Gjør det mulig å legge til logikk før/etter ordinære metodekall
4
April 20063 Caching med Spring, Christian Vestøl Hva betyr egentlig dette? Konfigurasjon av objekter DEMO.
5
April 20064 Caching med Spring, Christian Vestøl Hva betyr egentlig dette? Kobling av objekter DEMO scott.
6
April 20065 Caching med Spring, Christian Vestøl Kort introduksjon til Spring Caching med Spring Praktiske eksempler Forskjellige rammeverk for caching Agenda
7
April 20066 Caching med Spring, Christian Vestøl Hvorfor cache? Ytelse, ytelse, ytelse! Man har ofte en god del statiske data Mange databasekall tar kun 10-50ms Mange bekker små gjør en stor å Skalering Memory er ”gratis”
8
April 20067 Caching med Spring, Christian Vestøl Spring og Caching Spring benyttes for å opprette og konfigurere objekter Cache benyttes for å forbedre ytelsen Hvordan benytter man Spring for å implementere caching? Aspekt Orientert Programmering (AOP)
9
April 20068 Caching med Spring, Christian Vestøl Hva er egentlig Aspekt Orientert Programmering? Ser dette kjent ut? long start = System.currentTimeMillis(); List l = myService.getDataFromDatabase(); log.debug(”getDataFromDatabase() used ”+(System.currentTimeMillis()-start)+”ms.”);
10
April 20069 Caching med Spring, Christian Vestøl Hva om vi i stedet benytter oss av Spring AOP? Vi konfigurerer klassen i Spring
11
April 200610 Caching med Spring, Christian Vestøl Hva om vi i stedet benytter oss av Spring AOP? Vi instansierer et BeanFactory i vår kode ApplicationContext context; context = new ClassPathXmlApplicationContext("spring_configuration.xml"); MyService myService = (MyService)context.getBean(”myService”);
12
April 200611 Caching med Spring, Christian Vestøl Hva om vi i stedet benytter oss av Spring AOP? Vi oppretter en klasse som tar seg av loggingen package com.capgemini; import org.aopalliance.intercept.*; public class LogResponseTime implements MethodInterceptor { public Object invoke(MethodInvocation mi) throws Throwable { long start = System.currentTimeMillis(); Object result = mi.proceed(); log.debug(mi.getMethod()+” used ”+(System.currentTimeMillis()- start)+”ms.”); return result; }
13
April 200612 Caching med Spring, Christian Vestøl Hva om vi i stedet benytter oss av Spring AOP? Og konfigurerer denne i Spring <bean id=”myServiceProxyCreator" class="org.springframework.aop.framework.autoproxy. BeanNameAutoProxyCreator"> myService logger
14
April 200613 Caching med Spring, Christian Vestøl Hva om i stedet benytter oss av Spring AOP? Vi konfigurerer klassen som inneholder databasekallet i xml Vi instansierer et BeanFactory i vår kode Vi lager en klasse som tar seg av loggingen (interceptor) Vi kobler denne på ”rundt” det ordinære kallet i Spring
15
April 200614 Caching med Spring, Christian Vestøl JCS –Java Caching System Apache prosjekt Enkelt å konfigurere (enkelt å komme i gang) Memory cache (flere varianter) Disk cache / Database cache (JDBC) Distribuert caching (kan brukes i cluster) TCP Lateral cache (distribuerte noder) RMI Remote cache server (distribuerte noder med masterserver) Egen webside for administrasjon av cachen
16
April 200615 Caching med Spring, Christian Vestøl JCS – konfigurasjon # Default cache region jcs.default= jcs.default.cacheattributes=org.apache.jcs.engine.CompositeCacheAttributes jcs.default.cacheattributes.MaxObjects=10000 jcs.default.cacheattributes.MemoryCacheName= org.apache.jcs.engine.memory.lru.LRUMemoryCache # Memory shrinking attributes jcs.default.cacheattributes.UseMemoryShrinker=true jcs.default.cacheattributes.MaxMemoryIdleTimeSeconds=36000 jcs.default.cacheattributes.ShrinkerIntervalSeconds=300 jcs.default.cacheattributes.MaxSpoolPerRun=500 jcs.default.elementattributes=org.apache.jcs.engine.ElementAttributes jcs.default.elementattributes.IsEternal=false
17
April 200616 Caching med Spring, Christian Vestøl JCS – implementasjon i javakoden import org.apache.jcs.JCS; import org.apache.jcs.access.exception.CacheException; JCS jcs = JCS.getInstance(”regionName”); //get object from cache Serializable ret = (Serializable)jcs.get(”key”); //put object in cache jcs.put(”key”, object);
18
April 200617 Caching med Spring, Christian Vestøl JCS implementert med Spring Definerer beans i XML (Springkonfigurasjonen) Lager en Interceptorklasse som håndterer caching Koble Beans sammen i XML Instansiere et BeanFactory som oppretter klassene for oss
19
April 200618 Caching med Spring, Christian Vestøl JCS implementert med Spring Hva om man ikke ønsker å cache alle metodekall på en klasse? Spring støtter det ved at man legger til en advisor i konfigurasjonen. Dette kan typisk være en RegexpMethodPointcutAdvisor. Denne kan konfigureres slik at den kun slår til ved enkelte metodekall:.*get.*.*lookup.*
20
April 200619 Caching med Spring, Christian Vestøl Kort introduksjon til Spring Caching med Spring Praktiske eksempler Forskjellige rammeverk for caching Agenda
21
April 200620 Caching med Spring, Christian Vestøl Eksempler Dropdown med postnr. og poststed Dropdown med land/landkoder Lookup metoder for validering av input I applikasjoner hvor man har regelmessig dataoverføring fra andre datakilder.
22
April 200621 Caching med Spring, Christian Vestøl Kort introduksjon til Spring Caching med Spring Praktiske eksempler Forskjellige rammeverk for caching Agenda
23
April 200622 Caching med Spring, Christian Vestøl Rammeverk for caching JCS - http://jakarta.apache.org/jcs/index.htmlhttp://jakarta.apache.org/jcs/index.html EHCache - http://ehcache.sourceforge.net/http://ehcache.sourceforge.net/ Ny versjon denne uka OSCache - http://www.opensymphony.com/oscache/http://www.opensymphony.com/oscache/ Inkluderer tag library JBossCache - http://www.jboss.org/products/jbosscachehttp://www.jboss.org/products/jbosscache Håndterer transaksjoner
24
The end Spørsmål? Contact: Christian Vestøl, christian.vestol@capgemini.com no.capgemini.com
Liknende presentasjoner
© 2024 SlidePlayer.no Inc.
All rights reserved.