English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
يُسمى مشروع Spring Boot الذي يحتوي على وحدات Maven مدمجة مشروع متعدد الوحدات. في مشاريع متعددة الوحدات، يلعب المشروع الأب دورًا كوعاء لمكونات إعدادات Maven الأساسية.
بشكل آخر، مشروع متعدد الوحداتيتم بناءه من قبل POM الأب لإدارة مجموعة من وحدات البرنامج الفرعية. أو مشروع متعدد الوحداتعلى تضمين إشارة إلى أحد أو أكثر من وحدات البرنامج الفرعية من خلال POM الأب لتحديدها.
مشروع Maven الأب يجب أن يحتوي pom نوع التغليف يجعل المشروع تجمعًا. المشروع الأم pom.xml ملف يحتوي على جميع الاعتمادات التي تورثها المشاريع الفرعية المكونات، الاعتمادات المشتركةو خصائصالقائمة. pom الأم تقع في مجلد جذر المشروع. المكونات الفرعية هي مشاريع Spring Boot الفعلية، وتورث خصائص Maven من المشروع الأم.
عند تشغيل مشروع متعدد المكونات، يتم توزيع جميع المكونات معًا على خادم Tomcat المحبوس. يمكننا أيضًا توزيع مكون فردي.
يحدد pom الأم معرف المجموعة، معرف العمل، إصدار، و packaging.. في مشاريع Maven السابقة، رأينا أن pom الأم يحدد التغليف jar.. ولكن في مشاريع Maven المتعددة المكونات، يتم تعريف POM تعريف pom التغليف. pom التغليف يُشارك في مشاريع Maven أخرى.
فصل المشروع إلى مكونات متعددة مفيد وسهل الصيانة. يمكننا أيضًا تعديل أو حذف مكونات المشروع بسهولة دون تأثير على المكونات الأخرى. هذا مفيد عندما نحتاج إلى توزيع المكونات بشكل فردي.
نحتاج فقط إلى تحديد جميع الاعتمادات في pom الأم. جميع المكونات الأخرى تشترك في نفس pom، لذا لا نحتاج إلى تحديد نفس الاعتمادات في كل مكون.
يمكن أن يكون المكون الفرعي أي مشروع، ويمكن أن يكون أي نوع من التغليف. يمكننا إنشاء أي نوع من الاعتمادات بين المكونات والشرائط بحرية.
على سبيل المثال، نحن نقوم بإنشاء EAR (Enterprise ARchive)، WAR (Web ARchive) و JAR (Java ARchive) الملفات. يتم ربط ملفات JAR بملفات WAR، وملفات WAR برتبطها بملفات EAR. ملف EAR هو حزمة برمجية نهائية يمكن توزيعها على خادم التطبيقات.
ملف EAR يحتوي على ملفات WAR واحدة أو أكثر. يحتوي كل ملف WAR على مشروع خدمة، ويحتوي هذا المشروع على كود عام لجميع ملفات WAR والأنواع الم打包ة في JAR.
المكونات الفرعية هي مشاريع Maven مستقلة، وتتشارك في خصائص المشروع الأم. يمكن بناء جميع المشاريع الفرعية باستخدام أمر واحد، لأنها تقع داخل المشروع الأم. يُسهل تعريف علاقات المشاريع.
دعونا نتعرف على بنية المشاريع المتعددة المكونات.
في الشكل التالي، قمنا بإنشاء مجال يُدعى spring-boot-multi-module-project المشروع يحتوي في أسفل الدليل على pom بعد ذلك، قمنا بإنشاء اثنين من مكونات Maven، وتم تسميتها على التوالي module1 و module2 هذه المجالات تحتوي على ملفات pom الخاصة بها.
دعونا نفتح POM الأم، ونرى إعداداتها عند إنشاء مكونات Maven في المشروع.
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 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.2.2.BUILD-SNAPSHOT</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.w3codebox</groupId> <artifactId>spring-boot-example</artifactId> <version>0.0.1-SNAPSHOT</version> <name>spring-boot-multi-module-project</name> <description>Demo project for Spring Boot</description> <properties> <java.version>1.8</java.version> </properties> <packaging>pom</packaging> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.2.1.RELEASE</version> <type>pom</type> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> <exclusions> <exclusion> <groupId>org.junit.vintage</groupId> <artifactId>junit-vintage-engine</artifactId> </exclusion> </exclusions> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> <repositories> <repository> <id>spring-milestones</id> <name>Spring Milestones</name> <url>https://repo.spring.io/milestone</url> </repository> <repository> <id>spring-snapshots</id> <name>Spring Snapshots</name> <url>https://repo.spring.io/snapshot</url> <snapshots> <enabled>true</enabled> </snapshots> </repository> </repositories> <pluginRepositories> <pluginRepository> <id>spring-milestones</id> <name>Spring Milestones</name> <url>https://repo.spring.io/milestone</url> </pluginRepository> <pluginRepository> <id>spring-snapshots</id> <name>Spring Snapshots</name> <url>https://repo.spring.io/snapshot</url> <snapshots> <enabled>true</enabled> </snapshots> </pluginRepository> </pluginRepositories> <modules> <module>module1</module> <module>module2</module> </modules> </project>
ملف pom أعلاه مشابه للعينة السابقة. ولكن في هذا pom في ملف، يجب الانتباه إلى أمرين: طبعو المكون
عندما ننشئ مشروعًا متعدد المكونات، نحتاج إلى تكوين pom الت打包 في ملف pom الأبوي بدلاً من jar.
<packaging>pom</packaging>
عندما ننشئ مكونات Maven في المشروع، يقوم Spring Boot بتكوين المكونات الإضافية تلقائيًا في المكون يتم تكوين المكونات الإضافية في pom الأبوي داخل علامة التبويب، مثل ما يلي.
<modules> <module>module1</module> <module>module2</module> </modules>
الآن، سنقوم بالنظر في محتوى ملف pom لـ module1.
pom.xml
<?xml version="1.0"?> <project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>com.w3codebox</groupId> <artifactId>spring-boot-multi-module-project</artifactId> <version>0.0.1-SNAPSHOT</version> </parent> <groupId>com.w3codebox</groupId> <artifactId>module1</artifactId> <version>0.0.1-SNAPSHOT</version> <name>module1</name> <url>http://maven.apache.org</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId>3.8.1 <scope>test</scope> </dependency> </dependencies> </project>
在此处,需要注意的是,上述pom文件不包含诸如 starter-web,web-mvc等之类的公共依赖项。它继承了所有公共依赖项和属性 父pom。
让我们创建一个多模块应用程序示例。
在以下示例中,我们创建了一个名为 spring-boot-multimodule的maven项目。这是主要应用程序。在主应用程序中,我们创建了五个模块,如下所示: 应用 模型 存储库 service-api service-impl
应用程序模块
应用程序模块是项目的主要模块。它包含应用程序类,在其中定义了运行Spring Boot Application所需的main方法。它还包含 应用程序配置属性,控制器,视图و 资源。
应用程序模块包括模型模块,服务实现模块作为包含模型的依赖项模块,存储库模块和服务API模块。
模型模块
模型模块包含 实体和在项目中使用的 Visual Objects .
存储库模块
存储库模块包含 <在项目中使用的strong> 存储库。它取决于模型模块。
服务API模块
服务API模块包含所有项目 服务。这也取决于模型模块。
服务实现模块
服务实现模块可以实现服务。它取决于存储库模块和服务API模块。
父pom包含所有应用程序模块。它还包括一个以上模块所需的所有常见依赖关系和属性。因为项目已将Spring IO Platform定义为父级,所以没有版本就定义了依赖项。
让我们了解我们创建的多模块应用程序的结构。
Spring-boot-multimodule ├── pom.xml │ └── REDME.adoc ├── application │ ├── pom.xml │ └── src │ └── main │ ├── java │ │ └── sample │ │ └── multimodule │ │ ├── SampleWebJspApplication.java │ │ └── web │ │ └── WelcomeController.java │ └── resources │ ├── application.properties │ └── templates │ └── welcome │ └── show.html ├── model │ ├── pom.xml │ └── src │ └── main │ └── java │ └── sample │ └── multimodule │ └── domain │ └── entity │ └── Account.java | ├── repository │ ├── pom.xml │ └── src │ └── main │ └── java │ └── sample │ └── multimodule │ └── repository │ └── AccountRepository.java ├── service-api │ ├── pom.xml │ └── src │ └── main │ └── java │ └── sample │ └── multimodule │ └── service │ └── api │ └── AccountNotFoundException.java │ └── AccountService.java └── service-impl ├── pom.xml └── src └── main └── java └── sample └── multimodule └── service └── impl └── AccountServiceImpl.java
الخطوة 1: أنشئ ملفًا يُدعى spring-boot-multimodule مشروع Maven.
الخطوة 2: الخطوة 8: pom.xml (Parent pom) file, and change the packaging type jar غير pom.
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <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> <!-- Springio Platform is the parent application of the generated application, capable of using Spring Boot and all its default configurations --> <parent> <groupId>io.spring.platform</groupId> <artifactId>platform-bom</artifactId> <version>2.0.1.RELEASE</version> </parent> <groupId>sample.multimodule</groupId> <artifactId>sample.multimodule</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>pom</packaging> <name>Parent - Pom Aggregator</name> <properties> <java.version>1.8</java.version> </properties> <dependencies> <!-- Spring Boot Dependencies --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> </project>
في ملف pom أعلاه، يجب الانتباه إلى شيء واحد، لأنه لم يتم إنشاء وحدة Maven بعد، لم يتم تكوينها. الآن، سنقوم بإنشاء وحدة Maven كما هو موضح أعلاه.
الخطوة 3: أنشئ ملفًا يُدعى لبرنامج التطبيق مكونات Maven .
الخطوة 4: فتح ملف module التطبيق pom.xml ملف، و تأكد من أن نوع الت打包 هو jar.
pom.xml
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <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> <parent> <groupId>sample.multimodule</groupId> <artifactId>sample.multimodule</artifactId> <version>0.0.1-SNAPSHOT</version> </parent> <artifactId>sample.multimodule.application</artifactId> <packaging>jar</packaging> <name>Project Module - Application</name> <dependencies> <!-- Project modules --> <dependency> <groupId>sample.multimodule</groupId> <artifactId>sample.multimodule.service.impl</artifactId> <version>${project.version}</version> </dependency> <!-- Spring Boot dependencies --> <dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-jasper</artifactId> <scope>provided</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> </dependencies> <build> <plugins> <!-- Spring Boot plugins --> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
步骤5: إنشاء 主要类。这是要运行的类。
SampleWebJspApplication.java
package sample.multimodule; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.SpringApplication; import org.springframework.boot.orm.jpa.EntityScan; @SpringBootApplication public class SampleWebJspApplication { public static void main(String[] args) throws Exception { SpringApplication.run(SampleWebJspApplication.class, args); } }
步骤6: في المجموعة smaple.multimodule.web。
أنشئت في اسم WelocameController 的Controller类。
WelcomeController.java
package sample.multimodule.web; import java.util.Date; import java.util.Map; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import sample.multimodule.domain.entity.Account; import sample.multimodule.service.api.AccountService; @Controller public class WelcomeController { @Value("${application.message:Hello World}") private String message = "Hello World"; @Autowired protected AccountService accountService; @RequestMapping("/") public String welcome(Map<String, Object> model) { //يحاول الحصول على الحساب رقم 23 Account account = accountService.findOne("23"); if(account == null){ //إذا حدث خطأ أثناء إنشاء الحساب، يرجى عرض الرؤية التي تظهر حالة الخطأ model.put("message", "هناك خطأ في الحصول على الحساب!"); model.put("account", ""); return "welcome/show"; } //يعرض الرؤية التي تحتوي على معلومات 23 حساب String accountInfo = "رقم حسابك هو ".concat(account.getNumber()); model.put("message", this.message); model.put("account", accountInfo); return "welcome/show"; } @RequestMapping("foo") public String foo(Map<String, Object> model) { throw new RuntimeException("Foo"); } }
الخطوة 7: في مجلد في مجلد src/main/resource أنشئ ملفاً يُدعى show.html ال HTML templates -> welcome.
show.html
<!DOCTYPE HTML> <html xmlns:th="http://www.thymeleaf.org"> <head> <title> Spring Boot Multimodule </title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> </head> <body> <div> <b> رسالة: </b> <span th:text="${message}" />
</html> الخطوة 8: application.properties ملف، افتح رسالة التطبيقو thymeleafإعدادات التخزين المؤقت تم تكوينها على لا.
application.properties
#معلومات التطبيق application.message = Hello User! dummy.type = type-inside-the-war #إعدادات Spring Thymeleaf spring.thymeleaf.cache = false
بعد إنشاء جميع الملفات المذكورة أعلاه، دليل مودل التطبيق سيكون كما يلي:
دعنا ننشئ المودل الثاني، وهو model.
الخطوة 9: إنشاء مودل Maven، الاسم هو model.
الخطوة 10: فتح نموذج pom.xml مودل الملف، و تأكد من أن نوع التغليف هو jar.
pom.xml
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <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> <parent> <groupId>sample.multimodule</groupId> <artifactId>sample.multimodule</artifactId> <version>0.0.1-SNAPSHOT</version> </parent> <artifactId>sample.multimodule.model</artifactId> <packaging>jar</packaging> <name>مودول المشروع - نموذج</name> <description>مودول يحتوي على جميع الكيانات والأجسام المرئية التي سيتم استخدامها في المشروع. لا يحتوي على أي اعتمادات. </description> </project>
步骤11: في المجموعة sample.multimodule.domain.entity。
أنشئت في اسم Account الكلاس.Account.java
package sample.multimodule.domain.entity; import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; @Entity public class Account { @Id @GeneratedValue(strategy = GenerationType.AUTO) private long id; private String number; private String type; private String creditCardNumber; /** * 创建一个空帐户。 */ public Account() { } /** * create a new account. * * @param number * the account number * @param id * the account id */ public Account(long id, String number) { this.number = number; this.id = id; } public long getId() { return id; } public void setId(long id) { this.id = id; } public String getNumber() { return number; } public void setNumber(String number) { this.number = number; } public String getType() { return type; } public void setType(String type) { this.type = type; } public String getCreditCardNumber() { return creditCardNumber; } public void setCreditCardNumber(String creditCardNumber) { this.creditCardNumber = creditCardNumber; } }
بعد إنشاء جميع الملفات المذكورة أعلاه، دليل module النموذج سيكون كالتالي:
Let's create third module
خطوة 12: أنشئ ملفًا يُدعى مستودع مكونات Maven. strong>
خطوة 13: فتح ملف module التطبيق pom.xml ملف، و تأكد من أن نوع الت打包 هو jar.
pom.xml
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <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> <parent> <groupId>sample.multimodule</groupId> <artifactId>sample.multimodule</artifactId> <version>0.0.1-SNAPSHOT</version> </parent> <artifactId>sample.multimodule.repository</artifactId> <packaging>jar</packaging> <name>Project Module - Repository</name> <description>Module that contains all repositories to be used in the project. Depends of Model Module.</description> <dependencies> <!-- Project modules --> <dependency> <groupId>sample.multimodule</groupId> <artifactId>sample.multimodule.model</artifactId> <version>${project.version}</version> </dependency> <!-- Spring Boot dependencies --> <dependency> <groupId>org.hsqldb</groupId> <artifactId>hsqldb</artifactId> <scope>runtime</scope> </dependency> </dependencies> </project>
خطوة 14: في المجموعة sample.multimodule.repository
Create a name of AccountRepository الكلاس.
AccountRepository.java
package sample.multimodule.repository; import org.springframework.data.domain.*; import org.springframework.data.repository.*; import org.springframework.stereotype.Repository; import sample.multimodule.domain.entity.Account; @Repository public interface AccountRepository extends CrudRepository<Account, Long> { Account findByNumber(String number); }
After creating all the above files, the repository module directory is as follows:
Let's create fourthThe module that is service-api.
Step 15: أنشئ ملفًا يُدعى service-api مكونات Maven.
Step 16 : Open <strong>applicationIn the > pom.xml file of service-api and make sure the packaging type is jar.
pom.xml
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <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> <parent> <groupId>sample.multimodule</groupId> <artifactId>sample.multimodule</artifactId> <version>0.0.1-SNAPSHOT</version> </parent> <artifactId>sample.multimodule.service.api</artifactId> <packaging>jar</packaging> <name>Project Module - Service API</name> <description>Module that contains API of all project services. Depends of Model Module.</description> <dependencies> <!-- Project Modules --> <dependency> <groupId>sample.multimodule</groupId> <artifactId>sample.multimodule.model</artifactId> <version>${project.version}</version> </dependency> </dependencies> </project>
Step 17: Create a name of sample.multimodule.service.api package.
Step 18: Create a name of The class of AccountNotFoundException.If the account is not found, it will handle the exception.
AccountNotFoundException.java
package sample.multimodule.service.api; public class AccountNotFoundException extends RuntimeException { private static final long serialVersionUID = -3891534644498426670L; public AccountNotFoundException(String accountId) { super("لا يوجد حساب بهذا الرقم: " + accountId); } }
الخطوة 19: أنشئ ملفًا يُدعى فئة AccountServiceإنه يقدم خدمات تتعلق بالحساب، مثل البحث عنو إنشاءالحساب.
AccountService.java
package sample.multimodule.service.api; import java.util.List; import sample.multimodule.domain.entity.Account; public interface AccountService { /** * استخدم الحساب المقدم للبحث عن الحساب. * * @param number رقم الحساب * @return الحساب * @throws AccountNotFoundException إذا لم يكن هناك حساب مثل ذلك. */ Account findOne(String number) throws AccountNotFoundException; /** * أنشئ حسابًا جديدًا. * @param number * @return حساب تم إنشاؤه */ Account createAccountByNumber(String number); }
بعد إنشاء جميع الملفات المذكورة أعلاه، دليل مكونة Maven سيكون كالتالي:
الخطوة 20: أنشئ ملفًا يُدعى service-impl مكونات Maven.
الخطوة 21: : افتح التطبيق service-impl ال pom.xml 文件,واكد أن نوع التغليف هو jar.
pom.xml
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <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> <parent> <groupId>sample.multimodule</groupId> <artifactId>sample.multimodule</artifactId> <version>0.0.1-SNAPSHOT</version> </parent> <artifactId>sample.multimodule.service.impl</artifactId> <packaging>jar</packaging> <name>Project Module - Service Implementation</name> <description>Module that contains services implementation defined on Service API module. Depends of Repository Module and Service API Module.</description> <dependencies> <!-- Project Modules --> <dependency> <groupId>sample.multimodule</groupId> <artifactId>sample.multimodule.repository</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>sample.multimodule</groupId> <artifactId>sample.multimodule.service.api</artifactId> <version>${project.version}</version> </dependency> </dependencies> </project>
الخطوة 22: في المجموعة sample.multimodule.service.impl。
أنشئت في اسم AccountServiceImpl الكلاس.AccountServiceImpl.java
package sample.multimodule.service.impl; import java.util.ArrayList; import java.util.List; import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import sample.multimodule.domain.entity.Account; import sample.multimodule.repository.AccountRepository; import sample.multimodule.service.api.AccountService; import sample.multimodule.service.api.AccountNotFoundException; @Service public class AccountServiceImpl implements AccountService { @Value("${dummy.type}") private String dummyType; @Autowired private AccountRepository accountRepository; /** * @inheritDoc * <p/> * Dummy method for testing purposes. * * @param number The account number. Set 0000 to get an @link AccountNotFoundException */ @Override public Account findOne(String number) throws AccountNotFoundException { if(number.equals("0000")) { throw new AccountNotFoundException("0000"); } Account account = accountRepository.findByNumber(number); if(account == null){ account = createAccountByNumber(number); } return account; } @Override public Account createAccountByNumber(String number) { Account account = new Account(); account.setNumber(number); return accountRepository.save(account); } public String getDummyType() { return dummyType; } public void setDummyType(String dummyType) { this.dummyType = dummyType; } }
بعد إنشاء جميع الملفات المذكورة أعلاه، service-impl دليل الأنظمة كما يلي:
الآن افتح pom الأم نرى جميع الأنظمة التي تم إنشاؤها بواسطة Maven في في pom الأم
الآن تأكد من أن جميع الخمس أنظمة قد تم تثبيتها وتأسيسها كما يلي:
بعد إنشاء جميع الأنظمة، دليل المشروع الرئيسي سيكون كما يلي:
خطوة 23: الآن، قم ب SampleWebJspApplication.java الملف كتطبيق Java للاعتماد
خطوة 24: افتح متصفح الويب وأدخل URL http: //localhost: 8080. إنه يعيد رسالةواسم المستخدم 23.