English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

التركيب التلقائي لـ SpringBoot

يتم تكوين SpringBoot التلقائي بناءً على إعتمادات jar التي نضيفها إلى تطبيق SpringBoot.

على سبيل المثال، إذا كان هناك ملف Jar لـ H2 Database في مسار الكلاسات، ولم نكن قد قمنا بتكوين أي بيانات متعلقة بالقاعدة البيانات يدويًا، فإن وظيفة تكوين Spring Boot التلقائي ستقوم بتكوينه تلقائيًا في المشروع.

يمكننا تمكين التكوين التلقائي باستخدام تعليق @EnableAutoConfiguration وظيفة التكوين. ولكن لا يتم استخدام هذا التعليق لأنه يحتوي على @SpringBootApplication في الداخل. تعليق @SpringBootApplication هو تجمع من ثلاثة تعليقات: @ComponentScan،@EnableAutoConfiguration،و @Configuration ، ولكننا نستخدم تعليق @SpringBootApplication بدلاً من استخدام @EnableAutoConfiguration.

@SpringBootApplication = @ComponentScan + @EnableAutoConfiguration + @Configuration

عند إضافة باستخدام spring-boot-starter-web في المشروع عند إضافة الإعتماد، يتم البحث عن Spring MVC في مسار الكلاسات من قبل تكوين Spring Boot التلقائي. سيتم تكوينه تلقائيًا dispatcherServlet ، افتراضيًا صفحة الخطأو القارورة الشبكية.

مثل ذلك، عندما نضيف إعتماد spring-boot-starter-data-jpa، نرى أن تكوين Spring Boot يتم تكوينه تلقائيًا مصدر البياناتو مدير إدارة الكيانات.

كل منطق التكوين التلقائي موجود في spring-boot-autoconfigure.jar فيما يظهر في الشكل التالي.

يتطلب تكوينًا تلقائيًا

تطبيقات Spring تستلزم الكثير من التكوينات. عند استخدام Spring MVC، نحتاج إلى تكوين servlet الموجه، معالج الرؤية، Web jars هذا الكود يوضح تكوين servlet الموجه في تطبيق الويب العادي:

<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/todo-servlet.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>

بشكل مشابه، عندما نستخدم Hibernate/JPA، نحتاج إلى تكوين مصدر البيانات، مدير المعاملات، مصنع إدارة الكيانات وما إلى ذلك.

تكوين مصدر البيانات

<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
destroy-method="close">
<property name="driverClass" value="${db.driver}" />
<property name="jdbcUrl" value="${db.url}" />
<property name="user" value="${db.username}" />
<property name="password" value="${db.password}" />
</bean>
<jdbc:initialize-database data-source="dataSource">
<jdbc:script location="classpath:config/schema.sql"/>
<jdbc:script location="classpath:config/data.sql"/>
</jdbc:initialize-database>

配置实体管理器工厂

<bean
class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"
id="entityManagerFactory"
<property name="persistenceUnitName" value="hsql_pu"/>
<property name="dataSource" ref="dataSource"/>
</bean>

配置事务管理器

<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="entityManagerFactory" ref="entityManagerFactory"/>
<property name="dataSource" ref="dataSource"/>
</bean>
<tx:annotation-driven transaction-manager="transactionManager"/>

禁用自动配置类

如果我们不想被应用,我们还可以禁用特定的自动配置类。我们使用注解@EnableAutoConfiguration的 exclude 属性来禁用自动配置类。例如:

import org.springframework.boot.autoconfigure.*;
import org.springframework.boot.autoconfigure.jdbc.*;
import org.springframework.context.annotation.*;
@Configuration(proxyBeanMethods = false)
@EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class})
public class MyConfiguration 
{
}

如果类不在类路径中,我们可以使用@EnableAutoConfiguration批注的属性 excludeName 并指定类的 qualified 名称。我们可以使用属性 spring.autoconfigure.exclude 排除任何数量的自动配置类。

Spring Boot自动配置示例

在以下示例中,我们将看到Spring Boot的自动配置功能如何工作。

الخطوة 1: 打开spring Initializr https://start.spring.io/。

第2步: المجموعةالاسم. نقدم com.w3codebox .

الخطوة 3: تقدم المشروع معرف. نقدم spring-boot-autoconfiguration-example .

الخطوة 4: إضافة الاعتماد: Spring Web,Spring Data JPA,一个 H2数据库.

