Programrendszerek Fejlesztése 7/67/6 1 Tartalom  OSGI  Bevezető  A cél környezet kezelése  OSGI alapok  Komponensek  Szolgáltatások  Spring 

Slides:



Advertisements
Hasonló előadás
© Kozsik Tamás Adatbáziskezelés •Relációs adatbáziskezelők •Noha a Java objektum-elvű, egyelőre nem az objektum-elvű adatbáziskezelőket támogatja.
Advertisements

Felhasználói felületek és üzleti logika Bollobás Dávid ASP.NET
IBM Software Group © 2006 IBM Corporation Hatékonyság és üzleti intelligencia Egységesített felület meglévő alkalmazásainkhoz Szabó János Technikai szakértő.
Java komponens modellek
A Microsoft rendszermenedzsment víziója A Dynamic Systems Initiative A System Definition Model Az üzemeltetésre tervezett szoftverek A SDM jelentősége.
J2EE keretrendszerek vizsgálata Önálló laboratórium, 2008 tavasz Farkas Gábor, OTX0QR Konzulens: Imre Gábor.
Adatbányászati technikák (VISZM185)
Oracle Java fejlesztési stratégiája
RMI = Remote Method Invocation
© Kozsik Tamás Tömbök, kollekciók és egyéb alaposztályok.
© Kozsik Tamás Beágyazott osztályok A blokkstrukturáltság támogatása –Eddig: egymásba ágyazható blokk utasítások Osztálydefiníciók is egymásba.
OSI Modell.
Bevezetés a Java programozásba
Fájlkezelés, IO Kivételkezelés Belső osztályok
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS 6. Nyelvi paradigmák trendek - logika megvalósítása Dr. Bilicki.
1 Fejlett Programozási Technikák 2. 15/9. Fejlett Programozási Technológiák 2. 2 Az előző mai előadás tartalma: Számítógépes biztonság Jáva és a biztonság.
Abstract osztályok és interface-ek Beolvasás és kiíratás 7. gyakorlat.
Mérés és adatgyűjtés laboratóriumi gyakorlat Makan Gergely, Mingesz Róbert, Nagy Tamás 2. óra szeptember 9., 10. v
Programozás II. 3. Gyakorlat C++ alapok.
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Programozás II. 6. Gyakorlat const, static, dinamikus 2D.
Követelmények Bevezetés a Javába Első java program írása Dokumentációk
Fejlett Programozási Technológiák II. Világos Zsolt 1. gyakorlat.
Tömbök ismétlés Osztályok Java-ban Garbage collection
A Java programozási nyelvSoós Sándor 1/17 Java programozási nyelv 4. rész – Osztályok II. Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai.
Java programozási nyelv 3. rész – Osztályok I.
Osztott alkalmazások kezelése. VIR elosztott architektúra indítékai: - meglévő komponensek integrációja - WEB / Internet elterjedése (nemzetköziség) -
JSP és JavaBean JavaServer Pages és Java Beans Fabók Zsolt Általános Informatikai Tanszék Miskolci Egyetem.
SPRING FRAMEWORK bemutatása
Szmetankó Gábor Greencode Kft.
Oracle Database 10g szoftver telepítése
Programozási technológia 1
© Kozsik Tamás Csomagok. © Kozsik Tamás A program tagolása Típusdefiníciók (osztályok, interfészek) Metódusok Blokk utasítások Csomagok.
WEB MES (webes gyártásirányító rendszer)
PHP I. Alapok. Mi a PHP? PHP Hypertext Preprocessor Szkriptnyelv –Egyszerű, gyors fejlesztés –Nincs fordítás (csak értelmező) Alkalmazási lehetőségek:
Új programozási paradigmák a láthatáron (aspektus-orientált és intencionális programozás) Csontos Péter AITIA Informatikai Rt. 2002/10/17.
ARCHITECTArchitect AcademyFoundationsInsidersMCPtréningekvizsgákgyakorlatprojektek Novák István eEvangelist – „Dive deeper” Grepton Zrt. Technológiai vezető.
Java 2 Enterprise Edition
Budapest University of Technology and Economics Fault-tolerant Systems Research Group Eclipse alapú technológiák OSGi Balogh András
Szoftvertechnológia alapjai Java előadások Förhécz András, doktorandusz tárgy honlap:
Szoftvertechnológia alapjai Java előadások Förhécz András, doktorandusz tárgy honlap:
1 Szoftvertechnológia alapjai Java előadások Förhécz András, doktorandusz tárgy honlap:
Léczfalvy Ádám MIDlet-ek.
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
Javascript Microsoft által készített kiegészítése Statikus típusosság Nagy projektek Windows 8 fejlesztésénél WinRT egy részét ebben írták Nyílt forráskódú,
1Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor Programozás I. 1. gyakorlat.
Android alkalmazások tesztelése
Komoróczy Tamás 1 Java programozási nyelv A nyelv alapjai.
Java web programozás 11..
Müller László vezető fejlesztő EQL Soft Informatikai és Tanácsadó Kft.
Fejlett Programozási Technológiák II. 2009, Nagy Csaba JSP – Java Server Pages.
Programozás III CSOMAG. CSOMAGOK Az összetartozó osztályok és interfészek egy csomagba (package) kerülnek. A Java is csomagok halmaza: csomagokban van.
Webes MES keretrendszer fejlesztése Kiss Miklós Dániel G-5S8 Tervezésvezető: Dr. Hornyák Olivér.
1Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor Programozás I. 1. gyakorlat.
Java web programozás 5..
2. Operációs rendszerek.
Java Csoport Antal Péter Bátfai Norbert Jeszenszky Péter.
1Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor Programozás I. 1. gyakorlat.
DLL használata és készítése Feladat
.NET FRAMEWORK Röviden Krizsán Zoltán 1.0. Tulajdonságok I Rövidebb fejlesztés 20 támogatott nyelv (nyílt specifikáció) 20 támogatott nyelv (nyílt specifikáció)
JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam
TÁMOP /1-2F JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam Osztályok, objektumok definiálása és alkalmazása. Saját.
Programozás III JPA.
Hibernate / EclipseLink / OpenJPA összehasonlítás
Hernyák Zoltán Magasszintű Programozási Nyelvek I.
JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam
JBoss Wildfly Kalla Mór
Dependency Injection Tesztduplikátumok, Mock-ok, Fake-ek Feladat
JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam
Előadás másolata:

