Spring 2.5 i Javaenterprise Edition

Download as
 PPT
Presentation Description 

No description available

Happy Thanksgiving
What's up on authorSTREAM?
Views: 190
Like it  ( Likes) Dislike it  ( Dislikes)
Added: December 04, 2008 This Presentation is Public 
Presentation Category : Science & Technology All Rights Reserved
Presentation Transcript

Spring 2.5 z punktu widzenia programisty JavaEnterprise Edition :Spring 2.5 z punktu widzenia programisty JavaEnterprise Edition Łukasz Budnik 20/11/2008


Agenda :Agenda Przegląd nowości Spring 2.5 Budowa przykładowej aplikacji JEE 5.0 2.1. Wykorzystanie JSR 250 do definiowania metod typu callback oraz wstrzykiwania zasobów 2.2. Wykorzystanie Java Persistance API jako warstwy danych JEE 5.0 2.3. Wykorzystanie JSR 220 do definiowania komponentów JEE 5.0 Podsumowanie


1. Przegląd nowości w Spring 2.5 :1. Przegląd nowości w Spring 2.5


Nowe mechanizmy Spring 2.5 :Nowe mechanizmy Spring 2.5 @Autowire, @Qualifier AspectJ Load time weaving Nowe namespace’y (np. context, jms) Spring TestContext Framework (np. wstrzykiwanie zależności do testów JUnit)


Pełne wsparcie JDK 1.6 :Pełne wsparcie JDK 1.6 JDBC 4.0 JMX MXBeans ServiceLoader API JTA 1.1 JAX-WS 2.0


Wsparcie JEE 5.0 :Wsparcie JEE 5.0 Servlet 2.5 JSP 2.1 JSF 1.2 JCA 1.5 częściowa implementacja JSR 250Common Annotations for the Java™ Platform częściowa implementacja JSR 220Enterprise JavaBeans™


2. Budowa przykładowej aplikacji JEE :2. Budowa przykładowej aplikacji JEE


2.1. Wykorzystanie JSR 250 :2.1. Wykorzystanie JSR 250


JSR 250 :JSR 250 @PostConstructprivate void init() { log.info("ctx injected? ==> " + (ctx != null));} @PreDestroyprivate void clean() { log.info("Some clean up here...");} @Resource(name = "helperServiceNewImpl")private HelperService helperService;


JSR 250 & JNDI :JSR 250 & JNDI @Resource(name = "jdbc/MyDataSource")private DataSource dataSource;


2.2. Wykorzystanie JPA jako warstwy danych :2.2. Wykorzystanie JPA jako warstwy danych


Wsparcie dla JPA :Wsparcie dla JPA @PersistenceContext/@PersistenceUnit - już od Spring 2.0 @Transactional – Spring specific @TransactionAttribute - EJB 3.0, dostępne od Spring 2.5


JPA – AppContext.xml :JPA – AppContext.xml


JPA - Java :JPA - Java @Repositorypublic class UserJPADAOImpl { Log log = LogFactory.getLog(UserJPADAOImpl.class); @PersistenceContext private EntityManager em; @TransactionAttribute(TransactionAttributeType.REQUIRES_NEW) public void create(User user) { em.persist(user); }}


2.3. Wykorzystanie JSR 220 do definiowania komponentów :2.3. Wykorzystanie JSR 220 do definiowania komponentów


JSR 220 wspierane anotacje :JSR 220 wspierane anotacje @Stateless/@Stateful @TransactionAttribute @EJB


@Stateless/@Stateful :@Stateless/@Stateful @Statelesspublic class UserJPADAOImpl implements UserJPADAO { /* kod tutaj */}


@EJB :@EJB @Stateless public class XImpl implements X { Log log = LogFactory.getLog(XImpl.class); @EJB private UserJPADAO userJPADAO; @PostConstruct private void init() { log.info("Spring EJB userJPADAO injected successfuly? ==> " + (userJPADAO != null)); } }


3. Podsumowanie :3. Podsumowanie


Wady :Wady Programista nie może używać Springowych anotacji (po przeniesieniu aplikacji na serwer aplikacji nie będą one domyślnie interpretowane) Programista musi pamiętać, że niektóre anotacje działają inaczej na serwerze aplikacji a inaczej gdy aplikacja uruchamiana jest w Springowym kontenetrze (przykład @Resource)


Zalety :Zalety Aplikacja napisana z użyciem JSR 250, JPA, JSR 220 może być uruchamiana zarówno na serwerze aplikacji jak i zwykła aplikacja Springowa typu standalone Stworzylismy aplikację w JEE 5.0, wszystko działa poprawnie, ale czujemy, że trochę przesadziliśmy z infrastrukturą i technologią dla tak małej aplikacji (np. zasobożerny serwer aplikacji).Wystarczy jedynie skonfigurować poprawnie Springa i przenieść aplikację na zwykłego TomcataDo ciągnięcia przyczepki wystarczy osobowy samochód, nie potrzebujemy do niej 6 osiowej ciężarówki. W drugą stronę, napisaliśmy aplikację Springową dla której Tomcat to już za mało, potrzebujemy kontenera JEE w oparciu o który możemy przekształcić istniejącą aplikację w prawdziwy rozproszony system


Więcej o Spring 2.5 i JEE :Więcej o Spring 2.5 i JEE http://jee-bpel-soa.blogspot.com/2008/11/spring-for-jee-developers-jsr-250.html http://jee-bpel-soa.blogspot.com/2008/11/spring-for-jee-developers-jpa.html http://jee-bpel-soa.blogspot.com/2008/11/spring-for-jee-developers-stateless-ejb.html http://jee-bpel-soa.blogspot.com/


Pytania? :Pytania?


Dzięx! :Dzięx!