Presentasjon lastes. Vennligst vent

Presentasjon lastes. Vennligst vent

Implementering av caching ved hjelp av Spring Christian Vestøl 27.04.06.

Liknende presentasjoner


Presentasjon om: "Implementering av caching ved hjelp av Spring Christian Vestøl 27.04.06."— Utskrift av presentasjonen:

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


Laste ned ppt "Implementering av caching ved hjelp av Spring Christian Vestøl 27.04.06."

Liknende presentasjoner


Annonser fra Google