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

Balogh-Biró Attila 2015.04.15 Schönherz Bázis – IT és villamosmérnök meetup ENTERPRISE JAVA EVOLÚCIÓ, AVAGY JAVA EE (VS) SPRING FRAMEWORK.

Hasonló előadás


Az előadások a következő témára: "Balogh-Biró Attila 2015.04.15 Schönherz Bázis – IT és villamosmérnök meetup ENTERPRISE JAVA EVOLÚCIÓ, AVAGY JAVA EE (VS) SPRING FRAMEWORK."— Előadás másolata:

1 Balogh-Biró Attila Schönherz Bázis – IT és villamosmérnök meetup ENTERPRISE JAVA EVOLÚCIÓ, AVAGY JAVA EE (VS) SPRING FRAMEWORK

2 CÉLKITŰZÉS Mi a célja ennek a mai beszélgetésnek? Historikus áttekintés A Spring framework evolúciója Java EE evolúció Technológiai összehasonlítás, konfiguráció Migráció Kapcsolódási pontok

3 MI A CÉLJA ENNEK A MAI BESZÉLGETÉSNEK? Egy fair összehasolítás Bemutatni a főbb szolgáltatásait a két versenyzőnknek Mérlegelni egy lehetséges, jó megközelitést nagyvállalati rendszerek feljlesztéséhez Nem célom a beszélgetés végén „győztest” hirdetni

4 HISTORIKUS ÁTTEKINTÉS 90-es évek vége Nehézkes, komplex és drága a nagyvállalati rendszerek fejlesztése Nincs iparági sztenderd A J2EE specifikáció nagy ígértetekkel érkezett anno (1998 JPE) A fejlesztők, az 1998-ban megjelent EJB specifikációt, kvázi szent Grálnak hitték

5 HISTORIKUS ÁTTEKINTÉS És amit kaptak…

6 HISTORIKUS ÁTTEKINTÉS 2003 a Spring megjelenésének éve Célja a fejlesztés egyszerűsítése a J2EE-hez képest POJO programing model IOC konténer Alkalmazás-szerver független

7 SPRING FRAMEWORK EVOLÚCIÓ Dependecy Injection POJO oriented development Declarative AOP & transactions MVC Framework Proble Specific XML Extensible Configuration Bean Scoping Groovy, JRuby and BeanShell JSP tag library Java 5 autoboxing and generics Annotation driving wiring Automatic bean configuration New annotation driven MVC framework JUnit 4-based integration testing JSR 300 “at inject” New Spring Expression Language First-class REST support Java based configuration Several new Spring MVC features Support for JSR 303 declarative validation Scheduled Jobs A new “C” namespace Configuration profiles Unified property resolution Java configuration features Servlet 3.0 support Declarative caching Spring MVC enhancements Mobile features Modern Web Data Access Social Security Cloud Ready

8 SPRING FRAMEWORK EVOLÚCIÓ Jelenlegi verzió a Java 8 támogatás Java EE 7 támogatás Generikus típusok használata DI során Qualifier-ként WebSocket támogatás

9 J2EE(JAVA EE) EVOLÚCIÓ May’98 Dec’99Sep’01Nov’03May’06 Dec’09 EJB 1.0 Servlet 2.1 EJB 1.1 Servlet 1.1 JSP 1.1 JMS JDBC 2.0 JNDI 1.2 JAF 1.0 JTA 1.0 JTS 0.95 JavaMail 1.1 Apr’13 Project JPE J2EE 1.2J2EE 1.3J2EE 1.4Java EE 5Java EE 6Java EE 7 10 specs 13 specs 20 specs 24 specs 28 specs32 specs EJB 2.0 (CMP, MDB, local EJB) Servlets 2.3 (Event, Filters) JSP 1.2 JDBC 2.1 JCA 1.0 JAAS 1.0 JAXP 1.0 EJB 2.1 Servlet 2.4 JSP 2.0 Web Services JMX J2EE Deploy JACC JAAS JAX-RPC JAXR JSTL EJB 3.0 JPA 1.0 JSF 1.2 Servlets 2.5 JSP 2.1 (Common EL) JAXB, SAAJ, WebService Injection Prunning Extensibility CDI JAX-RS Servlet 3.0 EJB 3.1 Lite JMS 2.0 Batch Caching TX Interceptor WebSocket JSON JAX-RS 2.0

10 TECHNOLÓGIAI ÖSSZEHASONLÍTÁS, KONFIGURÁCIÓ A Java EE és a Spring egyaránt ad middleware szolgáltatásokat A funkcionalitások sok esetben nagyon hasonlóak, sokszor azonban elértő megközelítést alkalmazva Vanilla alkalmazások esetében, a kódok szinte teljesen megegyeznek

11 TECHNOLÓGIAI ÖSSZEHASONLÍTÁS, KONFIGURÁCIÓ

12 Spring XML, Class, Annotáció alapú konfiguráció Java EE 7 Minimális konfiguráció beans.xml nem szükséges többé web.xml nem szükséges Servlet 3.0 óta

13 SPRING MVC (WEB.XML) KONFIGURÁCIÓ XML ALAPON

14 SPRING MVC(SERVLET-XML) KONFIGURÁCIÓ XML ALAPON

15 SPRING MVC 100 KONFIGURÁCIÓ KÓD ALAPON

16

17 ANNOTÁCIÓK Java EE N/A (w/ )

18 TERVEZÉSI MINTÁK Java EE minden bean + XML (for order)DecoratorN/A, @Before, Servlet 3.0+, Websockets Asynchronous