Programrendszerek Fejlesztése 7/67/6 1

Tartalom  OSGI  Bevezető  A cél környezet kezelése  OSGI alapok  Komponensek  Szolgáltatások  Spring  Spring a középrétegben  Spring Inversion of Control + AOP  Objektumok összedrótozása  Spring adatbázis komponensek

3 Az OSGi platform  Egy Java™ keretrendszer távolról telepíthető szolgáltatások és alkalmazások kezelésére:  Megbízhatóság  Széles skálájú elosztás  Eszközök széles spektruma  Együttműködő  4.0 verzió …

OSGi tagok 4 Nokia Corporation NTT Oracle Corporation ProSyst Software GmbH Red Hat Samsung Electronics Co., Ltd. SAP AG Siemens AG Siemens Enterprise Communications Software AG SpringSource Sprint Sun Microsystems, Inc. Telcordia Technologies, Inc. TIBCO Software In Aplix Corporation Deutsche Telekom Ericsson Mobile Platforms AB GigaSpaces Technologies Harman/Becker Automotive Systems GmbH Hitachi, Ltd. IBM Corporation Industrial Technology Research Institute IONA Technologies LinkedIn Makewave Mitsubishi Electric Corporation Motorola, Inc. NEC Corporation

5 Miért használjuk az OSGi szolgáltatás platformot?  Milyen problémát próbál a keretrendszer megoldani?  Egységes szoftver piac:  Korlátozott bináris szoftver portabilitás  A heterogén szoftver rendszerek fejlesztése komplex feladat  Konfigurációk kezelése, testreszabás,...  Az eszközön lévő szoftverek életciklusának kezelése

6 A szoftver komplexitása Productivity Complexity and Size Assembly Structured Programming Service Oriented Programming

7 Szolgáltatás orientált architektúra  Különítsük el a megegyezést az implementációtól  Alternatív implementációk lehetősége  Az implementációk dinamikus fellelése és csatolása  Szarződés alapú (interfész)  A komponensek újrahasznosíthatóak Service Contract Component provides uses

