Uczenie się przez przykład działa dla mnie
Oto szybki przykład idiomatycznej Java 6
public class Main {
public static void main(String[] args) {
// Shows a list forced to be Strings only
// The Arrays helper uses generics to identify the return type
// and takes varargs (...) to allow arbitary number of arguments
List<String> genericisedList = Arrays.asList("A","B","C");
// Demonstrates a for:each loop (read as for each item in genericisedList)
for (String item: genericisedList) {
System.out.printf("Using print formatting: %s%n",item);
}
// Note that the object is initialised directly with a primitive (autoboxing)
Integer autoboxedInteger = 1;
System.out.println(autoboxedInteger);
}
}
Nie przejmuj się Javą 5, jest przestarzała w stosunku do Java6.
Następny krok, adnotacje. Po prostu definiują one aspekty twojego kodu, które pozwalają czytającym adnotacje na wypełnienie dla Ciebie konfiguracji szablonów. Rozważ prostą usługę internetową, która wykorzystuje specyfikację JAX-RS (rozumie RESTful URI). Nie chcesz zawracać sobie głowy robieniem wszystkich paskudnych WSDL i zabawą z Axis2 itp., Chcesz szybki wynik. Racja, zrób to:
// Response to URIs that start with /Service (after the application context name)
@Path("/Service")
public class WebService {
// Respond to GET requests within the /Service selection
@GET
// Specify a path matcher that takes anything and assigns it to rawPathParams
@Path("/{rawPathParams:.*}")
public Response service(@Context HttpServletRequest request, @PathParam("rawPathParams") String rawPathParams) {
// Do some stuff with the raw path parameters
// Return a 200_OK
return Response.status(200).build();
}
}
Huk. Z odrobiną magii konfiguracyjnej w pliku web.xml jesteś wyłączony. Jeśli budujesz z Maven i masz skonfigurowaną wtyczkę Jetty, twój projekt będzie miał swój własny mały serwer sieciowy od razu po wyjęciu z pudełka (bez zbędnych kłopotów z JBoss lub Tomcat), a powyższy kod będzie odpowiadał na identyfikatory URI Formularz:
GET http://localhost:8080/contextName/Service/the/raw/path/params
Zadanie wykonane.