الخطوة 5: انقر توليد (生成)按钮。当我们单击"生成"按钮时,它会将项目包装在 Jar 文件中,并将其下载到本地系统。

第6步: 提取 Jar文件并将其粘贴到STS工作区中。

步骤7: 将项目文件夹导入STS。

文件->导入->现有Maven项目->浏览->选择文件夹spring-boot-autoconfiguration-example->完成

导入需要一些时间。

الخطوة 8: 在目录中创建名称为 com.w3codebox.controller 的程序包。文件夹 src/main/java .

تشغيل 在包中创建名称为 ControllerDemo 的Controller类。 <strong>com.w3codebox.controller。</strong>

ControllerDemo.java

package com.w3codebox.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class ControllerDemo 
{
    @RequestMapping("/")
    public String home()
    {
        عد"home.jsp";
    }
}

فتح المتصفح وقم بتشغيل URL في المجلد src/main/java إنشاء ملف آخر يسمى com.w3codebox.model المجموعة. p>

الخطوة 11: في المجموعة   com.w3codebox.model إنشاء ملف يسمى   User الصفحة.

User.java

package com.w3codebox.model;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name="userdata")
public class User 
{
    @Id
    private int id;
    private String username;
    public int getId() 
    {
        return id;
    }
    public void setId(int id) 
    {
        this.id = id;
    }
    public String getUname() 
    {
        return username;
    }
    public void setUname(String username) 
    {
        this.username = username;
    }
    @Override
    public String toString() 
    {
        عد"User [id=" + id + ", uname=" + username + "]";
    }
}
 

الآن، نحتاج إلى تكوين قاعدة البيانات H2.

الخطوة 12: افتح   application.properties إنشاء ملف وضبط المحتويات التالية:  المنفذ، تفعيل وحدة التحكم H2، مصدر البيانات،و   URL.

application.properties

server.port=8085
spring.h2.console.enabled=true
spring.datasource.platform=h2
spring.datasource.url=jdbc:h2:mem:w3codebox
 

الخطوة 13: في المجلد   إنشاء ملف في src/main/resources SQL ملف.

انقر بزر الماوس الأيمن على مجلد src/main/resources -> إنشاء -> ملف -> تقديم اسم الملف -> إتمام

نحن نقدم اسم الملف   data.sql وإدراج البيانات التالية.

data.sql

إدراج في قاعدة البيانات userdata القيم (101, 'Tom');
إدراج في قاعدة البيانات userdata القيم (102, 'Andrew');
insert into userdata values(103,'Tony');
insert into userdata values(104,'Bob');
insert into userdata values(105,'Sam');
 

الخطوة 14: في   src مجلد في   مجلد webapp المجلد.

الخطوة 15: باستخدام المجلد الذي تم إنشاؤه في   ControllerDemo لإنشاء ملف JSP جديد باستخدام الاسم الذي تم إرجاعه في   home.jsp .

home.jsp

<%@page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>أضف عنوان هنا</title>
</head>
<body>
<form action="addUser">
الرقم المُعرف:<br />
<input type="text" name="t1"><br />
اسم المستخدم:<br />
<input type="text" name="t2"><br />
<input type="submit" value="إضافة">
</form>
</body>
</html>
 

الخطوة 16: الخطوة 10:   SpringBootAutoconfigurationExampleApplication.java نرى في الشاشة أنه تم تشغيل تطبيقنا بنجاح في منفذ   8085 يتم تشغيله.

الخطوة 17: ،   http: //localhost: 8085/h2-console/. يظهر الجدول الذي تم تعريفه في   application.properties المكونات الإضافية الموجودة في الملف  فئة الدriver،   JDBC URL ، بالإضافة إلى اسم المستخدم الافتراضي   sa .

يمكننا أيضًا اختبار الاتصال بالنقر على الطريقة التالية  اختبار الاتصالالزر. إذا تم الاتصال بنجاح، يتم عرض الرسالة  نجاح الاختبار.

الخطوة 18: انقر  الاتصالالزر. يظهر الجدول الذي تم تعريفه في ملف User.java   userdata التركيب.

الخطوة 19: تنفيذ الاستعلام التالي لمعرفة ما تم إدراجه لدينا   data.sql المعلومات في ملف

SELECT * FROM USERDATA;
 

دعونا ننظر بعناية في الشاشة. نرى   TransactionManagement،DispatcherServlet،EntityManagerFactory،و   DataSource سيتم تكوينه تلقائيًا، كما هو موضح في الشكل التالي.

