Java Web Apps with

Spring Framework

15.-17.6.2015
agileo.fi

ESITTELYT

Kouluttaja

Kurssilaiset
Nimi
Kokemus
Tavoitteet

TODO

Teoria
Esimerkkisovelluksia      20 kpl
Monivalintatehtäviä      100 kpl
Ohjelmointiharjoituksia    6 kpl
Ohjelmointiprojekteja      3 kpl

Materiaalia

Aikataulu

 APIP
MAWEBMVN
TISPRMVC
KESECADV

MA-AP : Web

  • Client-Server
  • HTTP
  • Servlet
  • JSP
  • Form
  • JSTL
  • Session
  • Design Patterns
  • JDBC

MA-IP : MVN

  • Maven
  • Junit
  • Mock
  • TDD

TI-AP : SPR

  • Inversion of Control
  • Dependency Injection
  • Spring Framework
  • Spring JDBC
  • XML Configuration
  • Bean Scopes
  • Logging

TI-IP : MVC

  • Spring Web MVC
  • Dispatcher Servlet
  • Request Mapping
  • Model Attribute
  • Path Variables
  • Autowiring
  • Internationalization
  • Bean Validation

KE-AP : SEC

  • Internationalization
  • Bean Validation
  • Authentication
  • Authorization
  • HTTP Security
  • Method Security

KE-IP : ADV

  • Spring Rest
  • Spring Boot
  • Java Configuration Classes
  • Spring Portlet MVC

Esimerkkisovelluksia

https://github.com/agileooy/spring.git

tiny.cc/agileospring

Eclipse ja Tomcat kuntoon

  1. Lataa Eclipse Luna (versio: IDE for Java EE developers)
  2. Lataa Tomcat 7
  3. Pura Eclipsen zip-paketti
  4. Pura Tomcatin zip-paketti
  5. Avaa Eclipse
  6. Lisää Java EE-perspektiivissä Servers-välilehdelle uusi palvelin (mallia Tomcat 7).
    Huom! Tee tämä ennen kuin tuot demoprojektit Eclipseen.
    File -> New -> Server -> Tomcat 7
    Valitse Tomcatin asennushakemistoksi juuri purkamasi tomcat-kansio.

    Esimerkkiprojektit Eclipseen

  1. Fork repo @ Github
    Luo oma Github-tunnus osoitteessa https://github.com/join
    Mene osoitteeseen https://github.com/agileooy/spring ja paina Fork
  2. Tuo demoprojektit Eclipseen
    File -> Import -> Git -> Projects From Git -> Clone URI -> URI: https://github.com/omatunnari/spring.git -> Import existing projects -> Select All -> Finish
  3. Avaa ssh-tunneli tietokantapalvelimelle,
    mikäli sovellus käyttää tietokantaa
    Linux & OS X: ssh -L 3306:localhost:3306 yourusername@dbserveripaddress
    Windows + Putty: http://tiny.cc/puttytunnel
  4. Lisää webbiprojekti Tomcat-palvelimelle
  5. Käynnistä Tomcat
  6. Avaa selain webbiprojektin aloitussivulle
    http://localhost:8080/projectname

Java Web Apps

Teoria

Esimerkkisovellukset e01-e10

Monivalinnat

Ohjelmointiharjoitus 1:

Web & DB

Laajenna esimerkkisovellus 8 sellaiseksi, että käyttöliittymästä käsin käyttäjä voi myös poistaa tietokannan taulun yksittäisiä rivejä.

Maven & JUnit

Teoria

Esimerkkisovellus e11

Monivalinnat

Ohjelmointiharjoitus 2:

Yksikkötestaus

Lisää kellosovellukseen luokka GmtIsoKello, jonka tarkoitus on näyttää päiväys ja kellonaika Greenwich Mean Time -aikavyöhykkeltä ISO-standardin mukaisesti. Esim. PVM: 2014-01-31, AIKA: 15:30:58.

Ennen kuin ohjelmoit toiminnallisuuden kokonaan, tee testiluokka GmtIsoKelloTest, joka testaa MockKelloLahde-luokan avulla, että aikavyöhyke ja muotoilu toimii määritysten mukaisesti. Lisää koodaamasi testiluokka AllTests-testisuiteen ja kokeile, että uudet testit eivät mene läpi suitea ajettaessa.