8 Keretrendszer  Lehetővé teszi az alkalmazások számára egy közös Java VM használatát  Osztálybetöltés  Izoláció/Biztonság  Kommunikáció és Együttműködés az alkalmazások között  Életciklus menedzselése  Szabály mentes  A szabályokat a csomagok határozzák meg  Az API teljesen önmenedzselő Operating System JavaVM JavaVM The Application Crypto-graphyUPnPDirec-tories Imaging Mail MediaFWSQL GUI Distri-buted CommPortsSecurityTCP/IP JTAPI3DWebServerMath SpeechBlue-toothXMLUSB Operating System JavaVM JavaVM JavaVM JavaVM JavaVM JavaVM JavaVM System Class Libraries OSGi OSGi OSGi OSGi Application Application Application Application Application Application Application Library

9 Rétegek

Rétegek közötti együttműködés 10

11 Futtató környezet  Az OSGi APIs a J2SE és J2ME CDC csak egy részét használja  OSGi Minimum EE  A legtöbb profillal megegyezik  A biztonság nem kötelező CLDC/ MIDP J2SE CDC/FP OSGi Min.

Biztonsági réteg  Tulajdonságai  Opcionális  Finomhangolható  Menedzselhető  A Java biztonsági architektúrára épül  Kód azonosítás  Lokáció alapján  Aláíró alapján  Opcionális biztonság  checkPermission  … 12

Digitális bizonyítvány alapú jogosultságkezelés 13

14 Modul réteg  A szabványos Java környezet nem biztosítja a megfelelő eszközöket a verziók kezelésére  Megoldás  Specializált osztálybetöltők (Jboss, NetbEans, …)  OSGi  Az alkalmazás könyvtárakat batyuba kötni (bundle)  Az osztálybetöltés modularizált  A sima Java-ban a Class Path mint sorbarendezett lista  Védelem  A sima Java nem tud védelmet nyújtani  Verziókezelés  A sima Java nem tudja ugyanannak a csomagnak különböző verzióit kezelni batyu

15 Keretrendszer entitások OSGi Keretrendszer A Batyu {} = szolgáltatás, java interfész B Batyu {} C Batyu {}

16 Batyuk  A batyu egy alkalmazás  Mint a Windows EXE fájl  Egy jar fájl  A batyu regisztrálhat szolgáltatásokat  A szolgáltatás Java interfésszel van specifikálva és több batyu is megvalósíthatja  A szolgáltatások a batyu életciklusától függenek  Keresések segítségével lehet a megfelelő szolgáltatásokat megtalálni  Lekérdező nyelv

17 Mi a Batyu?  A Batyu tartalma (általában egy JAR fáljban):  Leíró (Mainfest)  Kód  Erőforrások  A Keretrendszer:  Olvassa a batyu leíróját  Telepíti a kódot és az erőforrásokat  Feloldja a függőségeket  Futásidőben:  Meghívja a batyu aktiválót, hogy elindítsa a batyut  Kezeli a java classpath-ot  Kezeli a szolgáltatás függőségeket  Meghívja a batyu aktivátort, hogy leállítsa a batyut A Batyu {}

18 Hello World  A Leíró ( META-INF/MANIFEST.MF) is varázslóval készíthető (pl.: Eclipse)  Notice:  Bundle-Activator (az életciklus esményekre hívódik meg)  Import-Package (függőségek) Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: Helloworld Plug-in Bundle-SymbolicName: helloworld Bundle-Version: Bundle-Localization: plugin Bundle-Activator: helloworld.Activator Import-Package: org.osgi.framework;version="1.3.0" META-INF/MANIFEST.MF

19 Hello World  A kód vázat is gyárthatjuk varázslóval package helloworld public class HelloWorld implements BundleActivator { public void start( BundleContext context) throws Exception{ System.out.println( "Hello world!!"); } public void stop( BundleContext context) throws Exception { System.out.println( "Goodbye world!!"); } } HelloWorld.java

20 Osztályútvonal kezelése  A Java alkalmazás csomagokba helyezett osztályokból áll  A Java keretrendszer az osztályokat a különböző jar fáljokból tölti be  Ezek általában a CLASSPATH környezeti változóban vannak specifikálva  Az OSGi keretrendszer az osztálybetöltők hálózatát kezeli.  A leíró fejlécekkel paraméterezhetők  A batyuk közötti függőségekre a keretrendszer kezeli  Képes a batyuk szükség szerinti betöltésére

