日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

maven springboot 除去指定的jar包_1. Spring Boot概述

發布時間:2024/9/15 javascript 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 maven springboot 除去指定的jar包_1. Spring Boot概述 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.1 Spring Boot理解

  • Spring Boot來簡化Spring應用開發,約定大于配置,去繁從簡,just run就能創建一個獨立的,產品級別的應用

  • 背景

    • J2EE笨重的開發、繁多的配置、低下的開發效率、 復雜的部署流程、第三方技術集成難度大。

  • 解決

    • “Spring全家桶”時代。

    • pring Boot => ?J2EE一站式解決方案

    • Spring Cloud => 分布式整體解決方案

  • 優點

    • 快速創建獨立運行的Spring項目以及與主流框架集成

    • 使用嵌入式的Servlet容器,應用無需打成WAR包

    • starters自動依賴與版本控制

    • 大量的自動配置,簡化開發,也可修改默認值

    • 無需配置XML,無代碼生成,開箱即用

    • 準生產環境的運行時應用監控 – 與云計算的天然集成

  • 單體應用:ALL IN ONE

  • 微服務:martin fowler,一種架構風格(服務微化)

    • 一個應用應該是一組小型服務;可以通過HTTP的方式進行互通

    • 微服務:每一個功能元素終都是一個可獨立替換和獨立升級的軟件單元

1.2 統一開發環境

  • Maven配置-settings.xml中添加

<profile> <id>jdk-1.8id> <activation> <activeByDefault>trueactiveByDefault> <jdk>1.8jdk> activation> <properties> <maven.compiler.source>1.8maven.compiler.source> <maven.compiler.target>1.8maven.compiler.target> <maven.compiler.compilerVersion>1.8maven.compiler.compilerVersion> properties>profile>
  • IDEA配置使用外部Maven

1.3 SpringBoot-HelloWorld

  • 創建maven項目

  • 導入SpringBoot相關依賴

<parent> <groupId>org.springframework.bootgroupId> <artifactId>spring-boot-starter-parentartifactId> <version>2.3.2.RELEASEversion> <relativePath/> parent><dependencies> <dependency> <groupId>org.springframework.bootgroupId> <artifactId>spring-boot-starter-webartifactId> dependency>dependencies>
  • 創建主程序

