Kezdőoldal » Számítástechnika » Programozás » Milyen a Java Enterprise Edition?

Milyen a Java Enterprise Edition?

Figyelt kérdés

Eddig csak Java SE-el foglalkoztam. Tudom, nézzek dokumentációt meg minden hasonló, amit ilyenkor lehet mondani. De inkább személyes "tapasztalatokra" vagyis kíváncsi, te ha használtad, akkor mit kellett csinálnod; milyen problémák megoldására alkalmas?


Sajnos éles munkatapasztalatom nincs így nem tudok annyira belelátni a dolgokba. Köszönöm ha válaszolsz.


2017. febr. 27. 17:12
 1/4 anonim ***** válasza:

"Milyen a Java Enterprise Edition?"


Kék.

2017. febr. 27. 18:35
Hasznos számodra ez a válasz?
 2/4 anonim ***** válasza:
Miért nem próbálod ki te magad? Miért nem készítesz valamit a segítségével?
2017. febr. 27. 18:50
Hasznos számodra ez a válasz?
 3/4 anonim ***** válasza:

Én a szakdolgozatom, ha mondhatjuk közvetetten JavaEE-ben írom. Pont egy vállalat belső rendszeréhez.


Kifejtem

JavaEE helyett inkább (keret)rendszereket használok, de Wiki-n megtudod nézni, hogy ezek micsodák

- Spring Framework

- Hibernate Framework

- Thymeleaf Template Engine


Továbbá fűszerezve van ezekkel:

- Maven

- Git

- Sass

- TypeScript


De a lényeg, hogy az EE egy "bővített" változat az SE-hez képest.


Pl. #1: JDBC helyett egy JPA egyszerűbb, sőt megkímél az natív SQL-től (azaz nincs "select * from ...", "insert into ", stb), hanem objektum szinten dolgozik. Néz utána: ORM


Azaz csinálsz egy objektumot ami megegyezik az adatbázissal.


pl.: MySQL alatt

tabla(

... id INT NOT NULL PRIMARY KEY

... name TEXT NOT NULL

)



Ezt POJO-nak szokták hívni, ami egy táblának felel meg.


@Entity

@Table(name = "tabla")

public class UserDomain implements Serializable {


... @Id

... @GeneratedValue(strategy = GenerationType.IDENTITY)

... @Column(name = "id")

... private Integer id;


... @Column(name = "name")

... @OrderBy

... private String name;


... /* getterek és setterek még */

}


Egy rekord hozzáadása Hibernate/JPA közreműködésével:


@Repository("UserDao") // @Autowire esetén nem userDaoImpl, hanem userDao csak, mert átneveztem, ez működik @Service("masiknev") esetán is

public class UserDaoImpl implements UserDao {


... @Autowired //lásd köv példa

... private SessionFactory sessionFactory;


... public Integer addUser(String name) {

... ... Session session = this.sessionFactory.getCurrentSession();

... ... Integer result = null;

... ... try {

... ... ... session.getTransaction().begin(); // tranakciót indítok

... ... ... UserDomain pojo = new UserDomain();

... ... ... pojo.setName(name); // Ezt a nevet adja hozzá

... ... ... session.save(pojo); // legenerálja az "INSERT INTO-t" POJO segítségével és le is futtatja

... ... ... result = pojo.getId(); // kitölti az ID-t amit kapott, tehát lekérdezhető

... ... ... session.getTransaction().commit(); // ha hozzá tudja adni, akkor adja is hozzá

... ... } catch (Exception e) {

... ... ... e.printStackTrace();

... ... ... session.getTransaction().rollback();

... ... }

... ... return result;

... }

}



Pl. #2: Arcodba tol rengeteg annotációt.

@Inject (@Autowire Spring annoval egyezik meg). Én mivel Spring-et használom, az @Autowire-t inkább.


példa kód:


@Service

public class EzEgyServiceClass {

... @Autowire

... private UserDao userDao; // átnevezés miatt userDao, nem userDaoImpl


... public void addUser(String name) {

... ... this.userDao.addUser(name);

... }

}


public class EzEgyAlapClass {

... @Autowire

... private EzEgyServiceClass ezEgyServiceClass;


... public EzEgyServiceClass getEzEgyServiceClass() {

... ... this.ezEgyServiceClass.userAdd("KedvesKerdezoUser");

... }

}


public class EzEgyMasikClass { // például

... @Autowire

... private EzEgyServiceClass ezEgyServiceClass;


... public EzEgyServiceClass getEzEgyServiceClass() {

... ... this.ezEgyServiceClass.userAdd("EgyTeljesenMasikUser");

... }

}


"EzEgyServiceClass ezEgyServiceClass" név egyezés nem véletlenül van, innen ismeri fel, hogy mit hova. Persze felül definiálható.


Spring (hogy a JavaEE is azt nem tudom, de @Inject miatt gondolom igen) felismeri, hogy mely osztályt kell bele példányosítani az attr-ba. Tehát ő háttérben csinál egy settert (elemzési időben), amit neked nem kell kiírni, és mikor pl. így hívom -> new EzEgyAlapClass().getEzEgyServiceClass() és egy rekorddal több lesz az adatbázisban. :) Tehát nem null lesz az az attribútum.


[link]

2017. márc. 2. 15:38
Hasznos számodra ez a válasz?
 4/4 A kérdező kommentje:
Nagyon hálás vagyok a részletes válaszod miatt!! Köszi.
2017. márc. 3. 07:48

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!