[video] Lightweight JEE7 with JAX RS

Είχα την τύχη να παρακολουθήσω φέτος το εκπληκτικό συνέδριο JCrete μετά απο πρόσκληση για εκδήλωση ενδιαφέροντος του Java Champion και συνδιοργανωτή Dr Heinz Kabutz . Εκεί λοιπόν σε μια παρουσίαση του Java Champion Sebastian Daschner με αντίστοιχο θέμα είδα τη δυνατότητα με χρήση JEE χωρίς να κατασκευάζεις τεράστιες και “βαριές” εφαρμογές της δημιουργίας μικρών web εφαρμογών που γρήγορα σου δίνουν RESTfull endpoint exposure οπότε αποφάσισα να φτιάξω το παρακάτω βίντεο.

Όλος ο κώδικας του παρακάτω βίντεο είναι στο Github https://github.com/diakogiannis/LightJee7WithJaxRS

Σύντομα θα βγάλω και δεύτερο μέρος που να περιλαμβάνει persistence κλπ.

NetBeans Day Athens 2016

WHEN 

WHERE INNOVATHENS – Kόμβος Καινοτομίας και Επιχειρηματικότητας της Τεχνόπολης του Δήμου Αθηναίων Τεχνόπολη Δήμου Αθηναίων – Κτίριο Αεριοφυλάκιο 2 – Πειραιώς 100, 11854 Γκάζι –View Map

Book Now for free: https://www.eventbrite.com/e/netbeans-day-athens-2016-tickets-24919688459

NetBeans Days is an international event that takes places in various countries around the world, since JavaOne 2014, where the idea was conceived. It is about the NetBeans IDE and Rich Client Platform as well as up to date information of the Java programming language (and also other languages that are supported by NetBeans).

The NetBeans Community, in collaboration with the Hub of Innovation & Entrepreneurship of Technopolis City of Athens is proud to invite you to a free event, on Friday 26 August, regarding the NetBeans IDE and Rich Client Platform. Take the opportunity to learn about the latest tips and tricks of the NetBeans IDE and the NetBeans platform by experts on the subject. Continue reading “NetBeans Day Athens 2016”

How to reference Spring Beans from Everywhere!

Λοπόν, με αφορμή κάτι που με ταλαιπωρούσε γράφω τον παρακάτω οδηγό έτσι ώστε να δείξω πως μπορείς να καλέσεις ενα Spring Bean απο πρακτικά οπουδήποτε.

Ουσιαστικά έχουμε τις εξής περιπτώσεις περιπτώσεις για να καλέσουμε ένα bean

  1. Σε Spring non Web Application
  2. Σε Spring Web Application
    1. Μέσα απο κάποιον controller
    2. Μέσα σε κάποιο servlet
    3. Μέσα σε κάποιο implementation ή οποιαδήποτε άλλη Business Logic Class (aka μια απλή java class)

Θα τις πάρουμε λοιπόν μία-μία για να δούμε πως θα δουλέψουμε.

Πρώτα όμως θα φτιάξουμε ένα Bean το οποίο και θα καλούμε κάθε φορά μέσα στο κώδικά μας.

Το Spring Bean δεν είναι τίποτε άλλο απο ένα POJO (Plain Old Java Object) το οποίο με το που γίνεται initialize το Spring Context οι setters του “γεμίζουν” με ό,τι ορίζουμε εμείς στο context.xml (το κύριο xml που ορίζοντε όλοι οι παράμετροι του Spring, θα μπορούσε να λέγεται και διαφορετικά)

Στο παράδειγμά μας θα φτιάξω ένα Constants Bean το οποίο θα περιέχει πχ “σταθερές” που θέλω να χρησημοποιώ παντού και να τις ελέγχω απο το XML

Continue reading “How to reference Spring Beans from Everywhere!”

Πως να κάνετε εγκατάσταση Tomcat 6 σε Ubuntu

