Spring Boot ialah sub-projek di bawah organisasi sumber terbuka Spring Ia merupakan penyelesaian sehenti untuk komponen Spring Ia terutamanya memudahkan kesukaran menggunakan
Spring, menjimatkan konfigurasi berat dan menyediakan pelbagai permulaan. . supaya pembangun boleh bermula dengan cepat.
Pembangunan pantas, penyepaduan pantas, konfigurasi dipermudahkan, bekas perkhidmatan terbenam
SpringBoot Ia adalah rangka kerja Spring yang dibangunkan dengan pantas SpringCloud adalah rangka kerja mikro yang lengkap bergantung pada SpringBoot.
Spring Boot terutamanya mempunyai kelebihan berikut: Ia mudah untuk dimulakan, meningkatkan kecekapan pembangunan dan menyediakan rangka kerja pembangunan yang lebih pantas dan ringkas untuk pembangunan Spring. Berfungsi di luar kotak, jauh dari konfigurasi yang menyusahkan. Ia menyediakan satu siri fungsi bukan perniagaan yang biasa untuk projek berskala besar, seperti pelayan terbenam, pengurusan keselamatan, pemantauan data pengendalian, pemeriksaan kesihatan dan konfigurasi luaran, dsb. Ringkasan SpringBoot adalah untuk menjadikan pengekodan lebih mudah, konfigurasi lebih mudah, penggunaan lebih mudah, pemantauan lebih mudah, dsb.
Apa anotasi yang terutamanya terdiri daripada anotasi? Anotasi pada kelas permulaan ialah @SpringBootApplication, yang juga merupakan anotasi teras Spring Boot Kombinasi utama termasuk tiga anotasi berikut: @SpringBootConfiguration: menggabungkan anotasi @Configuration untuk melaksanakan fungsi fail konfigurasi. @EnableAutoConfiguration: Hidupkan fungsi konfigurasi automatik atau matikan pilihan konfigurasi automatik, contohnya:
@ComponentScan: Pengimbasan komponen spring. java 如关闭数据源自动配置功能: @SpringBootApplication(exclude = { DataSourceAutoConfiguration.class })。
6. Apakah rangka kerja pengelogan yang disokong Spring Boot? Apakah rangka kerja pengelogan yang disyorkan dan lalai?
ke konsol atau fail.
7. Cara SpringBoot Starter berfungsi
kacang ke dalam SpringContext // (SpringContext ialah Konfigurasi Spring. fail)
8. Apakah ciri baharu Spring Boot 2.X? Bagaimanakah ia berbeza dengan 1.X?
Perubahan konfigurasi Naik taraf versi JDK Naik taraf perpustakaan kelas pihak ketiga Pengaturcaraan Spring Responsif menyokong pengikatan atribut konfigurasi sokongan HTTP/2 Lebih banyak penambahbaikan dan peningkatan
9 >
thymeleaf, freemarker, jsp, JSP tidak disyorkan secara rasmi dan akan mempunyai sekatan10 Kelemahan SpringBootSaya rasa ia memalukan pada masa ini, saya rasa SpringBoot tidak mempunyai kekurangan. Apabila saya menemui satu, saya fikir ia adalah kerana saya tidak perlu mengkonfigurasinya sendiri, jadi sukar untuk mencari apabila ralat dilaporkan. 11. Apakah cara untuk menjalankan Spring Boot? Pakej dengan arahan atau masukkan ke dalam bekas untuk dijalankan
12 perlukan bekas bebas untuk dijalankan?
14. Apakah cara untuk melaksanakan penggunaan panas dalam SpringBoot?
Spring-boot. -devtools
15 Penggunaan perkara SpringBoot
16. Kaedah panggilan tak segerak Async
17. Bagaimana untuk menjalankan beberapa kod tertentu apabila Spring Boot bermula?
18 Boot?
Spring JavaConfig ialah produk komuniti Spring Ia diperkenalkan pada Spring 3.0 Ia menyediakan
kaedah Java tulen untuk mengkonfigurasi bekas Spring IOC. Jadi ia membantu mengelakkan penggunaan konfigurasi XML. Kelebihan menggunakan JavaConfig ialah:
Konfigurasi berorientasikan objek. Oleh kerana konfigurasi ditakrifkan sebagai kelas dalam JavaConfig, pengguna boleh memanfaatkan sepenuhnya ciri berorientasikan objek dalam Java. Satu kelas konfigurasi boleh mewarisi yang lain, mengatasi kaedah @Beannya, dsb.
Kurangkan atau hapuskan konfigurasi XML. Faedah konfigurasi luaran berdasarkan prinsip suntikan kebergantungan telah terbukti. Walau bagaimanapun, ramai pembangun tidak mahu bertukar-tukar antara XML dan Java. JavaConfig menyediakan pembangun dengan cara Java tulen untuk mengkonfigurasi bekas Spring serupa dengan konsep konfigurasi XML. Dari perspektif teknikal, adalah mungkin untuk mengkonfigurasi bekas menggunakan hanya kelas konfigurasi JavaConfig, tetapi dalam praktiknya ramai orang percaya bahawa mencampurkan dan memadankan JavaConfig dengan XML adalah ideal.
Taip selamat dan mesra pemfaktoran semula. JavaConfig menyediakan cara selamat jenis untuk mengkonfigurasi bekas Spring. Terima kasih kepada sokongan Java
5.0 untuk generik, kacang kini boleh diambil mengikut jenis dan bukannya dengan nama, tanpa sebarang cast atau carian berasaskan rentetan.
Konfigurasi Java yang biasa digunakan:
@Configuration: Tulis anotasi ini pada kelas untuk menunjukkan bahawa kelas ini ialah kelas konfigurasi
@ComponentScan: Tambahkan anotasi @ComponentScan pada kelas konfigurasi. Secara lalai, anotasi ini akan mengimbas semua kelas konfigurasi di bawah pakej tempat kelas ini berada, yang bersamaan dengan
@Bean: suntikan kacang: bersamaan dengan < bean id="objectMapper" sebelumnya
class="org.codehaus.jackson.map.ObjectMapper" />
@EnableWebMvc: bersamaan dengan xml of< ;mvc:annotation-driven>
@ImportResource: Setara dengan xml< import resource="applicationContextcache.xml">
konfigurasi utama ini akan mendayakan fungsi konfigurasi automatik anotasi @EnableAutoConfiguration untuk Spring Boot apabila ia dimulakan.
Dengan EnableAutoConfiguration ini, ia akan:
Memuatkan kelas autokonfigurasi yang boleh digunakan daripada fail konfigurasi META_INF/Spring.factories
Alih keluar pendua dan mengecualikan kelas yang dibawa oleh atribut exclude dan excludeName
Tapis , kembalikan kelas konfigurasi automatik yang memenuhi syarat (@Conditional)
1.fail sifat;
2.Fail YAML;
3. Parameter baris perintah; . Apakah itu YAML?
YAML ialah bahasa siri data yang boleh dibaca manusia. Ia biasanya digunakan dalam fail konfigurasi. Berbanding dengan fail sifat, fail YAML lebih berstruktur dan kurang mengelirukan jika kita ingin
menambah sifat kompleks dalam fail konfigurasi. Ia boleh dilihat bahawa YAML mempunyai
YAML kini boleh dianggap sebagai format fail konfigurasi yang sangat popular, sama ada ia adalah bahagian hadapan atau bahagian belakang, anda boleh melihat YAML konfigurasi
Tetapkan. Jadi apakah kelebihan konfigurasi YAML berbanding dengan konfigurasi sifat tradisional?
konfigurasi YAML tersuai.
24. Bolehkah Spring Boot menggunakan konfigurasi XML?
Spring Boot mengesyorkan menggunakan konfigurasi Java dan bukannya konfigurasi XML, tetapi konfigurasi XML juga boleh digunakan dalam Spring Boot melalui @ImportResource Anotasi boleh memperkenalkan XML konfigurasi.
Dua fail konfigurasi pada teras but spring:
bootstrap (. yml atau . properties): boostrap dimuatkan oleh ApplicationContext induk dan dimuatkan sebelum aplikasi berkuat kuasa dalam fasa but konteks aplikasi . Secara umumnya, kami akan menggunakan fail ini dalam konfigurasi Spring Cloud. Dan sifat dalam boostrap tidak boleh ditindih;
Semasa pembangunan projek, sesetengah fail konfigurasi mungkin berbeza dalam persekitaran yang berbeza seperti pembangunan, ujian atau pengeluaran, seperti sambungan pangkalan data
sambungan, konfigurasi redis, dsb. Jadi bagaimana kita menukar konfigurasi secara automatik dalam persekitaran yang berbeza? Spring menyediakan kami dengan
mekanisme profil, yang memberikan kami fungsi menukar fail konfigurasi ke belakang dan sebagainya
Profil Musim Bunga membolehkan pengguna mendaftarkan kacang berdasarkan fail konfigurasi (dev, test, prod, dll.). Jadi apabila aplikasi
sedang berjalan dalam pembangunan, hanya kacang tertentu boleh dimuatkan, manakala dalam PENGELUARAN, kacang tertentu yang lain boleh dimuatkan.
Andaikan keperluan kami ialah dokumentasi Swagger hanya tersedia dalam persekitaran QA, dan semua dokumentasi lain dilumpuhkan. Ini boleh dilakukan menggunakan fail konfigurasi. Spring Boot menjadikan kerja dengan fail konfigurasi sangat mudah.
untuk membaca sifat dalam properties Konfigurasi, gunakan @MapperScan untuk mendaftar ke dalam pakej pemeta yang sepadan
Transaksi yang dikonfigurasikan dalam DataSourceConfig
Yang kedua ialah menggunakan jta-atomikos untuk melaksanakan pengurusan transaksi teragih
Gunakan Snyk untuk menyemak kebergantungan anda
Naik taraf kepada versi terkini
Dayakan perlindungan CSRF
Gunakan Dasar Keselamatan Kandungan untuk mengelakkan serangan XSS
konfigurasi keselamatan. Ia memerlukan kod yang sangat sedikit. Kelas konfigurasi perlu melanjutkan WebSecurityConfigurerAdapter dan mengatasi kaedahnya.
31 Bandingkan kelebihan dan kekurangan Spring Security dan Shiro?
gabungan yang dicadangkan Dari sudut teknikal semata-mata, tidak kira bagaimana anda menggabungkannya, tidak akan ada masalah. Berbanding dengan Spring Security
, Shiro terutamanya mempunyai ciri-ciri berikut:
Spring Security ialah rangka kerja pengurusan keselamatan kelas berat Shiro ialah rangka kerja pengurusan keselamatan yang ringan
Spring Security mempunyai konsep dan konfigurasi Rumit; dan konfigurasi mudah
Spring Security mempunyai fungsi yang berkuasa; Shiro mempunyai fungsi yang ringkas
32 Bagaimana untuk menyelesaikan masalah merentas domain dalam Spring Boot?
@Configuration public class CorsConfig implements WebMvcConfigurer { @Override public void addCorsMappings(CorsRegistry registry) { registry.addMapping("/**") .allowedOrigins("*") .allowCredentials(true) .allowedMethods("GET", "POST", "PUT", "DELETE", "OPTIONS") .maxAge(3600); } }
34. Bagaimana cara menggunakan Spring Boot untuk melaksanakan pengendalian pengecualian global?
Spring menyediakan cara yang sangat berguna untuk mengendalikan pengecualian menggunakan ControllerAdvice. Kami mengendalikan semua pengecualian yang dilemparkan oleh kelas pengawal dengan melaksanakan kelas
ControlerAdvice.
Spring Boot menyediakan titik akhir monitor untuk memantau metrik bagi perkhidmatan mikro individu. Titik akhir ini berguna untuk mendapatkan maklumat
tentang aplikasi (seperti sama ada ia dimulakan) dan sama ada komponennya (seperti pangkalan data, dll.) berjalan dengan betul. Walau bagaimanapun, satu kelemahan atau kesukaran utama menggunakan monitor
UI web yang membolehkan kami memvisualisasikan metrik untuk berbilang aplikasi.
如果项目比较大,类比较多,不使用@SpringBootApplication,采用@Compoment指定扫包范
围
在项目启动时设置JVM初始内存和最大内存相同
将springboot内置服务器由tomcat设置为undertow
这可以使用 DEV 工具来实现。通过这种依赖关系,您可以节省任何更改,嵌入式tomcat 将重新启
动。Spring Boot 有一个开发工具(DevTools)模块,它有助于提高开发人员的生产力。Java 开
发人员面临的一个主要挑战是将文件更改自动部署到服务器并自动重启服务器。开发人员可以重新
加载 Spring Boot 上的更改,而无需重新启动服务器。这将消除每次手动部署更改的需要。Spring
Boot 在发布它的第一个版本时没有这个功能。这是开发人员最需要的功能。DevTools 模块完全满
足开发人员的需求。该模块将在生产环境中被禁用。它还提供 H2 数据库控制台以更好地测试应用
程序。
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> </dependency>
在微服务中,一个完整的项目被拆分成多个不相同的独立的服务,各个服务独立部署在不同的服务
器上,各自的 session 被从物理空间上隔离开了,但是经常,我们需要在不同微服务之间共享
session ,常见的方案就是 Spring Session + Redis 来实现 session 共享。将所有微服务的
session 统一保存在 Redis 上,当各个微服务对 session 有相关的读写操作时,都去操作 Redis 上
的 session 。这样就实现了 session 共享,Spring Session 基于 Spring 中的代理过滤器实现,使
得 session 的同步操作对开发人员而言是透明的,非常简便。
使用了下面的一些依赖项
spring-boot-starter-web 嵌入tomcat和web开发需要servlet与jsp支持
spring-boot-starter-data-jpa 数据库支持
spring-boot-starter-data-redis redis数据库支持
spring-boot-starter-data-solr solr支持
mybatis-spring-boot-starter 第三方的mybatis集成starter
自定义的starter(如果自己开发过就可以说出来)
首先,这个 Starter 并非什么新的技术点,基本上还是基于 Spring 已有功能来实现的。首先它提
供了一个自动化配置类,一般命名为 XXXAutoConfiguration ,在这个配置类中通过条件注解来
决定一个配置是否生效(条件注解就是 Spring 中原本就有的),然后它还会提供一系列的默认配
置,也允许开发者根据实际情况自定义相关配置,然后通过类型安全的属性(spring.factories)注入
将这些配置属性注入进来,新注入的属性会代替掉默认属性。正因为如此,很多第三方框架,我们
只需要引入依赖就可以直接使用了。当然,开发者也可以自定义 Starter
在 Spring Boot 中使用定时任务主要有两种不同的方式,一个就是使用 Spring 中的 @Scheduled
注解,另一-个则是使用第三方框架 Quartz。
使用 Spring 中的 @Scheduled 的方式主要通过 @Scheduled 注解来实现。
我们都知道,新创建一个 Spring Boot 项目,默认都是有 parent 的,这个 parent 就是 springboot-starter-parent ,spring-boot-starter-parent 主要有如下作用:
定义了 Java 编译版本为 1.8 。
使用 UTF-8 格式编码。
继承自 spring-boot-dependencies,这个里边定义了依赖的版本,也正是因为继承了这个依
赖,所以我们在写依赖时才不需要写版本号。
执行打包操作的配置。
自动化的资源过滤。
自动化的插件配置。
针对 application.properties 和 application.yml 的资源过滤,包括通过 profile 定义的不同
环境的配置文件,例如 application-dev.properties 和 application-dev.yml。
总结就是打包用的
进入项目目录在控制台输入mvn clean package,clean是清空已存在的项目包,package进行打
包或者点击左边选项栏中的Mavne,先点击clean在点击package
Balang terakhir yang dibungkus oleh projek Spring Boot ialah balang boleh laku ini boleh dilalui secara langsung -jar xxx.jar Jalankan perintah
Balang jenis ini tidak boleh dipercayai oleh projek lain sebagai balang biasa Walaupun ia bergantung, kelas di dalamnya tidak boleh digunakan.
Balang Spring Boot tidak boleh dipercayai oleh projek lain, terutamanya kerana strukturnya berbeza daripada balang biasa. Untuk pakej balang biasa, selepas penyahmampatan
ialah nama pakej secara langsung, dan pakej ialah kod kami Selepas penyahmampatan, balang boleh laku yang dibungkus oleh Spring Boot ialah kod kami dalam direktori BOOTINFclasses, jadi ia tidak boleh dirujuk secara langsung. Jika anda mesti merujuknya, anda boleh menambah konfigurasi pada fail pom.xml dan membungkus projek Spring Boot ke dalam dua balang, satu boleh laku dan satu boleh dirujuk.
Atas ialah kandungan terperinci Apakah soalan dan jawapan temu bual untuk SpringBoot?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!