Springboot 項目搭建入門

2020-12-15 Coder629

Springboot 項目搭建入門

環境準備ideamaven工程搭建springboot項目由於其自動配置了很多的依賴,簡化了開發者的配置,因此加快了開發者的開發速度,但是如果對spring 底層等不太了解的人,還是有些懵的,建議大家學習spring 之後再來使用spring boot項目來搭建。搭建很簡單<parent>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-parent</artifactId>

<version>2.2.5.RELEASE</version>

</parent>

<modelVersion>4.0.0</modelVersion>

<artifactId>springboot-01</artifactId>

<dependencies>

<!--添加web依賴,版本由父工程來決定-->

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-web</artifactId>

</dependency>

</dependencies>

編寫Controller業務類package com.shadow.controller;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.ResponseBody;@Controllerpublic class SpringbootController { @RequestMapping("/hello") @ResponseBody public String hello(){ return "hello"; }}編寫spring boot啟動類package com.shadow;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;//@SpringBootApplication 來標註一個主程序類//說明這是一個Spring Boot應用@SpringBootApplicationpublic class SpringbootApplication { public static void main(String[] args) { //以為是啟動了一個方法,沒想到啟動了一個服務 SpringApplication.run(SpringbootApplication.class, args);}}引入springboot依賴包 注意Controller包一定要和SpringbootApplication啟動類平級,不然掃描不到。

結果

本文使用SpringBoot搭建了一個web項目,可以發現相對於ssm來搭建web項目,springboot確實幫我們做了很多的工作。

springboot-boot-starter-xx:就是spring-boot的場景啟動器我們需要什麼場景,在pom中引入對應的啟動器即可,例如spring-boot-starter-web:幫我們導入了web模塊正常運行所依賴的組件;

2. 自動配置核心是在@EnableAutoConfiguration這個註解

springboot核心流程分析

此代碼SpringApplication.run(SpringbootApplication.class, args);執行流程

構造函數中流程//推斷項目類型,看項目是不是web項目this.webApplicationType = WebApplicationType.deduceFromClasspath();//加載所有實現了ApplicationContextInitializer類的初始化器setInitializers((Collection) getSpringFactoriesInstances(ApplicationContextInitializer.class));//加載所有實現了ApplicationListener類的程序監聽器setListeners((Collection) getSpringFactoriesInstances(ApplicationListener.class));//推斷main方法所在的類,裡面使用異常堆棧來判斷的this.mainApplicationClass = deduceMainApplicationClass();run方法的流程//啟動應用程式啟動計時器StopWatchstopWatch=newStopWatch();stopWatch.start();ConfigurableApplicationContextcontext=null;Collection<SpringBootExceptionReporter>exceptionReporters=newArrayList<>();//配置系統屬性configureHeadlessProperty();//獲取所有的監聽器,並啟動SpringApplicationRunListenerslisteners=getRunListeners(args);listeners.starting();try {//裝配環境參數ApplicationArgumentsapplicationArguments=newDefaultApplicationArguments(args);ConfigurableEnvironmentenvironment=prepareEnvironment(listeners, applicationArguments);configureIgnoreBeanInfo(environment);//列印bannerBannerprintedBanner=printBanner(environment);//創建上下文環境context=createApplicationContext();//準備上下文異常報告器exceptionReporters=getSpringFactoriesInstances(SpringBootExceptionReporter.class,newClass[] { ConfigurableApplicationContext.class }, context);//上下文前置處理,environment環境設置,監聽配置prepareContext(context, environment, listeners, applicationArguments, printedBanner);//刷新上下文,此處是執行spring的bean實例化過程refreshContext(context);//上下文後置處理afterRefresh(context, applicationArguments);//計時器結束stopWatch.stop();if (this.logStartupInfo) {newStartupInfoLogger(this.mainApplicationClass).logStarted(getApplicationLog(), stopWatch); }//通知應用上下文啟動完成listeners.started(context);//執行callRunnerscallRunners(context, applicationArguments);}//通知應用上下文就緒listeners.running(context); returncontext;

