Buat proyek pakar sederhana menggunakan Java EE + WildFly10 + JPA (Hibernate) + Postgresql + EJB + IntelliJ IDEA

Pada artikel ini saya akan memberi tahu Anda cara mengkonfigurasi proyek di JBoss menggunakan JPA. Saya tidak akan membahas detail JPA, Hibernate, EJB, ini adalah topik yang terpisah. Saya hanya akan menunjukkan kepada Anda struktur proyek, cara mengonfigurasi sumber data di WildFly dan menjalankan semuanya di IntelliJ IDEA. Kerangka kerja ini, saya pikir, akan berguna untuk pemula yang bekerja dengan JavaEE dan JPA.

Instal WildFly10


Kami pergi ke situs web resmi WildFly dan mengunduh versi 10.1.0.Final. (mungkin yang lain akan bekerja, tetapi dalam proyek ini saya menggunakannya).

Buka kemasan arsip ke direktori mana pun di komputer Anda.
Selanjutnya, buat pengguna baru. Untuk melakukan ini, jalankan bin / add-user.bat. Semuanya cukup sederhana di sana. Ikuti instruksi dan ingat nama pengguna dan kata sandi yang dimasukkan.

Buat sumber data


Langkah selanjutnya adalah membuat sumber data di server. Cara termudah adalah dengan menggunakan konsol admin yang disediakan oleh WildFly.

Untuk memasukkannya, pertama-tama Anda harus memulai server /bin/standalone.bat dan pergi ke alamat 127.0.0.1 : 9990. Gunakan nama pengguna dan kata sandi yang baru saja Anda buat.

Pergi ke Penyebaran-> Tambah-> Unggah bagian penerapan baru.

Sekarang unduh driver jdbc dari situs resmi postgresql. Saya mengunduh postgresql-42.2.4.jar. Kami menambahkannya ke penerapan. Nama apa pun bisa diberikan.

Konfigurasi Lebih Lanjut-> Subsistem-> Sumber Data-> Non-XA-> Tambah.

Pilih Datasource Postgresql dan driver yang diunduh kami. Kami mengatur url basis data, nama pengguna, dan kata sandi kami. (jangan bingung dengan nama pengguna dan kata sandi dari server). Jika semuanya dilakukan dengan benar, maka sumber data baru Anda akan muncul dalam daftar. Di tab Lihat, Anda dapat memeriksa koneksi ke database jika Anda mengklik Uji Koneksi.

Membuat proyek di IntelliJ IDEA


Semuanya standar di sini. Saya pikir tidak ada komentar tambahan yang diperlukan. Buat proyek pakar. Kami menempatkan perang dalam kemasan. Dan tambahkan dependensi yang diperlukan.

Sebenarnya di sini adalah pom.xml saya

<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>yst</groupId> <artifactId>hiberProject</artifactId> <version>1.0-SNAPSHOT</version> <packaging>war</packaging> <dependencies> <dependency> <groupId>javax</groupId> <artifactId>javaee-api</artifactId> <version>7.0</version> <scope>provided</scope> </dependency> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-core</artifactId> <version>5.2.12.Final</version> <scope>provided</scope> </dependency> </dependencies> <build> <finalName>hiberProject</finalName> </build> </project> 

Struktur proyek




Perhatikan bahwa persitence.xml ada di WEB-INF-> class-> META-INF.

Dan di sini adalah persistence.xml itu sendiri

 <?xml version="1.0" encoding="UTF-8"?> <persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"> <persistence-unit name="myUnit" > <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider> <jta-data-source>java:/PostgresDS</jta-data-source> <class>UserEntity</class> <class>JavaBean</class> <properties> <property name="hibernate.show_sql" value="true" /> <property name="hibernate.format_sql" value="true" /> <property name="hibernate.hbm2ddl.auto" value="update" /> </properties> </persistence-unit> </persistence> 

Sebagai sumber data jta, gunakan nama jndi, yang ditentukan saat membuat sumber data.
Jika Anda lupa, Anda dapat melihat 127.0.0.1:9990 di bagian Konfigurasi-> Subsistem-> Sumber Data-> Sumber data kami-> Lihat-> Atribut-> JNDI.

Sekarang mari kita lihat kelas kita.

1. Kelas entitas paling sederhana.

Detail jangan dicat. Ini adalah topik lain.

 import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; @Entity public class UserEntity { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private int id; private String name; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } } 

2. kelas EJB

Annotation @PersistenceContext menyuntikkan unit kegigihan kami dan membuat EntityManager berdasarkan itu.

Anotasi @Stateless menunjukkan bahwa ini adalah ejb.

 import javax.ejb.Stateless; import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; @Stateless public class JavaBean { @PersistenceContext(unitName = "myUnit") EntityManager entityManager; public void saveUser(UserEntity user){ entityManager.persist(user); } } 

3. Servlet paling sederhana

Abstrak @EJB menyuntikkan JavaBean.

Dalam metode doGet, pengguna bernama "Ser" dibuat dan metode saveUser dari ejb dipanggil.
Jika tidak ada tabel userentity, maka hibernate akan membuat tabel itu sendiri dan memasukkan pengguna kami di sana.

 import javax.ejb.EJB; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; @WebServlet("/test") public class App extends HttpServlet{ @EJB JavaBean javaBean; @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { UserEntity user=new UserEntity(); user.setName("Ser"); javaBean.saveUser(user); resp.getWriter().println("Hello from servlet"); } } 

Peluncuran proyek


Untuk mengkonfigurasi jboss di IDEA, buka Run-> EditConfiguration, klik "+" di sudut kiri atas dan pilih jboss-lokal.



Sebagai ApplicationServer, pilih folder dengan WildFly kami yang terinstal. Sebagai artefak, saya memilih ExternalArtifact (dikompilasi oleh maven hiberProject.war), menghapus Build standar dan menambahkan tugas standar maven (install paket bersih).

Sekarang kita tekan start dan kita tunggu ketika server dimuat. Selanjutnya, buka halaman localhost: 8080 / nama proyek / tes.

Ketika halaman dimuat, metode doGet dipicu dan pengguna kami dengan nama "Ser" ditulis ke database.

Terima kasih semuanya. Saya harap artikel ini membantu seseorang.
Berikut ini tautan ke GitHub dengan proyek ini.

Source: https://habr.com/ru/post/id420827/


All Articles