English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
يتم تكوين 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的自动配置功能如何工作。
الخطوة 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>
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 التفاصيل.