/** * @SpringBootApplication:用來標注一個主程序類,說明這是一個SpringBoot應用 */@SpringBootApplicationpublic class HelloWorldMainApplication { public static void main(String[] args) { //Spring應用啟動 SpringApplication.run(HelloWorldMainApplication.class,args); }}
  • 編寫相關的Controller,Service

@Controllerpublic class HelloController { @ResponseBody @RequestMapping("/hello") public String hello(){ return "Hello World!"; }}
  • 啟動主程序測試即可

  • 簡化部署

    • pom.xml導入maven插件

<build> <plugins> <plugin> <groupId>org.springframework.bootgroupId> <artifactId>spring-boot-maven-pluginartifactId> plugin> plugins>build>
    • 將這個應用打成jar包

注意:打成的jar包中已經攜帶了嵌入式的tomcat服務器

  • jar包直接使用 java -jar 命令進行執行

1.4 HelloWorld細節 - 場景啟動器(starter)

  • 探究POM文件 - 父項目

    • spring-boot-dependencies項目即是SpringBoot的版本仲裁中心,以后我們導入依賴默認是不需要寫版本的。(沒有在該父項目里管理的依賴還是要聲明版本號)

<parent> <groupId>org.springframework.bootgroupId> <artifactId>spring-boot-starter-parentartifactId> <version>2.3.2.RELEASEversion> <relativePath/> parent><parent> <groupId>org.springframework.bootgroupId> <artifactId>spring-boot-dependenciesartifactId> <version>2.3.2.RELEASEversion>parent>
  • 探究POM文件 - 導入的依賴

    • spring-boot-starter-web:幫我們導入了web模塊正常運行所依賴的組件

<dependencies> <dependency> <groupId>org.springframework.bootgroupId> <artifactId>spring-boot-starter-webartifactId> dependency>dependencies>
  • 引申結論

    • Spring-boot-starter:SpringBoot場景啟動器

    • SpringBoot將所有的功能場景都抽取出來做成了一個個的starters(啟動器),只需要在項目里引入這些starter,相關場景的所有依賴都會導入進來。

1.5 HelloWorld細節 ?- 探究主程序(主入口)類 - 自動配置

  • @SpringBootApplication

  • 該注解標注在某個類上說明該類就是SpringBoot的主配置類,SpringBoot就應該運行這個類的main方法來啟動這個SpringBoot應用

  • @SpringBootConfiguration

    • SpringBoot的定義的注解,@SpringBootConfiguration繼承自@Configuration,二者功能也一致,標注當前類是配置類,并會將當前類內聲明的一個或多個以@Bean注解標記的方法的實例納入到spring容器中,并且實例名就是方法名。

    • @Configuration

      • @SpringBootConfiguration繼承自@Configuration

      • @Configuration是Spring定義的注解,用來表示當前類是一個配置類

      • 因@Configuration上標注有@Component,所以配置類也是容器中的一個組件

  • @EnableAutoConfiguration

    • 開啟自動配置功能。以前需要我們配置的東西,SpringBoot會自動幫助我們配置。

    • @AutoConfigurationPackage

      • 自動配置包。其本身含義是將主配置類所在包及下面所有子包里面的所有組件掃描到Spring容器中

      • 進入后發現其上標注有@Import({Registrar.class}),@Import是Spring的底層注解,用于給容器中導入一個組件即AutoConfigurationPackage.Registrar.class。該組件實現了ImportBeanDefinitionRegistrar,用于手工指定具體導入哪些組件。

    • @Import({AutoConfigurationImportSelector.class})

      • AutoConfigurationImportSelector的selectImports方法會將所有需要導入的組件以全類名的方式返回,這些組件就會被加載到當前SpringBoot創建并使用的IoC容器中。

      • 這需要借助于Spring框架原有的一個工具類:SpringFactoriesLoader的支持,在AutoConfigurationImportSelector類中可以看到通過?SpringFactoriesLoader.loadFactoryNames()掃描所有jar包類路徑下META‐INF/spring.factories,把掃描到的這些文件的內容包裝成properties對象,從properties中獲取到EnableAutoConfiguration.class類(類名)對應的值,然后把他們添加在容器中

    • 總結:

      • SpringBoot在啟動的時候從類路徑下的META-INF/spring.factories中獲取到EnableAutoConfiguration.class類(類名)對應的值(當前Springboot版本一共127個自動配置類),將這些值作為自動配置類導入到容器中,自動配置生效開始進行自動配置工作。

      • J2EE的整體整合解決方案和自動配置都在spring-boot-autoconfigure.jar下

1.6 使用向導快速創建SpringBoot應用

  • IDEA:使用 Spring Initializer快速創建項目

    • IDE都支持使用Spring的項目創建向導快速創建一個Spring Boot項目;

    • 選擇我們需要的模塊;向導會聯網創建Spring Boot項目;

    • 默認生成的Spring Boot項目特點:

      • 主程序已經生成好了,只需要我們寫自己的邏輯即可

      • resources文件夾中目錄結構

        • static:保存所有的靜態資源;js css ?images;

        • templates:保存所有的模板頁面;(Spring Boot默認jar包使用嵌入式的Tomcat,默認不支持JSP頁面),可以使用模板引擎(freemarker、thymeleaf)

        • application.properties:Spring Boot應用的配置文件;可以修改一些默認設置

  • STS:使用 Spring Starter Project快速創建項目

總結

以上是生活随笔為你收集整理的maven springboot 除去指定的jar包_1. Spring Boot概述的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。