Ohjelmoi lopulta myös GmtIsoKello-luokan toiminnallisuus valmiiksi ja totea suitella, että kaikki toiminnallisuudet ovat valmiita. Muuta KelloServlet vielä lopuksi käyttämään GmtIsoKelloa InternetKelloLahteella.

Uuden Webbiprojektin luominen

1. Valitse Java EE -perspektiivi
Window -> Open Perspective -> Java EE (default)

2. Luo uusi projekti
File -> New -> Dynamic Web Project
(Target Runtime: Apache Tomcat 7.0)

3. Luo testisivu projektiin
File -> New -> JSP File

Valitse tiedoston sijainniksi projektisi WebContent-hakemisto
Anna tiedostolle nimeksi index.jsp
Kirjoita body-tagien sisään sana "testisivu".
4. Käynnistä projekti palvelimella
[Select Project]
Run -> Run as... -> Run on Server -> Tomcat -> Finish

5. Avaa ulkoinen selain
Kopioi Eclipsen sisäisestä selain-ikkunasta webbisovelluksesi osoite
ulkoisen selaimen osoitekenttään (esim. Chrome) ja lataa sivu
uudestaan ulkoisella selaimella.

Uuden Maven-projektin luominen

New Maven Project->

[x] Create a simple project (skip archetype selection)
Next->

Group Id: fi.yritys.sovellus
Artifact Id: projektin-nimi
Packaging: jar (komentoriviprojekteille), war (webbiprojekteille)
Name: Projektin nimi
Description: Projektin pidempi kuvaus
Finish

Avaa pom.xml
Määrittele kirjastoriippuvuudet
Voit käyttää dependencyjen määrittelemisessä apuna hakukonetta:
http://mvnrepository.com

Ohjelmointiprojekti A:

Perinteinen webbisovellus Mavenilla

Tee CRUD-käyttöliittymä valitsemastasi aiheesta.

Esimerkkiaiheita: ostoslista, todo, äänilevyarkisto,...

LISÄTEHTÄVÄ: Selenium-testit

Spring

Teoria

Esimerkkisovellukset e12, e13

Monivalinnat

Ohjelmointiharjoitus 3:

Spring JDBC

Tee sovellus, joka hakee Spring JDBC:tä käyttäen komentoriville sen tietokannan taulun sisällön, jonka loit ohjelmointiprojektia A varten.

Spring Web MVC

Teoria

Esimerkkisovellus e14

Monivalinnat

Ohjelmointiharjoitus 4:

Spring Web MVC

Tee 14. esimerkkisovellukseen uusi sivu, jonka avulla voi listata kannasta löytyviä käyttäjiä. Konfiguroi sivu löytymään osoitteesta /e14/henkilot/lista.

I18n & Bean Validation

Teoria

Esimerkkisovellus e15

Monivalinnat

Ohjelmointiharjoitus 5:

Validointi

Tee 15. esimerkkisovellukseen uusi validaattori kenttiin etunimi, sukunimi ja lahiosoite tarkastamaan, että merkkijono alkaa isolla kirjaimella. Toteuta validointi uudella annotaatiolla, jonka nimi on @AlkaaIsollaKirjaimella.

Ohjelmointiprojekti B:

Webbisovellus Spring Web MVC:llä

Tee CRUD-käyttöliittymä valitsemastasi aiheesta.

Esimerkkiaiheita: ostoslista, todo, äänilevyarkisto,...

LISÄTEHTÄVÄ: Spring Test

Spring Security

Teoria

Esimerkkisovellus e16

Monivalinnat

Ohjelmointiharjoitus 6:

Spring Security

Luo tietokantaan uusi käyttäjä, jonka käyttäjätunnus on koko nimesi (yhteen kirjoitettuna pienellä ilman välilyöntejä, väliviivoja ja skandeja esim. Maija Meikäläinen-Smith -> maijameikalainensmith) ja salasanaksi samainen tekstinpätkä. Aseta käyttäjälle rooli ROLE_USER. Aseta käyttäjälle myös etunimesi ja sukunimesi.

Advanced Spring

Teoria

Esimerkkisovellukset e17-e20

Monivalinnat

Ohjelmointiprojekti C:

Yhden sivun webbisovellus Spring REST:llä

Tee CRUD-käyttöliittymä valitsemastasi aiheesta.

Esimerkkiaiheita: ostoslista, todo, äänilevyarkisto,...

LISÄTEHTÄVÄ: JQuery Front End

Kurssipalaute

Suullinen

Kirjallinen