1 / 24

SPRING FRAMEWORK bemutatása

SPRING FRAMEWORK bemutatása. Vasi Sándor Greencode Kft Sandor.vasi @ greencode.hu. A Spring Framework alapelvei. A J2EE fejlesztésének nem kellene ilyen bonyolultnak lennie (Rod Johnson – J2EE Development without J2EE) Legyen a keretrendszer lightweight.

hoai
Download Presentation

SPRING FRAMEWORK bemutatása

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. SPRING FRAMEWORKbemutatása Vasi Sándor GreencodeKft Sandor.vasi@greencode.hu

  2. A Spring Framework alapelvei A J2EE fejlesztéséneknemkelleneilyenbonyolultnaklennie (Rod Johnson – J2EE Development without J2EE) Legyen a keretrendszer lightweight

  3. A Spring Framework alapelvei 2. AzOOP irányelveksokkalfontosabbak, mint a bármelyik framework, mint pl a J2EE Túlsok a Checked Exception a Java-ban. A framework ne kényszerítsen a használatára A tesztelhetőségetelőkellsegítenieegy framework-nek Fejlesztésiciklusjavítása == produktuvitásnövelése

  4. Konténerek

  5. Miszükséges a SPRING működéséhez? • Egykülsőalkalmazás, amiinicializálja a SPRING-et. (Ezlehetakár a web-container is) • Osztályok, amelyek BEAN-ek, amikhetmajd el tudokérni a framework segítségével • Bean Factory vagy Application Context • Konfigurációsfá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 Dependency Injection Mitjelent a “dependency” – azazfüggőség? DEPENDENCY uses class other class

  8. Dependency Injection 2. DEPENDENCY MODEL DATABASE FETCH PUSH • A dependency injection segítségével: • nemkelltöbbémetódusainkban a newoperátorthasználni • helyettemegkapjukaztparaméterként

  9. Dependency injection 3. Miértjóeznekünk? public void myMethod(DataBasedb) { db.fetchData … }

  10. Dependency Injection 4. Házépítő robot A robot deszkákbólfalakattudössze-építeni. Mittegyünk, amikorarrakerül a sor, hogyazajtótkellbeépíteni? Felprogramozzuk a robotunknat, hogytudjonegyediajtót is építeni a deszkákból?vagy Ajtógyártókszabványajtóitépíttetjük be vele?

  11. Dependency Injection 5. A Dependency Injection függetleníti a modeljeinket a külsúfüggőségektől (dependency) Ezt a műveletetazangolszakirodalomdecoupeling–nek nevezi Miértfontos a modellekfüggetlenítéseegymástól?

  12. Dependency Inversion Principal Magasszintűmoduloknaknemszabadalacsonyszintűmoduloktólfüggniük. Midnkétmodulnakabsztakcióktólkellfüggnijük. Azabsztrakcióknaknemszabad a részletekktőlfüggniük, pontellenkezőleg, a részleteknekkellazabsztakcióktólfüggniük.

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

  14. Dependency Inversion Principal 3. A Dependency Injection használatával a kódunk: Tisztálbblesz Könnyebbleszmódosítani éskönnyebbleszújrafelhasználni

  15. Hogyaninicializáljuk a függőségeket? Osztályaink most márkülső dependency-ktőlfüggnek Hogyderítjükki, hogy a függőségeknekvannak-e másfüggőségeik? Hogyaninicializá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, amikormeghívjuk agetDependency()metódusunkat, Inicializál, vagymeglévőobjektumothozlétre A Service Locator nagyelőnye, hogykomplexfüggőségeket is transzparensenfeltudoldani

  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 { @Override public void move() { System.out.println(“move”); } } interface Vehicle { void move(); }

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

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

  22. SPRING tesztelése @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration("classpath:spring-config.xml") public class SpringAppTests { @Autowired private HelloServicehelloService; @Test public void testSayHello() { Assert.assertEquals("Hello world!", helloService.sayHello()); } }

  23. MAVEN http://maven.apache.org Build mechanizmusegyszerűsítésérejöttlétre Külső library-k kezelése (Nincstöbbé lib verziózás, lib-ekmásolgatása) Maven Repository Maven életciklus: clean, compile, deploy, install, … Packaging types: ear, ejb, jar, war, …

  24. Köszönöm a figyelmet!

More Related