Βγήκε το NetBeans Spring Boot plugin για το Spring Boot v1.4.

Κυκλοφόρισε το NetBeans Spring Boot plugin για το Spring Boot v1.4.

Το plugin ειναι διαθέσιμο στο Plugin Manager του NetBeans IDE 8.1 και στο NetBeans Plugin Portal:

http://plugins.netbeans.org/plugin/67888/nb-springboot
Continue reading “Βγήκε το NetBeans Spring Boot plugin για το Spring Boot v1.4.”

Utilizing Spring Data JPA to simplify the Data Access Infrastructure

Παρακατω θα μιλήσουμε για τις δυνατοτητες του Spring Data και πως μπορουμε να τις εφαρμοσουμε σε υπαρχοντες μηχανισμους επικοινωνιας με την Βαση Δεδομενων με την χρηση του JPA programming Interface.

Λιγα λογια για το Java Persistence API.
To spring Data ειναι ενα σχετικα νεο project που στοχο εχει να απλοποιησει την διαδικασια ανταλλαγης δεδομενων με την Βαση Δεδομενων που χρησιμοποιουμε, το λεγομενο data access layer δηλαδη.
Πιο συγκεκριμενα θα δουμε στην πραξη το subproject Spring Data JPA που απλοποιει σημαντικα τις διαδικασιες ανταλλαγης δεδομενων μας στο repository layer οταν χρησιμοποιουμε JPA annotated Pojos(Plain old Java classes). Πρακτικα δηλαδη ειναι οι γνωστες java κλασεις που υλοποιουν την συμβαση που οριζει το Java Persistence API (JPA). Η συμβαση αυτη οριζει οτι πρεπει να τοποθετησουμε ορισμενα annotations τοσο στην κλαση μας οσο και στις μεταβλητες που περιλαμβανει αυτη η κλαση.
Τα annotations αυτα στην ουσια υλοποιουν το γνωστο ORM(Object Relational Mapping) ή πιο απλα την συνδεση κλασεων και tables μιας βασης δεδομενων.
Ειναι δηλαδη τα annotations αυτα καποια extra πληροφορια, συμφωνη με τον τροπο που οριζει το JPA interface , και υλοποιησιμη απο τον μηχανισμο που επεκτεινει το JPA interface και επικοινωνει πραγματικα με την Βαση Δεδομενων. To πλεον διαδεδομενο Framework που υλοποιει το JPA interface και τα JPA annotations προκειμενου να συνδεσει τις κλασεις με τα tables της Βασης Δεδομενων ειναι το Hibernate.
Πριν περασουμε στις ευκολιες που παρεχει το Spring Data JPA Και στο πως αυτο μπορει να εφαρμοστει στο project μας, Θα δουμε αρχικα ενα πραγματικο παραδειγμα επικοινωνιας με την βαση με τον «παραδοσιακο τροπο».
Continue reading “Utilizing Spring Data JPA to simplify the Data Access Infrastructure”

Consuming a RESTful Web Service

Σε αυτό το άρθρο θα μάθουμε πως μπορούμε με το Spring να καλέσουμε και να “καταναλώσουμε” ένα RESTful Web Service με τη χρήση του RestTemplate.

Η ανταλαγή μηνυμάτων JSON με χρήση AJAX στο Web είναι ίσως το δυνατότερο και ευκολότερο εργαλείο ενώς προγραμματιστή. Το spring εκεί με τα @ResponseBody και με τη χρήση του Jackson έχει απλοποιήσει εκπληκτικά τα πράγματα στην ανταλαγή μηνυμάτων. Περισσότερες πληροφορίες γι’ αυτό θα βρείτε εδώ Building a RESTful Web Service. Τι γίνεται στην περίπτωση όμως που θέλουμε να καλέσουμε μια RESTful μεθοδο ενώς άλλου WS μέσα απο μια δικιά μας μέθοδο και να κάνουμε map τα αποτελέσματά της? Το Spring το κάνει επίσης πάρα πολύ εύκολο. Ξεκινάμε…

Continue reading “Consuming a RESTful Web Service”

Create a JNDI Datasource with Tomcat 7

Μια multi-user εφαρμογή που χρησημοποιεί κάποια database δεν μπορεί να είναι αξιόπιστη αν δεν χρησημοποιεί connection pooling. Ο Tomcat 7 αντικατέστησε την απο προεπιλογή common-dbcp βιβλιοθήκη του με το Tomcat JDBC. Μπορειτε να δειτε εδώ http://www.tomcatexpert.com/blog/2012/01/24/using-tomcat-7-jdbc-connection-pool-production και εδώ http://www.tomcatexpert.com/blog/2010/04/01/configuring-jdbc-pool-high-concurrency μερικά άρθρα γι αυτό το ζήτημα.

Έστωσαν οτι θέλουμε να φτιάξουμε ενα τέτοιο pool σε εναν Tomcat 7 για μια MySQL βάση δεδομένων. Ισοδύναμα βήματα γίνονται για ολες τις αλλες βάσεις. Τα βήματα που κάνουμε είναι τα εξής.
Continue reading “Create a JNDI Datasource with Tomcat 7”

Aspect Oriented Programming (AOP) σε Spring