21 OSGi fügőség feloldás Bundle A Export org.osgi.service.log com.ibm.service.log com.ibm.j9 Import org.osgi.service.http javax.servlet.http Framework org.osgi.framework org.osgi.service.http Bundle B Export ericsson.osgi javax.servlet javax.servlet.http org.osgi.service.log Import org.osgi.service.http org.osgi.service.log B resolved A resolved

22 Csomag vagy Batyu függőségek?  Az OSGi mindkét megoldást támogatja  A Batyu függőség egyszerű de olyan csomagokat is importál amikre nincs szükség, nehézkesebb a verziózás r r s r q p Require-Bundle Import-Package

Osztálybetöltés  Boot osztály útvonal (java.*)  Keretrendszer osztály útvonal  Batyu tér 23

Példa 24

25 Együttműködési modell  Az OSGi több mint Applet, MIDlet, Xlet futtaó környezet  A Batyuk együttműködési lehetőségei:  Szolgáltatás objektumok  Csomag megosztás  A dinamikus szolgáltatás tár segítségével a batyu meg tudja keresni és nyomon tudja követni a számára szükséges szolgáltatásokat  A keretrendszer kezeli ezt az együttműködést  Függőségek, biztonság

26 Együttműködési modell Batyu JAVA Operációs rendszer Hardver OSGi Kertrendszer Szolgáltatás tár csomagko csomagok

27 Életciklus réteg  A Rendszer (System) batyu az OSGi kererendszert reprezentálja  Egy API-t biztosít a batyuk kezelésére  Telepítés  Feloldás  Indítás  Leállítás  Lekérdezés  Frissítés  Telepítés törlése  A modul rétegen alapul Bundle X Bundle X-v2 Bundle B bundle M Bundle A System bundle

28 Életciklus réteg  A batyut a Bundle Activator osztály segítségével indtíják  A leíró fejlécében hivatkozunk erre az osztályra  Az interfész metódusai  Start: Inicializál és azonnal visszatér  Stop: takarítás  Az akitvátor megkapja a batyu környezetet amely segítségével hozzáfér a keretrendszer erőforrásaihoz INSTALLED RESOLVED UNINSTALLED ACTIVE STOPPING STARTING start stop

Entitások  Bundle  BundleContext  BundleActivator  BundleEvent  FrameworkEvent  BundleListener  Synchronous Bundle Listener  FrameworkListener  BundleException  SystemBundle 29

30 Szolgáltatás réteg  VM-en belüli szolgáltatás modell  Szolgáltatások felderítése, állapotuk figyelése  Csatlakozás szolgáltatásokhoz  programból,  Alapértelmezett szabályokkal  Telepítő konfigurációval  Nem hagyományos SOA  VM-en belüli

31 Szolgáltatások  A szolgáltatás egy a kerterendszerbe regisztrált objektum  Java interfészként van regisztrálva  A batyu szolgáltatásokat regisztrálhat  A batyu szolgáltatásokat használhat  1..1  0..1  0..n  Dinamikus keresésel lehet szolgáltatásokat fellelni  A szolgáltatások bármikor eltűnhetnek! service bind register discover package org.osgi.service.log; import org.osgi.framework.ServiceReference; public interface LogService { public static final intLOG_ERROR= 1; public static final intLOG_WARNING= 2; public static final intLOG_INFO= 3; public static final intLOG_DEBUG= 4; public void log(int level, String message); public void log(int level, String message, Throwable exception); public void log(ServiceReference sr, int level, String message); public void log(ServiceReference sr, int level, String message, Throwable exception); }

32 Szolgáltatások  A keretrendszer szolgáltatástára minden batyunak elérhető  Különböző gyártó által létrehozott batyuk azonos interfészt is megvalósíthatnak  A felhasználónak nem látható az implementáció  Az operátor lecserélheti az egyes batyukat a működés megzavarása nélkül  Az OSGi definiál egy köteg szabványos szolgáltatást  A szolgáltatással kapcsolatos eseményekre felíratkozhatunk  A szolgáltatásoknak egyedi ID-je van  Jogosultságkezelés  Az Operátor kezeli  A szolgáltatásoknak tulajdonságai vannak  Lekérdező nyelv a megfelelő szolgáltatás fellelésére  A batyuk frissíthetik a tulajdonságokat

