Ir al contenido principal

Probando el plugin eclipse de Spring Roo

¿Os apetece crear una aplicación Java en unos pocos minutos?

Con Spring Roo es posible :) En este post vamos utilizar el plugin eclipse de Roo para crear la la web de una pizzería, siguiendo la documentación de Roo.

Software que he utilizado

  - Spring Roo 1.2 M1
  - Eclipse Indigo (3.7)
  - SpringSource Tool Suite for Eclipse Indigo
  - Java 6
  - Maven 3.0.3
  - Tomcat 7

Diagrama de clases


Requisitos de instalación
  - Instalamos Spring Roo
  - Instalamos el plugin de Spring Roo para Eclipse (Help >> Eclipse Marketplace...)

Creación de la aplicación web
1) Creamos un nuevo proyecto Roo (File >> New >> Project... >> Spring Roo Project)
2) Le asignamos un nombre y un paquete
3) Abrimos la shell de Roo pinchando con el botón derecho sobre el proyecto y seleccionando "Spring Tools >> Open Roo Shell"
4) Empezamos configurando la persistencia desde la shell de la siguiente manera:
jpa setup --provider HIBERNATE --database HYPERSONIC_IN_MEMORY














- Creamos las entities que tiene el diagrama de clases
entity --class ~.domain.Base --testAutomatically
field string --fieldName name --sizeMin 2 --notNull
entity --class ~.domain.Topping --testAutomatically
field string --fieldName name --sizeMin 2 --notNull
entity --class ~.domain.Pizza --testAutomatically
field string --fieldName name --notNull --sizeMin 2
field number --fieldName price --type java.math.BigDecimal
field set --fieldName toppings --type ~.domain.Topping
field reference --fieldName base --type ~.domain.Base
entity --class ~.domain.PizzaOrder --testAutomatically
field string --fieldName name --notNull --sizeMin 2
field string --fieldName address --sizeMax 30
field number --fieldName total --type java.math.BigDecimal
field date --fieldName deliveryDate --type java.util.Date
field set --fieldName pizzas --type ~.domain.Pizza

- Le añadimos la parte web
web mvc setup
web mvc all --package ~.web
- Generamos el archivo .war
perform package
5) Desplegamos el .war en nuestro servidor ¡Y ya tendríamos nuestra aplicación web lista!!!












Como hemos comprobado, con Spring Roo podemos crear una aplicación Java en pocos minutos, acelerando así muchísimo el tiempo normal de creación de un proyecto Java de estas características. Si creáramos la aplicación desde línea de comandos, en vez de usar el plugin, ejecutando 'perform eclipse' ya lo tendríamos preparado para importar el proyecto a nuestro eclipse y empezar con el desarrollo.

Referencia: Spring Roo

Entradas populares de este blog

Leer un fichero properties con java.util.Properties

Los ficheros .properties son simples ficheros de texto que se suelen utilizar para guardar parámetros de configuración, en forma de pares clave-valor. Ejemplo de fichero: configuration.properties #User parameters user.name=Ana user.language=spanish Si estamos usando Java, podemos utilizar la clase java.util.Properties para leer los parámetros de este fichero: private static final String USER_NAME = "user.name"; private static final String USER_LANGUAGE = "user.language"; public void showProperties() throws Exception { Properties p = new Properties(); InputStream is = App.class.getResourceAsStream("/configuration.properties"); p.load(is); is.close(); String userName = p.getProperty(USER_NAME); String userCountry = p.getProperty(USER_LANGUAGE); System.out.println("userName: "+userName); System.out.println("userLanguage: "+userCountry); } Después de ejecutar este método, obtendríamos la siguiente salida:

JSF 2.0: Managed Beans (III)

Anteriormente ya hemos visto que cuando se declara un bean, tenemos que darle un scope: application, session, view, request, none. Un scope es un mapeo entre nombres y objetos que se almacena durante un determinado periodo de tiempo. En este post vamos a explicar cada uno de ellos. Si declaramos el bean desde el fichero faces-config.xml, indicamos el scope en <managed-bean-scope> y si queremos hacerlo con anotaciones, utilizaremos @{Application,Session,View,Request,None}Scoped Application Con este scope, se guarda la información durante toda la vida de la aplicación web, independientemente de todas las peticiones y sesiones que se realicen. Este bean se instancia con la primera petición a la aplicación y desaparece cuando la aplicación web se elimina del servidor. Si queremos que el bean se instancie antes de que se muestre la primera página de la aplicación, usamos la propiedad eager a true. @ManagedBean(eager=true) ó <managed-bean eager="true"> Session

JSF 2.0: Message bundles

Los message bundles son ficheros .properties que guardan mensajes del tipo clave=valor. Si centralizamos todos los mensajes de nuestra aplicación en estos ficheros, es más fácil poder localizarlos si queremos realizar algún cambio y también nos ayuda para la internacionalización de la aplicación. Ejemplo: messages.properties (en src/java/com/examples) con dos mensajes name=Tu nombre: age=Tu edad: ¿Cómo los declaramos? 1) En cada página JSF donde lo necesitemos <f:loadBundle basename="com.examples.messages" var="msgs"/> 2) De manera global en faces-config.xml <application>      <resource-bundle>           <base-name>com.examples.messages</base-name>           <var>msg</var>      </resource-bundle> </application> Esta opción es más eficiente ya que sólo crea el bundle una vez para toda la aplicación ¿Cómo accedemos a los mensajes desde una página JSF? Siguiendo con el ejemplo, sería algo tan senc