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!”

Ο Πούτιν επιβάλει το Linux στους κυβερνητικούς οργανισμούς!

Ο πρωθυπουργός της Ρωσίας Βλαντιμίρ Πούτιν και ο Ρώσος πρόεδρος Ντμίτρι Μεντβέντεφ έχουν εκφράσει τη συμπάθεια τους για το ανοικτό λογισμικό και απ’ οτι φαίνεται έχουν σκοπό να αποκλείσουν οποιαδήποτε εξάρτηση μπορεί να έχει η Ρωσία με ξένους κατασκευαστές software.

Έτσι λοιπόν η Ρωσική Κυβέρνηση, δημοσίευσε ένα χρονοδιάγραμμα για τη μετάβαση όλων των κρατικών συστημάτων μηχανογράφησης σε Open Source λογισμικό, ένα είδος ρωσικού Linux εγκαταλείποντας με αυτό τον τρόπο τα Windows.

Έτσι μέχρι το 2015 πρόκειται να απομακρυνθούν τα Windows από όλους τους κυβερνητικούς υπολογιστές και να εγκατασταθεί σε όλους ανοικτό λογισμικό.

Ο βασικότερος λόγος της μετάβασης αυτής είναι οτι φέτος λήγουν αρκετές από τις άδειες χρήσης των Windows σε πολλούς κυβερνητικούς οργανισμούς, αλλά και σε σχολεία της Μόσχας.

Με αυτό τον τρόπο η Ρωσία σκοπεύει να εξοικονομήσει αρκετά εκατομμύρια ευρώ από τις άδειες χρήσης αλλά και να κάνει τη χώρα ανεξάρτητη από ξένους κατασκευαστές software.

πηγή newsit.gr

Spring Framework Series: Μερος 4ο – Spring Webflow

Φτάσαμε αισίως στο 4ο μέρος της σειράς μας για το Spring. Στο προηγούμενο κομμάτι του αφιερώματος μας είδαμε την αρχιτεκτονική του Spring MVC και τις δυνατότητες που προσφέρει το framework στον προγραμματιστή για να υλοποιήσει μία εφαρμογή στηριζόμενη σε αυτό το J2EE pattern.

Σto σημερινό μας άρθρο θα δούμε μια εξελιγμένη μεθοδολογία που εισήγαγε η ομάδα του Spring που απλοποιεί τη διαδικασία κατασκευής εφαρμογών MVC ιδιαίτερα εκείνες που απαιτούν πολύπλοκες αλληλουχίες φορμών όπως για παράδειγμα ένας wizard, ένα shopping cart κτλ. Η τεχνική αυτή είναι το Spring Webflow.

1. ΕΙΣΑΓΩΓΗ

Φτάσαμε αισίως στο 4ο μέρος της σειράς μας για το Spring. Στο προηγούμενο κομμάτι του αφιερώματος μας είδαμε την αρχιτεκτονική του Spring MVC και τις δυνατότητες που προσφέρει το framework στον προγραμματιστή για να υλοποιήσει μία εφαρμογή στηριζόμενη σε αυτό το J2EE pattern.

Σto σημερινό μας άρθρο θα δούμε μια εξελιγμένη μεθοδολογία που εισήγαγε η ομάδα του Spring που απλοποιεί τη διαδικασία κατασκευής εφαρμογών MVC ιδιαίτερα εκείνες που απαιτούν πολύπλοκες αλληλουχίες φορμών όπως για παράδειγμα ένας wizard, ένα shopping cart κτλ. Η τεχνική αυτή είναι το Spring Webflow.

Continue reading “Spring Framework Series: Μερος 4ο – Spring Webflow”

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

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

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

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

Εκμηδενίστε το χρόνο υλοποίησης web εφαρμογών με το Spring Roo

Η υλοποίηση ενός Java project είναι μία δημιουργική διαδικασία που όμως όπως όλοι μας γνωρίζουμε αρκετές φορές εμπεριέχει κάποιες επαναλαμβανόμενες εργασίες  που μειώνουν τον ρυθμό ανάπτυξης και συνήθως τείνουν να είναι κουραστικές για τον προγραμματιστή. Αυτό ακριβώς το θέμα έρχεται να επιλύσει μία πολύ δυναμική τεχνολογία, το Roo από την Springsource.  Σκοπός του είναι να επιτρέψει στον developer να οικοδομήει υψηλής ποιότητας και υψηλής απόδοσης συστήματα σε λίγα μόνο λεπτά. Σε αυτό το άρθρο θα περιγράφεται αναλυτικά τι είναι αυτή η τεχνολογία και παράλληλα θα διαπιστώσουμε μαζί πώς μπορούμε να χτίσουμε μία πλήρως λειτουργική enterprise εφαρμογή σε λιγότερο απο ένα τέταρτο της ώρας.

1. ΕΙΣΑΓΩΓΗ

Η υλοποίηση ενός Java project είναι μία δημιουργική διαδικασία που όμως όπως όλοι μας γνωρίζουμε αρκετές φορές εμπεριέχει κάποιες επαναλαμβανόμενες εργασίες  που μειώνουν τον ρυθμό ανάπτυξης και συνήθως τείνουν να είναι κουραστικές για τον προγραμματιστή. Πόσες φορές για παράδειγμα δεν αγανακτούμε με το POJO που πρέπει να γράψουμε για να αντιστοιχήσουμε τις 100 στήλες ενός πίνακα σε Java πεδία, ή για την για την JSP που πρέπει να εμφανίζει σε φόρμα τα πεδία αυτά για input KAI με τα απαραίτητα validations. Για να μη μιλήσω για το plumbing που πρέπει να γίνει μεταξύ των components ενός τυπικού MVC. Όλα αυτά παίρνουν χρόνο και αποσπούν τη προσοχή από το core της εφαρμογής, δηλαδή το καθεαυτό business logic και μειώνουν, εν τέλει, την παραγωγικότητα.

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 δίνοντας

[bash]
apt-get -y install maven2 sun-java6-jdk java-common
[/bash]

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”