Aplicatie web cu backend in JAVA

Salutare,
As avea nevoie de un sfat. Vreau sa invat Java si as vrea o recomandare privind software-ul de care am nevoie pentru dezvoltarea unei aplicatii web. Backend-ul vreau sa il fac in Java - un restful api.
Pentru frontend voi folosi Javascript.

Ce tip de server este necesar pentru a accesa aplicatia dintr-un browser? Ce sistem de baze de date este necesar? Pana acum am folosit PHP/MySQL pentru backend.

Eu as merge pe un Java 8 + Spring Boot 1.5.
Vine direct cu un server web embedded (Tomcat) si ai librarii pentru aproape orice use-case :slight_smile:
Ca si baza de date, ai putea folosi MySQL sau PostgreSQL. Daca esti obisnuit cu ORM-uri poti folosi JPA (Hibernate) sau JDBC Templates daca preferi sa scrii tu query-urile.
Pentru momentele in care gasesti limbajul verbose, poti folosi tool-uri precum Lombok [1].
Tutoriale gasesti pe site-ul lor: https://spring.io/guides

[1] Project Lombok
[2] Rest Service Tutorial

9 Likes

Nu am folosit, dar este up-and-coming pe partea de framework-uri - play framework. Care se vrea un fel de Django/RoR ptr. Java.

In rest multe din sculele web Java standard au valente enterprise (read mult xml, multa configuratie pana sa ajungi la ceva util etc) si s-ar putea sa fie overkill pentru proiecte mai mici.

2 Likes

Multumesc pentru sfaturi. M-am uitat putin peste resursele de mai sus si inteleg ca Spring Boot 1.5 ar fi pentru Java ce sunt pentru PHP Symfony, sau CodeIgniter,nu? Fiind prima aplicatie as evita framework-urile sau librariile care extind functionalitatea ca sa pot intelege de la nivelul 0 cum se organizeaza codul, fisierele, logica aplicatiei, etc.

As prefera sa scriu eu interogarile la baza de date, presupun ca pot sa o fac si direct in “clase”.

Din recomandarile de mai sus cred ca voi merge pe Java 8, Tomcat server si MySQL.

Salut.
Daca vrei sa intelegi cum functioneaza Java pe web, sfatul meu ar fi sa cauti un tutorial cu Servlet si JSP (la o cautare simpla am gasit unul, pare easy, step-by-step https://www.youtube.com/watch?v=Vvnliarkw48). Frameworkurile mentionate de ceilalti colegi (Spring Boot, Play, Spring MVC) vin cu ‘magic’ si ascund toata masinaria de baza din spate. Ptr inceput, cred ca e bine sa intelegi mecanismele de baza. Legat de conectarea la baza de date, la fel, observ ca lumea vorbeste de ORM-uri. Ptr inceput, cauta un tutorial de JDBC, asta e piatra de temelie in Java ptr conectare la baza de date. Dupa ce te familiarizezi cu JDBC, poti trece la Hibernate, Spring Data, iBatis.
Ca si server, Tomcat sau Jetty.
Un lucru cu care ar fi bine sa incepi daca incepi Java e Maven. Maven e un sistem de building si management de dependinte care te ajuta sa faci builduri (jar, war, etc), sa le deployezi si rulezi in Tomcat sau alt web container. “Tatal” lui Maven e Ant , care e un fel de make (daca esti familiar cu scule de building din Linux) iar urmasul lui Maven ar fi Gradle. Am pus toti termenii astia aici sa arunci un ochi, sa-ti faci o meta-idee despre ce si cum in Java web.

7 Likes

E timp și de uitat la servlets, că spring etc sunt construite peste ele (deși nu cred că și peste jsp, așa că poate să sară peste ele). Sunt utile că o să vadă dupaia cat de mult aduce in plus un framework modern. Dar nu ar trebui să-și bazeze proiectul doar pe ele. Sunt ancient tech la momentul asta, iar unele sisteme dau skip la ele în întregime (play, cam tot ce înseamnă server-side java la companiile mari etc).

2 Likes