الت调试 التلقائي

يمكننا العثور على معلومات إضافية حول الت调试 التلقائي باستخدام الطريقة التالية:

فتح الت调试 التسجيل باستخدام Spring Boot Actuator

فتح الت调试 التسجيل

يمكننا من خلال استخدام   application.properties إضافة النقاط التالية إلى ملف السجلات في المثال السابق. دعونا نImplement الت调试 التسجيل. افتح   application.properties إضافة النقاط التالية إلى السجلات

logging.level.org.springframework: DEBUG
 

الآن أعد تشغيل التطبيق. نرى أن هناك تقرير تكوين الت调试 تم طباعته في السجلات. التقرير يشمل جميع الفئات الت调试ة التلقائية. مقسماً إلى جزأين:  التمثيل الإيجابيو  التمثيل السلبي، كما هو موضح في الشكل التالي.

التمثيل الإيجابي

التمثيل السلبي

Spring Boot Actuator

يمكننا أيضًا من خلال استخدامها في المشروع   Actuator تكوين الت调试 التلقائي. سنضيف أيضًا   HAL متصفح، لتسهيل العمليات.

دعونا ننشئ مثالاً لـ Spring Boot Actuator.

الخطوة 1: افتح Spring Initializr http://start.spring.io .

الخطوة 2: تقدم  المجموعةالاسم. نقدم   com.w3codebox.

الخطوة 3: تقدم  المشروع معرف. نقدم  مثال على تكوين التنفيذ التلقائي

الخطوة 4: إضافة الاعتماد:   Spring Web و   Spring Boot Actuator.

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
 

الخطوة 5: انقر   توليد (توليد) الزر. سيقوم بتحديد جميع المعايير المتعلقة بالمشروع   jar ملف، وأنشأه في نظامنا المحلي.

الخطوة 6: استخراجملف jar المزود

الخطوة 7: استخدم الخطوات التالية للاستيرادمجلد المشروع:

ملف->استيراد->مشروع Maven الحالي->الخطوة التالية->استعراض->اختيار مجلد المشروع->اكتمال

بعد إدخال المشروع، يمكننا الوصول إليه في بيئة IDE   مستكشف الحزم يمكنك رؤية بنية الدليل التالية في الجزء

الخطوة 8: إنشاء فئة Controller في الحزمة   com.w3codebox.في حزمة   DemoRestController

في المسيطر، قمنا بتعريف كلاس   hello()،

DemoRestController.java

package	com.w3codebox;
import	https://org.springframework.web.bind.annotation.GetMapping;
import	https://org.springframework.web.bind.annotation.RestController;
@RestController
public	class	DemoRestController 
{
    @GetMapping("/hello")
    public	String	hello() 
    {
        return	"مرحبًا المستخدم، لقد كان يومًا رائعًا.";
    }
}
 

تشغيل الخطوة 10:   ActuatorAutoConfigurationExampleApplication.java ملف.

فتح المتصفح وقم بتشغيل URL ،   سيتم إرجاع النص الذي指定ناه في المسيطر. ،

الآن قم بتشغيل URL محرك التنفيذ   سيتم تشغيل محرك التنفيذ لعرض ثلاثة URL كما يلي: ،   self ،   health و   info ،

{"_links":{"self":{"href":"http://localhost:8080/actuator","templated":false},"health":{"href":"http://localhost:8080/actuator/health","templated":false},"health-path":{"href":"http://localhost:8080/actuator/health/{*path}","templated":true},"info":{"href":"http://localhost:8080/actuator/info","templated":false}}}
 

الخطوة 11: افتح   pom.xml أضف ملف   HAL متصفحالاعتمادات.

<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-rest-hal-browser</artifactId>
</dependency>
 

الخطوة 12: مرة أخرى، قم بتشغيل   ActuatorAutoConfigurationExampleApplication.java ملف.

للوصول إلى متصفح HAL، اكتب   http://localhost:8080 في المتصفح، ثم اضغط على زر Enter.

الآن يمكننا الوصول إلى التنفيذ عبر متصفح HAL.

اكتب في مربع النص في مدير الموارد  /actuator ، ثم اضغط على   اذهب > زر.

يظهر مع تنفيذ. من المهم جداً في التنفيذ   beans .

عندما نضغط على السهم لـ bean، سيظهر كل

الشكل أعلاه يظهر جميع التكوينات التلقائية.   beans التفاصيل.