Σε αυτό το άρθρο θα δούμε πως μπορούμε να χρησιμοποιήσουμε τα Annotations του AspectJ μαζί με Spring AOP για να αναχαιτίσουμε μεθόδους και να τρέξουμε κώδικα που χρειαζόμαστε πριν ή μετά την αναχαιτισμένη μέθοδο. Αυτή η τεχνική μας επιτρέπει να εκτελούμε διαδικασίες όπως Logging, Transactions και Profiling χωρίς να χρειαστεί να αλλάξουμε τον υπάρχων κώδικα.

Προαπαιτούμενα

1. pom.xml Εισάγουμε στο pom.xml τα παρακάτω:

<dependency>
	<groupid>org.springframework</groupid>
	<artifactid>spring-aop</artifactid>
	<version>${spring.version}</version>
</dependency>

<dependency>
	<groupid>org.aspectj</groupid>
	<artifactid>aspectjrt</artifactid>
	<version>1.6.11</version>
</dependency>

<dependency>
	<groupid>org.aspectj</groupid>
	<artifactid>aspectjweaver</artifactid>
	<version>1.6.11</version>
</dependency>

Continue reading “Aspect Oriented Programming (AOP) σε Spring”

Χρήση Hibernate OneToMany

Σε αυτό το παράδειγμα ας υποθέσουμε ότι έχουμε Projects που το κάθε ένα έχει πολλούς μηχανικούς. Πρόκειται για μία σχέση One to Many μεταξύ της οντότητας Project και της οντότητας Engineer. Παρακάτω θα δούμε πως μπορούμε εύκολα με Annotations να εκφράσουμε αυτή την σχέση σε Hibernate και Java.

Continue reading “Χρήση Hibernate OneToMany”

Spring Framework 3.2 goes GA

Ενα χρόνο μετά απο το Spring 3.1 ο Juergen Hoeller ανακοίνωσε την έκδοση 3.2 στο blog της springsource

Κύρια χαρακτηριστηκά είναι

  •  Refined Java SE 7 support
  •  Concurrency refinements across the framework
  •  Allowing for @Autowired and @Value to be used as meta-annotations
  •  Support for custom @Bean definition annotations in @Configuration classes
  •  Asynchronous MVC processing on Servlet 3.0, with Spring MVC handler methods being able to return Callables and DeferredResults
  •  Inclusion of the formerly-standalone Spring MVC Test project, allowing for first-class testing of Spring MVC applications
  •  Support for loading WebApplicationContexts in the TestContext framework, and further improvements for web application testing
  •  Early support for JCache 0.5 (JSR-107) as a backend for Spring’s cache abstraction

Για περισσότερες λεπτομέρειες μπορείτε να δείτε το σχετικό άρθρο της springsource εδώ

Εγκατάσταση σε UBUNTU του Eclipse – Spring Tool Suite (STS)

Δε νομίζω ότι υπάρχει κάποιος από εμάς που να μην γνωρίζει για το Eclipse. Το συγκεκριμένο περιβάλλον ανάπτυξης ούτως ή άλλως δε χρειάζεται ιδιαίτερες συστάσεις. Οι γλώσσες προγραμματισμού που υποστηρίζει είναι πρακτικά απεριόριστες (χάρη σε αμέτρητα plugins που έχουν βγεί) ενώ τις δυνατότητες επεκτασιμότητάς του έχουν χρησιμοποιήσει διάφορες τεχνολογίες. Σε αυτό το πλαίσιο η Springsource δημιούργησε ένα ξεχωριστό περιβάλλον ανάπτυξης για όλη τη γκάμα των τεχνολογιών της, το Spring Tool Suite (STS), που κουμπώνει πάνω στο Eclipse.

Το STS το έχουμε δει και σε προηγούμενα άρθρα μας. Εδώ θα δούμε πώς εγκαθίσταται σε ένα περιβάλλον Ubuntu σε λίγα, απλά βήματα.

Continue reading “Εγκατάσταση σε UBUNTU του Eclipse – Spring Tool Suite (STS)”

Εγκατάσταση Apache Directory Server (ApacheDS) σε UBUNTU

Ο ApacheSD είναι μια ανερχόμενη δύναμη στους Directory Servers, είναι Java based και χρησημοποιεί το γνωστό framework Spring για την λειτουργεία του.

Η Εγκαταστασή του στο Ubuntu είναι αρκετά εύκολή υπόθεση.

Προαπαιτούμενα

Πρέπει να υπάρχει στο σύστημα Java έκδοση 5 ή μεγαλύτερη. Προτείνω την SUN-JAVA και ότι το OpenJDK

Για να το ελενξουμε αυτό δίνουμε

java -version

και περιμένουμε να δούμε κάτι παρόμοιο με το παρακάτω

java version "1.5.0_06"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_06-b05)
Java HotSpot(TM) Client VM (build 1.5.0_06-b05, mixed mode)

Αν λοιπον δεν είναι εγκατεστημένη τότε δίνουμε το παρακάτω στην κονσόλα

sudo apt-get -y install maven2 sun-java6-jdk java-common

Continue reading “Εγκατάσταση Apache Directory Server (ApacheDS) σε UBUNTU”