【系統學習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】所以可以直接輸出,,方便了許多。
暫時就想到這麼多,,日後想到了可以繼續更新……….