33 Szolgáltatások manipulálása  A BundleContext segítségével hozzáférhetünk a szolgáltatásokat manipuláló metódusokhoz  A szolgáltatás regisztrációt a ServiceRegistration objektumok kezelik  Segítségükkel módosíthatjuk a paraméteket, vagy eltávolíthatjuk a szolgáltatást  A szolgáltatás referenciák segítségével hozzáférhetünk a szolgáltatáshoz és annak tulajdonságaihoz is.  A szolgáltatásokhoz a getService metódussal férünk hozzá, az ungetService metódussal tudjuk elengedni ServiceRegistration registerService( String clss, Object srvc, Dictionary prprts) ServiceReference[] getServiceReferences( String clss, String fltr) Object getService( ServiceReference reference) boolean ungetService( ServiceReference rfrnc);

Spring  Rétegelt Java/J2EE alkalmazás keretrendszer Rod Johnoson kódja alapján („Expert One-one-One J2EE Design and Development” Wrox, 2002)  Nyílt forrású 34

A Spring célja  A J2EE-nek egyszerűbbnek kell lennie  Az OO tervezés fontosabb mint az implementációs technológia pl.: J2EE.  A kód tesztelhetősége kritikus (ebben segít a spring)  A Spring nem versenyzik, hanem kiegészíti a meglévő jó megoldásokat

Spring  Egy könnyűsúlyú a web alkalmazások minden rétegét megcímező keretrendszer.  Megjelenítés réteg – A Struts-hoz hasonló de attól többet nyújtó MVC keretrendszer.  Business layer – Könnyűsúlyú IoC tároló AOP támogatással (a beépített aspektusokat is ideértve)  Perzisztenica réteg – DAO minta a népszerű ORMs és JDBC támogatására  Egyszerűsíti a perzisztencia keretrendszereket JDBC  Kiegészítő: Nem helyettesíti a perzisztencia kerterndszereket  Segít a középréteg szervezésében  Csökkenti a kód mennyiségét, gyorsítja a fejlesztést

Spring (folytatás)  A Spring egy hordozható, viszonylag kényszer mentes keretrendszer.  POJO alapú  A programozó az újrahasznosításra koncentrálhat  Beépített szolgáltatások (aspektusok) pl.: tranzakció kezelés  A legtöbb üzleti objektum független a spring keretrendszertől

Három fő pillér  IoC konténer  Setter és konstruktor alapú függőség injektálás  Nem kötődik egy alkalmazásszerverhez  Előtérbe helyezi az OO tervezést.  A konténer által kezelt babok újrahasznosíthatóak, el vannak választva az üzleti logikától  AOP  Dynamic AOP Proxy objektumot használ az objektumokon átívelő szolgáltatások biztosítására  Újrahasznosítható objektumok  Integrálódik az IoC környezettel  AspectJ támogatás  Spring API

Inversion of Control  Függőség inyektálás  A babok a konstruktor argumentumaik, vagy tulajdonságaik segítségével definiálja függőségeiket  A konténer futásidőben biztosítja a beinyektálást  “Nem szólj az idegenekhez”, „Ne, hívj, én hívlak”  Elválasztja az objektumok fellelését, létrehozását az üzleti logikától  Könnyű használni, újrahasznosítani  Könnyű a tesztelés

Nem-IoC / Dependency Injection

