قم بإنشاء مشروع مخضرم بسيط باستخدام Java EE + WildFly10 + JPA (Hibernate) + Postgresql + EJB + IntelliJ IDEA

في هذه المقالة سأخبرك بكيفية تكوين مشروع على JBoss باستخدام JPA. لن أخوض في تفاصيل JPA ، Hibernate ، EJB ، هذا موضوع منفصل. ما عليك سوى إظهار بنية المشروع ، وكيفية تكوين مصدر البيانات على WildFly وتشغيله بالكامل في IntelliJ IDEA. أعتقد أن هذا الإطار سيكون مفيدًا للمبتدئين الذين يعملون مع JavaEE و JPA.

قم بتثبيت WildFly10


ننتقل إلى موقع WildFly الرسمي ونقوم بتنزيل الإصدار 10.1.0.Final. (ربما يعمل شخص آخر ، ولكن في هذا المشروع استخدمته).

فك الأرشيف في أي دليل على جهاز الكمبيوتر الخاص بك.
بعد ذلك ، قم بإنشاء مستخدم جديد. للقيام بذلك ، قم بتشغيل bin / add-user.bat. كل شيء بسيط للغاية هناك. اتبع التعليمات وتذكر اسم المستخدم وكلمة المرور اللذين تم إدخالهما.

إنشاء مصدر بيانات


الخطوة التالية هي إنشاء مصدر بيانات على الخادم. أسهل طريقة هي استخدام وحدة تحكم المشرف التي توفرها WildFly.

لإدخالها ، تحتاج أولاً إلى بدء /bin/standalone.bat الخادم والانتقال إلى العنوان 127.0.0.1 : 9990. استخدم اسم المستخدم وكلمة المرور اللذين أنشأتهما للتو.

انتقل إلى عمليات النشر-> إضافة-> تحميل قسم نشر جديد.

الآن قم بتنزيل برنامج تشغيل jdbc من موقع postgresql الرسمي. لقد قمت بتحميل postgresql-42.2.4.jar. نضيفه إلى عمليات النشر. يمكن إعطاء أي اسم.

مزيد من التكوين-> الأنظمة الفرعية-> مصادر البيانات-> غير XA-> إضافة.

اختر Postgresql Datasource وبرنامج التشغيل الذي تم تنزيله. نقوم بتعيين عنوان URL لقاعدة البيانات الخاصة بنا واسم المستخدم وكلمة المرور. (يجب عدم الخلط بينه وبين اسم المستخدم وكلمة المرور من الخادم). إذا تم تنفيذ كل شيء بشكل صحيح ، فيجب أن يظهر مصدر البيانات الجديد في القائمة. في علامة التبويب عرض ، يمكنك التحقق من الاتصال بقاعدة البيانات إذا قمت بالنقر فوق اختبار الاتصال.

إنشاء مشروع في IntelliJ IDEA


كل شيء قياسي هنا. أعتقد أنه لا توجد تعليقات إضافية مطلوبة. إنشاء مشروع مخضرم. نضع الحرب في التعبئة والتغليف. وإضافة التبعيات اللازمة.

في الواقع هنا هو pom.xml الخاص بي

<?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> 

هيكل المشروع




لاحظ أن persitence.xml موجود في WEB-INF-> classes-> META-INF.

وهنا هو استمرار. xml نفسه

 <?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> 

كمصدر بيانات jta ، استخدم اسم jndi ، الذي تم تحديده عند إنشاء مصدر البيانات.
إذا نسيت ، يمكنك إلقاء نظرة على 127.0.0.1:9990 في قسم التكوين-> الأنظمة الفرعية-> مصادر البيانات-> مصدر بياناتنا-> عرض-> سمات-> خط JNDI.

الآن دعونا نلقي نظرة على فصولنا.

1. أبسط فئة كيان.

التفاصيل لا ترسم. هذا موضوع آخر.

 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. فئة EJB

يقوم التعليق التوضيحيPersstandingContext بإدخال وحدة المثابرة الخاصة بنا وإنشاء EntityManager بناءً على ذلك.

يشير التعليق التوضيحيStateless إلى أنه 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

الملخصEJB حقن جافا بين.

في طريقة doGet ، يتم إنشاء مستخدم باسم "Ser" ويتم استدعاء طريقة saveUser من ejb.
إذا لم يكن هناك جدول للمستخدم ، فسيقوم السبات بإنشاء الجدول نفسه وإدراج مستخدمنا هناك.

 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"); } } 

إطلاق المشروع


لتكوين jboss في IDEA ، انتقل إلى Run-> EditConfiguration ، وانقر فوق "+" في الزاوية اليسرى العليا وحدد jboss-local.



بصفتك ApplicationServer ، حدد المجلد الذي يحتوي على WildFly المثبت لدينا. كقطعة أثرية ، اخترت ExternalArtifact (تم تجميعها بواسطة maven hiberProject.war) ، وأزلت الإصدار القياسي وأضفت مهام المخضرم القياسية (تثبيت الحزمة النظيفة).

الآن نضغط على start وننتظر عند تحميل الخادم. بعد ذلك ، انتقل إلى صفحة المضيف المحلي: 8080 / اسم المشروع / الاختبار.

عند تحميل الصفحة ، يتم تشغيل طريقة doGet ويتم كتابة مستخدمنا باسم "Ser" في قاعدة البيانات.

شكرا لكم جميعا. آمل أن تساعد هذه المقالة شخص ما.
هنا رابط إلى GitHub مع هذا المشروع.

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


All Articles