Ο Tomcat είναι απο τους αγαπημένους μου application servers για ένα εκκατομύριο λόγους. Ας τον εγκατάστείσουμε λοιπόν στο αγαπημένο OS μου!

Αρχικά ΜΗΝ ΕΓΚΑΤΑΣΤΗΣΕΤΕ Tomcat απο τα REPOSITORIES!! Κάθε φορά που το κάνω το μετανιώνω γιατί μου σπάει τα paths και μαζί με αυτό και τα νεύρα!

Ξεκινάμε λοιπόν, γινόμαστε root και κατεβάζουμε τον Tomcat στη τελευταία έκδοσή του (επι του προκειμένου 6.0.29) στο /var (που με βολεύει εμένα συνήθως 😛 ), κάνουμε αποσυμπίεση και του δίνουμε το “φιλικό” όνομα φακέλου tomcat6 Continue reading “Πως να κάνετε εγκατάσταση Tomcat 6 σε Ubuntu”

Spring Framework Series: Μερος 3ο

1. ΕΙΣΑΓΩΓΗ

Καλωσορίσατε στο 3ο μέρος της σειράς για το Spring Framework. Μέχρι τώρα είχαμε την ευκαιρία να δούμε τι είναι το Spring framework και πώς, πολύ γρήγορα, μπορούμε να στήσουμε ένα σημείο εκκίνησης για να κατασκευάσουμε μία web εφαρμογή βασισμένη στην πλατφόρμα αυτή. Πάμε τώρα να δούμε αναλυτικά τον τρόπο λειτουργίας του και τα επιμέρους κομμάτια μίας Spring MVC εφαρμογής.

ΕΤΟΙΜΟΙ; Φύγαμε!

Continue reading “Spring Framework Series: Μερος 3ο”

Glasshish v3 Installation on Ubuntu / Debian

Όλοι όσοι έχουν ασχολιθεί με J2EE development σίγουρα σε κάποια περίοδο έχουν συναντήσει άρθρα τα οποία περιγράφουν το νέο application server της SUN (ORACLE πλέον) τον Glassfish στην περίφημη έκδοσή του την v3.

Η Αλήθεια είναι πως πρόκειται για ένα πολύ μεγάλο βήμα και για έναν πάρα πολύ καλό full j2ee compiant application server ο οποίος έχει πολλές καλές αποκρίσεις και απο πλευράς ταχύτητας αλλά και χρηστηκότητας.

Ας δούμε λοιπόν την εγκατάσταση του σε Ubuntu 10.04 LTS. Με όμοιο τρόπο γίνεται και σε Debian Lenny.

Κάνουμε login σε ένα terminal με χρήστη root ή εναλλακτικά τρέχουμε sudo -i για να έχουμε ισοδύναμη κατάσταση. Εγκαθιστούμε το maven2 και το sun java6 developers kit δίνοντας

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

Continue reading “Glasshish v3 Installation on Ubuntu / Debian”

Εισαγωγη στο Hibernate

Αυτός ο οδηγός θα σας δείξει τη βασική χρήση του Hibernate 3.0. Το Hibernate είναι ένα open source object relational mapping tool για Java.

Προσφαίρει υψηλής απόδοσης object/relational persistence και query service για Java.

Με το Hibernate μπορείτε να φτιάξετε persistent classes και με τη Hibernate Query Language, μπορείτε να γεφυρώσετε τις σχέσεις σε όλες τις βασεις δεδομένων. Μπορείτε να χρησημοποιήσετε native SQL ή Java-based Κριτήρια.

Αυτή τη στιγμή το Hibernate είναι το πλέον δημοφιλές object/relational mapping solution για Java

Continue reading “Εισαγωγη στο Hibernate”

Spring Framework Series: Μερος 2ο

ΕΙΣΑΓΩΓΗ