Nem-IoC Szolgáltatás Objektum public class OrderServiceImpl implements IOrderService { public Order saveOrder(Order order) throws OrderException{ try{ // 1. Create a Session/Connection object // 2. Start a transaction // 3. Lookup and invoke one of the methods in a // DAO and pass the Session/Connection object. // 4. Commit transaction }catch(Exception e){ // handle e, rollback transaction, //cleanup, // throw e }finally{ //Release resources and handle more exceptions }

IoC / Függőség inyektálás

IoC Szolgáltatás objektum public class OrderSpringService implements IOrderService { IOrderDAO orderDAO; public Order saveOrder(Order order) throws OrderException{ // perform some business logic… return orderDAO.saveNewOrder(order); } public void setOrderDAO(IOrderDAO orderDAO) { this.orderDAO = orderDAO; }

Spring bab definició  A bab osztály a BeanFactory által leírt osztály aktuális implementációja  Bab minták – DAO, DataSource, Transaction Manager, Persistence Managers, Service objects, etc  A Spring konfiguráció tartalmazza az implementációt a kódunknak az interfészekhez kell szólnia.  A bab viselkedése:  Singleton vagy prototípus  Automatikus huzalozás  Inicilaizáló és destruktor metódusok  init-method  destroy-method  A babok tulajdonságait paraméterezhetően be lehet állítani.

Egyszerű Spring Bab  10  public class OrderBean implements IOrderBean{ … public void setMinimumAmountToProcess(double d){ this. minimumAmountToProcess = d; } public void setOrderDAO(IOrderDAO odao){ this.orderDAO = odao; } }

Spring BeanFactory  BeanFactory a Spring keretrendszer alapja  Könnysúlyú tároló amely betölti és menedzseli a babokat  Delaratívan lehet konfigurálni XML állományok segítségével, itt mondjuk meg azt is, hogy a különböző babok hogyan kapcsolódnak  Tudja, hogy hogyan kezelje a singelton és prototípus babokat  Az életciklus kezelő metódusokért is felelős  A megfelelő babokba beinyektálja a függőségeket  Injects dependencies into defined beans when served  Segítségével mellőzhetjük a singelton-ok és factory-k használatát

Spring ApplicationContext  A Spring ApplicationContext segítségével hozáférhetünk a BeanFactory-ban konfigurált objektumokhoz  Az ApplicationContext kiterjeszti a BeanFactory-t  Olyan szolgáltatásokat biztosít mint a belső üzenetküldés  Fájl alapú erőforrások általános kezelése is egy szolgáltatása  Néhány mód a konfigurációra:  XMLWebApplicationContext – Web alkalmazáshoz konfiguráljuk.  ClassPathXMLApplicationContext – önnáló XML alkalmazás kontextus  FileSystemXmlApplicationContext  Nem kell Service Locator-okat írnunk

Spring AOP

AOP  Kiegészíti az OO programozást  Az alapvető üzleti problémák vs. Az átmetsző vállalati problémák  Az AOP komponensei  Aspect – a keresztülívelő problémák modulba foglalásának alapja  Join point – jól definiált pontok a program folyamban  Pointcut –join point szűrő a betoldás futásánák meghatározására  Advice – egy küdrész ami a pointcut által meghatározott részen fut  Weaving – Fordítás, vagy futásidőben a megfelelő helyekre betoldja a megfelelő kódot.  Az EJB-ben található deklaratív megoldások egy alternatívája  Aspektusok a kód változtatása nélkül hozzáadhatóak és elvehetőek

Spring AOP  Az aopalliance szövetség által definiált interfészekre építő keretrendszer  Az aspektusok Java nyelvben vannak megvalósítva. Nem kell pointcut lekérdező nyelvet tanulni  A Spring aspektusok az IoC konténerben paraméterezhetőek  A konténerből kapott objektumok transzparens módon szabhatóak  A Spring AOP sok kész aspektust biztosít (tranzakció kezelés, naplózás, …)

Spring AOP  Az alábbi tanácsokat támogatja:  Metódus előtt  A metódus visszatérése után  throws tanács  Körül tanács  Az interceptorokat és a tanácsokat láncolhatjuk precedencia alapján  Az aspektusok futás időben vannak szőve.

Spring AOP körbe tanács példa public class PerformanceMonitorDetailInterceptor implements MethodInterceptor { protected final Log logger = LogFactory.getLog(getClass()); public Object invoke(MethodInvocation invocation) throws Throwable { String name = invocation.getMethod().getDeclaringClass().getName() + "." + invocation.getMethod().getName(); StopWatch sw = new StopWatch(name); sw.start(name); Object rval = invocation.proceed(); sw.stop(); logger.info(sw.prettyPrint()); return rval; }

Folytatás <bean id="perfMonInterceptor" class= "com.meagle.service.interceptor.PerformanceMonitorDetailInterceptor"/> <bean id="performanceAdvisor" class="org.springframework.aop.support.RegexpMethodPointcutAdvisor">.*find.*.*save.*.*update.*

AOP Szövés

A következő alkalmazás tartalma  Alkalmazás szerverek és ezek szolgáltatásai  EAR állományok  JMX  Példák:  Jboss, WebSphere 55