1. 程式人生 > >【系統學習SpringBoot】SpringBoot新建HelloWorld工程(IDEA)

【系統學習SpringBoot】SpringBoot新建HelloWorld工程(IDEA)

學習框架時一開始用的eclipse,感覺很不舒服,很多配置檔案提示很水。
後來遇到了IDEA,神器,不解釋誰用誰知道
博主的開發環境,IDEA2016,JDK1.8,Maven3.3.9….

開始SpringBoot之旅吧


一、新建一個SpringBoot專案

環境搭建在此不多解釋IDEA2016,JDK1.8,Maven3.3.9
作為一名程式設計師,搭環境都是基本功(當然遇到什麼環境問題也可以請教本人,一定知無不言)

【1】新建操作如下圖
這裡寫圖片描述


【2】填寫組織名稱以及專案座標(其實就是maven的東西)
這裡寫圖片描述

【3】選擇依賴(也可以後期配置,方便點選上最好)
這裡寫圖片描述

【4】建立成功

這裡寫圖片描述

【5】專案結構如下圖:
這裡寫圖片描述

新建完專案,作為一名萌萌噠程式猿不搞點事情??


二、SpringBoot一些簡單的配置

這裡寫圖片描述


配置檔案application.yml:
server:
#配置伺服器啟動埠
  port: 8083
#配置訪問的上下文路徑,就是localhost:8083後面需要的上下文路徑
  context-path: /helloworld

新建一個Controller(就是一個class,加個註解就升級了),叫做HelloController
package xatu.zsl.controller;

import org.springframework.web.bind.annotation.RequestMapping;
import
org.springframework.web.bind.annotation.RestController; /** * Created by zsl on 2017/9/2. */ @RestController public class HelloController { @RequestMapping("/springboot") public String Hello() { return "Hello SpringBoot!"; } }

目錄結構如下:
這裡寫圖片描述

搞了幾個簡單的配置,接下來就是見證奇蹟的時刻。


三、啟動SpringBoot

專案初始目錄下有個類,說他是啟動類【StudyBootDemoApplication】,看看他的原始碼:

package xatu.zsl;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class StudyBootDemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(StudyBootDemoApplication.class, args);
    }
}

有main,,那就能直接執行。,,執行一個試試。

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::        (v1.5.6.RELEASE)

成功執行!!,,瀏覽器測一測,果斷成功
這裡寫圖片描述

完了(●’◡’●),,,真的完了??不再搞點事情?


四、注意細節

【1】,springboot啟動時日誌是排錯的關鍵地方,凡是例項化成功的Controller都會有一個URL,以及啟動的埠號。如下圖:
這裡寫圖片描述


【2】context-path: /helloworld會出現在下圖位置,,同時還有一些過濾器,,也都有顯示,,dispatcherServlet學習過SpringMVC的讀者應該不陌生吧,,核心請求分發處理器。
這裡寫圖片描述

【3】dispatcherServlet在第一次訪問時建立,並初始化,servlet是單例的,,所以建立一次。
servlet詳解及Tomcat中多執行緒下的Servlet
【Tomcat執行緒池】執行緒池配置及執行緒分配測試
這裡寫圖片描述

【4】有個問題,SpringBoot是如何啟動Tomcat的,,我沒配置,它咋知道?

看了下原始碼原來有如下配置,springBoot在,

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

Starter for using Tomcat as the embedded servlet container. De
fault servlet container starter used by spring-boot-starter-web
Stater使用Tomcat作為Servlet容器,預設Servlet容器starter通過spring-boot-starter-web使用。。

解釋一下,,就是配置了【spring-boot-starter-web】,會預設帶一個Tomcat,作為Servlet容器。


【5】學過SpringMVC的讀者都知道,Controller需要配置ResponstBody才能夠返回內容,否則會去找ViewResolver進行轉view輸出,此處是直接輸出的,,??why

【@RestController】這個註解是一個組合註解

//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by Fernflower decompiler)
//

package org.springframework.web.bind.annotation;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.ResponseBody;

@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Controller
@ResponseBody
public @interface RestController {
    String value() default "";
}

它包含了這兩個註解【@Controller】【@ResponseBody】所以可以直接輸出,,方便了許多。


暫時就想到這麼多,,日後想到了可以繼續更新……….