Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

SPRING FRAMEWORK bemutatása Vasi Sándor Greencode Kft

Hasonló előadás


Az előadások a következő témára: "SPRING FRAMEWORK bemutatása Vasi Sándor Greencode Kft"— Előadás másolata:

1 SPRING FRAMEWORK bemutatása Vasi Sándor Greencode Kft

2 A Spring Framework alapelvei  A J2EE fejlesztésének nem kellene ilyen bonyolultnak lennie (Rod Johnson – J2EE Development without J2EE)  Legyen a keretrendszer lightweight

3 A Spring Framework alapelvei 2.  Az OOP irányelvek sokkal fontosabbak, mint a bármelyik framework, mint pl a J2EE  Túl sok a Checked Exception a Java-ban. A framework ne kényszerítsen a használatára  A tesztelhetőséget elő kell segítenie egy framework-nek  Fejlesztési ciklus javítása == produktuvitás növelése

4 Konténerek

5 Mi szükséges a SPRING működéséhez?  Egy külső alkalmazás, ami inicializálja a SPRING-et. (Ez lehet akár a web-container is)  Osztályok, amelyek BEAN-ek, amikhet majd el tudok érni a framework segítségével  Bean Factory vagy Application Context  Konfigurációs fájl  XML  annotáció  Java osztály  Spring lib-ek

6 Spring Framework  Dependency Injection  Aspect-Oriented Programming including Spring's declarative transaction management  Spring MVC web application and RESTful web service framework  Foundational support for JDBC, JPA, JMS  és még sok egyéb…

7 Dependency Injection Mit jelent a “dependency” – azaz függőség? class other class uses DEPENDENCY

8 Dependency Injection 2. MODELDATABASE FETCH DEPENDENCY PUSH A dependency injection segítségével: nem kell többé metódusainkban a new operátort használni helyette megkapjuk azt paraméterként

9 Dependency injection 3. public void myMethod(DataBase db) { db.fetchData … } Miért jó ez nekünk?

10 Dependency Injection 4. Házépítő robot Mit tegyünk, amikor arra kerül a sor, hogy az ajtót kell beépíteni? Felprogramozzuk a robotunknat, hogy tudjon egyedi ajtót is építeni a deszkákból? vagy Ajtógyártók szabvány ajtóit építtetjük be vele? A robot deszkákból falakat tud össze- építeni.

11 Dependency Injection 5.  A Dependency Injection függetleníti a modeljeinket a külsú függőségektől (dependency)  Ezt a műveletet az angol szakirodalom decoupeling –nek nevezi  Miért fontos a modellek függetlenítése egymástól?

12 Dependency Inversion Principal  Magasszintű moduloknak nem szabad alacsony szintű moduloktól függniük. Midnkét modulnak absztakcióktól kell függnijük.  Az absztrakcióknak nem szabad a részletekktől függniük, pont ellenkezőleg, a részleteknek kell az absztakcióktól függniük.

13 Dependency Inversion Principle 2. CLASS Dependency Interface Dependency Implements Dependency 2 Soft Dependency

14 Dependency Inversion Principal 3. A Dependency Injection használatával a kódunk:  Tisztálbb lesz  Könnyebb lesz módosítani  és könnyebb lesz újrafelhasználni

15 Hogyan inicializáljuk a függőségeket?  Osztályaink most már külső dependency-ktől függnek  Hogy derítjük ki, hogy a függőségeknek vannak-e más függőségeik?  Hogyan inicializáljuk a külső függőségeket?

16 Service Locator Design Pattern  Adott objektum (szolgáltatás) létrehozását kiveszi a szolgáltatás igénylője (kliens) hatásköréből. A szolgáltatást a komponens konténer hozza létre és tárolja (registry), a kliens a konténer API-n keresztül érheti el az arra mutató referenciát (lookup).  Egyéb elnevezései:Object Factory, Component Broker, Component Registry

17 Service Locator működése  Minden esetben, amikor meghívjuk a getDependency() metódusunkat,  Inicializál, vagy meglévő objektumot hoz létre  A Service Locator nagy előnye, hogy komplex függőségeket is transzparensen fel tud oldani

18 SPRING – DI példa class Traveller { public static void main(String[] args) { Car car = new Car(); car.move(); } class Car { public void move() { System.out.println(“move”); }

19 SPRING – DI példa class Traveller { public static void main(String[] args) { Vehicle v = new Car(); v.move(); } class Car implements Vehicle public void move() { System.out.println(“move”); } interface Vehicle { void move(); }

20 SPRING – DI példa class Traveller { public static void main(String[] args) { ApplicationContext context = new ClassPathXmlApplicationContext("spring.xml"); Vehicle v = context.getBean(“vehicle”); v.move(); class Car implements Vehicle public void move() { System.out.println(“move”); } interface Vehicle { void move(); }

21 SPRING – DI példa A Car igényelni fog egy Wheel objektumot CAR WHEEL Spring framework-kel CAR WHEEL A Car kap majd egy Wheel objektumot a konténertől

22 public class SpringAppTests private HelloService public void testSayHello() { Assert.assertEquals("Hello world!", helloService.sayHello()); }

23 MAVEN   Build mechanizmus egyszerűsítésére jött létre  Külső library-k kezelése (Nincs többé lib verziózás, lib-ek másolgatása)  Maven Repository  Maven életciklus: clean, compile, deploy, install, …  Packaging types: ear, ejb, jar, war, …

24 Köszönöm a figyelmet!


Letölteni ppt "SPRING FRAMEWORK bemutatása Vasi Sándor Greencode Kft"

Hasonló előadás


Google Hirdetések