JSF 2 ja Java EE 6

Vuoden alussa julkaistiin tuore versio Java EE 6 alustasta. Pieniä päivityksiä oli runsaasti, mutta merkittävämpiä oli esim. Servlet 3.0, sekä JavaServer Faces 2. Java työkaluilla toimivan web-kehittäjän kannalta nämä mullistavat pelikentän, mutta hyvällä tavalla. Oppia on käyty ottamassa kilpailevista tekniikoista ja JSF 2.0 on pähkinänkuoressa JSF 1 + Seam + Facelets + AJAX.

Mikä sitten muuttui? Viime vuosina kantavana teemana on ollut Java-alustalla helppous. Configure By Exception periaate tarkoittaa että alustassa on paljon oletuksia, joita ei näin ole pakko säätää – ellei ole tarvetta niitä muuttaa. Annotaatiot antavat mahdollisuuden tehdä säätöjä koodatessa, ilman että täytyy hypätä xml konfiguraatiotiedostoihin ja takaisin. Tämä parantaa sovelluskehittäjän tuottavuutta, vähentää huolimattomuusvirheitä, ja antaa paremmat mahdollisuudet refaktorointiin.

Nämä uudet piirteet tehtiin ensiksi EJB alustalle EJB 3 versiossa, sitten Web Service alustan versioon JAX-WS 2.0, ja nyt ne ovat tulleet Servlet ja JSF puolellekin. Tässä esimerkki Servlet 3.0 mallista:

package example;

import javax.io.*;
import javax.servlet.*;
import javax.servlet.annotation.*;

@WebServlet(value=”/hello”, name=”hello-servlet”)
public class HelloServlet extends GenericServlet {

  public void service(ServletRequest req, ServletResponse res)
    throws IOException, ServletException
  {
    res.getWriter().println(”Hello World!”);
  }
}

Yksinkertaista? web.xml tiedosto muuttui standardissa valinnaiseksi, eikä joka servlettiä ole pakko enää käydä sinne mäppäämässä. Servlet vastaa osoitteessa /hello, kuten annotaatio määrittää.

JSF 2.0 koki vastaavia muutoksia: vanhassa mallissa oli pakollista tehdä faces-config.xml tiedosto, jossa mm. määritetään managed beanit, ja määritellään sivunavigaatio. Tämä pakotti web-kehittäjän hyppelemään html-leiskasta javakoodiin ja sieltä xml-konfiguraatioihin. Nyt managed-beanit ja niiden muuttujanäkyvyyden voi määrittää annotaatioilla, tähän tapaan:

@ManagedBean
@RequestScoped
public class MyBean {

}

Bean näkyy välittömästi sovelluksen asennuksen yhteydessä managed beaninä, omalla nimellään oletusarvoisesti, ja siihen voi viitata sivulla tähän tapaan:

<h:outputText value=”#{MyBean.myValue}”/>

Yksinkertaista ja nopeaa, ja kuten edellä todettiin, myös refaktoroinnin kannalta kätevää. Voidaan paremmin keskittyä ratkaisun tekoon ja testaukseen. Jos vanhaa xml-muotoa kaipaa, sen voi toki lisätä vaikka jälkikäteenkin, ja näin ylikirjoittaa annotaatioilla tehtyjä määrityksiä.

Jatkan tarinointia myöhemmin tulevissa pohdiskeluissa.

Advertisements

Vastaa

Täytä tietosi alle tai klikkaa kuvaketta kirjautuaksesi sisään:

WordPress.com-logo

Olet kommentoimassa WordPress.com -tilin nimissä. Log Out / Muuta )

Twitter-kuva

Olet kommentoimassa Twitter -tilin nimissä. Log Out / Muuta )

Facebook-kuva

Olet kommentoimassa Facebook -tilin nimissä. Log Out / Muuta )

Google+ photo

Olet kommentoimassa Google+ -tilin nimissä. Log Out / Muuta )

Muodostetaan yhteyttä palveluun %s