相關焦點

  • Springboot學習二:Springboot手動搭建第一個web工程
    功能使用springboot手動搭建一個web工程。搭建步驟創建一個maven工程(簡單骨架)。新建項目創建子工程,繼承自定義父工程(默認也繼承了springboot) 由於父工程繼承了springboot,子工程也具備開發springboot能力,由springboot傳遞過來的各種資源屬性。在pom文件中(子工程)依賴一個開發web應用的資源。
  • SpringBoot:搭建第一個Web程序
    本文簡單介紹一下spingBoot搭建web程序的流程,希望對入門學習spingBoot的朋友有所幫助。本文採用的開發工具是IDEA。1、打開IDEA,創建項目。2、點擊創建項目,進入下一步,具體按照畫紅框的操作。3、點擊下一步4、點擊下一步,輸入項目名稱,然後點擊下一步,注意Artifat命名小寫命名,否則點擊下一步會報錯。
  • SpringBoot第一個程序,HelloWorld
    步驟如下:1、首先打開我們的IDEA工具,點擊Create New Project新建一個項目2、點擊左側的Spring Initializr,選擇相應的jdk版本信息,默認的Default打上小點點,點擊next3、==細節==:在最下面的package的地方默認是com.huagege.springboot
  • mall改造:litemall與mall對比,開源項目不要誤導新手了
    mall,大家可以看到,相對的跟新頻率不是很高,項目記得在19年的時候是個springcloud 的項目,現在mall這個版本取消了cloud的相關依賴是個springboot項目。litemall,項目是使用springboot+mysql ,依賴相當的少,項目的初衷是為了讓大家更好的入門,更新很頻繁,前端,後臺,小程序的前後臺都有,項目是可以用來二次開發進行商用的,小型電商。
  • 用SpringBoot搭建SSM項目環境,真簡便
    SpringBoot整合SSM框架,搭建項目環境。其中mybatis有一個插件叫通用mapper,單表查詢時使用起來非常方便。本來我是打算做個簡單的說明就好了的,結果越寫越多,就獨立成一篇文章了,也就是今天的另外一篇。
  • 基礎篇:Spring Boot入門體驗(圖文教程)
    Spring Boot 是所有基於 Spring Framework 5.0 開發的項目的起點。Spring Boot 的設計是為了讓你儘可能快的跑起來 Spring 應用程式並且儘可能減少你的配置文件。設計目的:用來簡化新 Spring 應用的初始搭建以及開發過程。從最根本上來講,Spring Boot 就是一些庫的集合,它能夠被任意項目的構建系統所使用。
  • 阿里P8架構師用項目經驗編寫SpringMVC+MyBatis從入門到項目實戰
    接下來分享一份來自阿里P8架構師用自己多年項目經驗編寫的SpringMVC+MyBatis從入門到項目實戰文檔。第3章搭建 MyBatis工作環境本章涉及的內容有動手開發MyBatis入門程序數據交互層的傳統寫法使用MyBatis
  • Springboot學習:Springboot的特點及核心功能概述
    圖片來源於網絡2.2內嵌servletSpringboot為web工程提供了內嵌的web容器,默認使用tomcat,並且按照習慣進行默認配置,例如埠號8080 項目訪問路徑導致要想使用springboot必須依賴大量的資源.這樣極其不方便的。所以Springboot為開發者準備來的豐富環境的簡化依賴。
  • 基於SpringBoot Cloud構建的一個商城項目源碼分享
    基於springboot cloud構建的一個商城項目,包括前端,後端和h5應用,小程序,作為zscat應用實踐的模板項目。基於SpringBoot2.x、SpringCloud和SpringCloudAlibaba並採用前後端分離的企業級微服務敏捷開發系統架構。
  • 從零搭建 Spring Cloud 服務(超詳細)
    本文轉載自【微信公眾號:java進階架構師,ID:java_jiagoushi】經微信公眾號授權轉載,如需轉載與原文作者聯繫這裡會介紹很多基礎知識,直接想開始搭建微服務的可以看第二章,微服務的搭建。直接看第二章不會有什麼影響,可以先學會開車再學習車的構造的,看個人習慣來。
  • 記錄springboot接收post和get兩種方式提交數據的不同方法
    問題一的主要原因是因做的是前後端分離的移動項目,手機端請求伺服器時存在跨域問題。需要在伺服器端做跨域方面的處理。後端伺服器才可以接收到移動端發送的請求。問題二開始:場景描述:簡單寫了一個登錄,通過ajax提交用戶名和密碼到服務端 ,服務端接收參數後返回登錄成功信息。問題描述:服務端可以接收到請求,但是參數卻始終是null。
  • springboot的jar為何能獨立運行
    能獨立運行的jar文件在開發springboot應用時,通過java -jar命令啟動應用是常用的方式,今天就來一起了解這個簡單操作背後的技術;開發demo開發一個springboot應用作為本次研究的對象,對應的版本信息如下:
  • 全網最細緻的SpringBoot實戰教程,超適合新手小白入坑學習
    一、Spring Boot 入門Spring Boot 來簡化Spring應用開發的一個框架,約定大於配置Spring Boot 的底層用的就是Spring訪問官網:spring.io 再點擊projects
  • 芋道 Spring Boot JPA 入門(一)之快速入門
    快速入門3. 分頁操作4. 基於方法名查詢5. 基於註解查詢666. 彩蛋本文,我們基於 Spring Boot 2.X 版本。1. 概述我們,咱們來學習下 Spring Data JPA 。也因此,在我們使用的 Spring Data JPA 的項目中,如果想要替換底層使用的 JPA 實現框架,在未使用到相關 JPA 實現框架的特殊特性的情況下,可以透明替換。關於這一點,我們在 《芋道 Spring Boot Redis 入門》 中,已經看到 Spring Data Redis 也是已經看到這樣的好處。
  • 黑馬程式設計師:SpringBoot教程,SpringBoot高級之原理分析
    創建一個模塊,springboot-condition:@SpringBootApplicationpublic class SpringbootConditionApplication {public static void main(String[] args
  • 一篇帶給你SpringBoot + Spring Security入門
    這篇文章主要介紹了SpringBoot + Spring Security 簡單入門一、Spring Security 基本介紹這裡就不對Spring Security進行過多的介紹了,具體的可以參考官方文檔我就只說下SpringSecurity核心功能: 認證(你是誰) 授權(你能幹什麼) 攻擊防護(防止偽造身份)二、基本環境搭建這裡我們以SpringBoot
  • SpringBoot實現QQ郵箱註冊和登錄
    1、登錄註冊思路 這是一個使用spring boot做的一個qq郵箱註冊和登錄的項目。 沒寫前端頁面,使用postman測試。有截圖詳細。
  • 騰訊T7架構師至今還在鑽研的SpringBoot從構建小系統到架構大系統
    前言個人認為,springboot是隨著Spring4.0出生的, 他的出現,目的是為了解決Spring這麼多年來的發展導致本身的笨重、各類繁瑣及與第三方框架整合的配置文件,對於碼農或項目團隊來說,是不希望見到的。因此springboot的出現是為了解決spring多年發展帶來的弊端。
  • 太牛了,Github上標星30K+的SpringBoot實戰電商項目mall
    前言mall項目致力於打造一個完整的電商系統,採用現階段流行技術實現。項目介紹mall項目是一套電商系統,包括前臺商城系統及後臺管理系統,基於SpringBoot+MyBatis實現,採用Docker容器化部署。
  • Springboot+MybatisPlus高效實現增刪改查
    Mybatis-Plus基於mybatis做了增強,大大簡化了單表CRUD操作,而且Mybatis-Plus是無侵入性的,不會影響現有項目,Mybatis-Plus提供了代碼生成器,可以根據資料庫表一鍵生成對應的service、mapper、xml文件,service和mapper提供了豐富的CRUD操作方法,xml文件也是非常簡潔。