Στο 1ο μέρος αυτής της σειράς κάναμε μία γενική επισκόπηση του Spring Framework και είδαμε τα πλεονεκτήματα και τις δυνατοτητες που προσφέρει στον σύγχρονο J2EE developer (και όχι μονο). Ωραία η θεωρία, όμως  χωρίς πρακτικό κομμάτι…. δεν πάιζει. Πάμε λοιπόν να δούμε στο 2o μέρος αυτής της σειράς πώς μπορούμε να στήσουμε ένα Project σε Spring μέσα σε ελάχιστο χρόνο.

Continue reading “Spring Framework Series: Μερος 2ο”

J2EE και Aspect Oriented Programming

ΕΙΣΑΓΩΓΗ

Όπως οι περισσότεροι προγραμματιστές J2EE, έχω γαλουχηθει, στο μεγαλύτερο μέρος της καριέρας μου, και για πολλά χρόνια, στην ανάπτυξη συστημάτων λογισμικού με τη χρήση τεχνικών αντικειμενοστραφούς προγραμματισμού (OOP). Η μέθοδος αυτή είναι η πλέον διαδεδομένη με κύριο χαρακτηριστικό τον κατακερματισμό ενός προβλήματος σε αντικείμενα που χαρακτηρίζονται από ιδιότητες (μέθοδους) και δεδομένα (μεταβλητές).

Παρά το γεγονός ότι ο OOP έχει μεγάλη επιτυχία στη διαμόρφωση και υλοποίηση πολύπλοκων συστημάτων λογισμικού, έχει και τα προβλήματά του. Η πρακτική εμπειρία με μεγάλα έργα έχει δείξει ότι οι προγραμματιστές ενδέχεται να αντιμετωπίσουν  προβλήματα με τη διατήρηση του κώδικα τους, δεδομένου ότι όσο μεγαλύτερο το λογισμικό που υλοποιείται τόσο και πιο δύσκολος γίνεται ο ξεκάθαρος διαχωρισμός του έργου σε ενότητες (αντικείμενα), πράγμα και το οποίο  αποτελεί τη βάση του OOP. Για παράδειγμα, μια μικρή αλλαγή σε μία επαναχρησιμοποιούμενη ενότητα μπορεί τελικά να προκαλέσει πολλές αλλαγές σε άλλες, ανεξάρτητες, ενότητες του κώδικα.

Τέτοιου είδους προβλήματα και πολλές άλλες ανησυχίες έρχεται να επιλύσει μία διαφορετική τεχνική, ο πτυχοστρεφής  ή κατά άλλους θεματοστρεφής προγραμματισμός (AOP). Πάμε να δούμε  λοιπόν κάποια προκατάρκτικά στοιχέια για αυτόν.

Σημείωση: Προτείνω γενικά τον όρο πτυχοστρεφή γιατί εκφράζει καλύτερα την έννοια aspect στα ελληνικά ακόμη και σε λειτουργικό επίπεδο.

Continue reading “J2EE και Aspect Oriented Programming”

RESTfull Services in Spring 3 MVC

SpringSourceΤα τελευταία χρόνια, το έχει γίνει η ντε φάκτο εναλλακτική λύση αντί για τις SOAP / WSDL /WS αρχιτεκτονικές. Δε μπορούσε λοιπόν να μείνει απ’εξω από τη τελευταία έκδοση του Spring τη 3.0.

Έτσι λοιπόν κατασκεύασαν μια υλοποίηση για ‘RESTful’ Web services και application και τις ενσωμάτωσαν στο @Controller model του Spring MVC.

RESTful χαρακτηριστικά στο Spring MVC 3.0

URI Templates

Ένα από τα πολύ σημαντικά χαρακτηριστικά είναι τα uri templates.

Μέχρι τώρα ήταν σχετικά δύσκολο να έχεις friendly urls. Έπρεπε να χρησιμοποιήσεις url rewriting αρκετές «πατέντες» ή κάποιο ποιο εξειδικευμένο κομμάτι του framework που να σου δίνει flows και να μανατζάρει όλο αυτό το κομμάτι.

Continue reading “RESTfull Services in Spring 3 MVC”