19 TESZTELHETŐSÉG Java EE 7SPRING Arquillian konténer tesztRugalmas teszt környezet, konténer nélküli tesztelhetőség (Spring Test Framework) Beágyazott Glassfish konténerServlet API mock objektumok (MockHttpServletRequest) Bean profiling, a különbőző környezetekhez Könnyű tesztelhetőség a REST-es API esetében is a builder API segitségével

20 SPRING TEST(REST, MVC)

21 MIGRÁCIÓ Milyen esetben érdemes példálul Spring alapokról JEE-re migrálni? Legacy alkalmazással van dolgunk (Korábbi Spring verzióban iródott)? Milyen okokból érdemes váltani? Gyorsabb lesz a rendszer? Biztonságosabb? Jobban menedzselhető? Milyen technikai szempontokat kell figyelembe vennünk?

22 MIGRÁCIÓ, NÉHÁNY MEGVÁLASZOLANDÓ KÉRDÉS Hogyan migráljuk az annotáció alapű DI működést? Hogyan migráljuk az XML alapú DI és factory bean máködést? Támogatott-e a property placeholder mechanizmus? Hogyan migráljuk az Aspektus orientált osztályainkat? Megoldott-e a programozott bean lookup? A Java EE támogatja a profilok használatát? Hogyan migráljuk a megirt Spring alapú teszt eseteinket? Felmerület számos egyéb kérdés...

23 HOGYAN MIGRÁLJUK AZ ANNOTÁCIÓ ALAPÚ DI MŰKÖDÉST? A bean szkópokat korábban megvizsgáltuk Amire figyelnünk kell, hogy a CDI-nak és a Spring-nek eltérőek az alapértelmezett bean szkópja Vigyázzunk a FINAL minősitéssel, a CDI a java assist API-t használja a PROXY objektumok elkészitéséhez

24 HOGYAN MIGRÁLJUK AZ ANNOTÁCIÓ ALAPÚ DI MŰKÖDÉST

25 HOGYAN MIGRÁLJUK AZ XML ALAPÚ DI ÉS FACTORY BEAN MŰKÖDÉST?

26 HOGYAN MIGRÁLJUK AZ XML ALAPÚ DI ÉS FACTORY BEAN MŰKÖDÉST (FACTORY METHOD)?

27 TÁMOGATOTT-E A PROPERTY PLACEHOLDER MECHANIZMUS?

28 Alapértelmezésben nem Használható kulső library (Apache DeltaSpike) Irható saját CDI kiterjesztés

29 HOGYAN MIGRÁLJUK AZ ASPEKTUS ORIENTÁLT OSZTÁLYAINKAT?

30

31 MEGOLDOTT-E A PROGRAMOZOTT BEAN LOOKUP? A BeanManager nagyjából ekvivalens az ApplicationContext objektummal (Inkább a BeanFactory-val)

32 A JAVA EE TÁMOGATJA A PROFILOK HASZNÁLATÁT? A válasz majdnem Használható annotáció, azonban ennek működéséhez szükséges az XML- ben történő konfiguráció Nincs dinamikus környezet specifikus aktiválás Globális megoldás lehet egy CDI extension irása?

33 ÉRVEK ÉS ELLENÉRVEK(SPRING) Gyakran felmerülnek érvek az egyik, vagy másik technológia mögött A Spring framework jóval rugalmasabb, jobban használható, például az AOP esetében A Spring esetében gyorsabbak a releasek, mivel nem iparági sztenderd és egy gyártóval számolhatunk A JEE alkalmazás-szerverek lassúak, robosztusak, például egy Tomcat-hez képest

34 ÉRVEK ÉS ELLENÉRVEK Mivel a Java EE csak egy halmaza sztenderd specifikációknak, igy gyártó független, több implementáció közül választhatunk Mivel nagy iparági szereplők állnak a JEE mögött, igy a folyamatos fejlesztés, fenntarthatóság biztositott Nagyjából minden olyan feature-rel rendelkezik, mint a Spring, könnyen használhatóak külső osztálykönytárak

35 ÉRVEK ÉS ELLENÉRVEK Mivel a Java EE csak egy halmaza sztenderd specifikációknak, igy gyártó független, több implementáció közül választhatunk Mivel nagy iparági szereplők állnak a JEE mögött, igy a folyamatos fejlesztés, fenntarthatóság biztositott Nagyjából minden olyan feature-rel rendelkezik, mint a Spring, könnyen használhatóak külső osztálykönytárak

36 MINDENKÉPPEN VÁLASZTANUNK KELL?

37 BÉKÉS EGYÜTTÉLÉS Spring bean-ek injektálhatókak JSF menedzselt beanekbe Nativ Java EE támogatás a Spring oldaláról A Spring képes alapértelmezetten kezelni a különféle JPA implementációkat A Spring támogatja az alkalmazás-szervereket (jee névtér)

38 KONKLÚZIÓ Nincs olyan praktikus érv ami miatt választanunk kellene a kettő között, adott use case-től függ Egyfajta kiegyensúlyozott verseny egyaránt jó a fejlesztőknek és az eszköz gyártóknak Adottak az integrációs lehetőségek Azonban felmerülnek mindkét oldalról érvek, ellen érvek

39 Köszönöm a figyelmet!


Letölteni ppt "Balogh-Biró Attila 2015.04.15 Schönherz Bázis – IT és villamosmérnök meetup ENTERPRISE JAVA EVOLÚCIÓ, AVAGY JAVA EE (VS) SPRING FRAMEWORK."

Hasonló előadás


Google Hirdetések