從零開始的Spring Boot學習【二】【自動裝配(一)】

我們以前的web程序,是需要在webContext文件夾中配置web.xml,並且打成war包,然後部署到tomcat中。現在的Spring Boot很方便,內嵌了tomcat,上述的這些都不需要我們去做

我們現在寫一個Controller,並且運行Java Application,然後在網址上輸入:http://localhost:8080/helloSpringBoot

package com.example.demo.Controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
public class HelloWorldController {
	@ResponseBody
	@RequestMapping("helloSpringBoot")
	public String helloworld() {
		return "hello world";
	}
}

在頁面上就會輸入一句話:

如果有得萌新不知道@Controller,@ResponseBody,@RequestMapping是什麼意思,博主在這裏給你們快速過一下。

@Controller:標記在一個類上,表示這是Spring類的一個實例且是一個控制器,爲了保證Spring能找到它所要添加的信息。

@ResponseBody:將java對象轉換爲json格式的數據,大家都知道ajax,在jsp頁面中,我們使用ajax從後臺獲取數據,接收的格式是json,而java後臺則是生成一個java對象返回,所以我們需要中間的轉換器,把對象轉換爲json。

@RequestMapping:你可以使用@RequestMapping註解來將請求URL映射到整個類上或某個特定的方法上,即既可以定義在類上,也可以定義方法上。

大家可以注意到我使用的是tomcat默認端口8080,Spring Boot【一】也講過,我們有一個默認配置文件application.properties(其實還有另外一個,以後會講,叫做application.yml),在這裏我們可以修改默認的端口號,怎麼操作?

在配置文件中我們輸入server加上“.”,會有代碼提示,裏面有一個port,端口號,我們設置爲8068,然後重新運行Spring Boot,就會發現原來的8080端口加載出的頁面,現在已經無法顯示,需要更改端口號爲8068纔可以顯示出hello world。

我們要知其然,知其所以然。我們爲什麼在這裏設置了server.port=8068,它的相關端口號就會進行了更改呢?爲什麼不能直接寫port=8068或者http.server.port=8068,而一定要寫server.port=8068呢?我們來分析一下。

如果我們在Controller的類中,返回的是中文的字符,在網頁上也同樣會顯示出中文字符,大家可以去試一試,但是我們沒有設置編碼格式,那麼編碼格式要怎麼設置呢?默認的編碼格式是什麼?在application.properties中也是可以對字符的編碼進行設置:

例如這樣,那麼爲什麼要輸入spring.http.encoding.charset?我們去尋找一下,這是有關於spring的配置,我們找到相關的jar包,在Maven Dependencies中:

在這個jar包中有很多package,我們找到管理web.servlet的package,裏面有一個管理編碼格式的class文件:

進去之後,我們可以看到這個配置class文件所寫的內容,在類的上方有一@EnableConfigurationProperties(HttpProperties.class)

我們按住Ctrl,然後點擊HttpProperties.class(是它的一些屬性配置,點進去看一下)

prefix就是前綴的意思,在這裏它提供了一個前綴spring.http給我們,讓我們能從配置文件中輸入相對應的前綴prefix,就能修改默認的相關信息,在這個類中,有一個變量encoding,這個是Encoding靜態類中的一個對象。在這個靜態類中,有一個變量叫做charset。天啊!我們發現了什麼,spring.http.encoding.charset!就是我們在application.properties裏面設置的編碼所書寫的key,原來是這樣的因果關係呀!是不是終於知其然知其所以然了?那麼問題又來了,爲什麼在這個類中書寫過後,我們就會設置好了編碼格式,它內部到底是怎麼運行的?這就要講到很多註解哩!讓我們一起深度的刨根問底,從最底層來了解Spring Boot,這樣才能學會這個框架,並且熟練的運用它。更多精彩,關注博主哦!

 

上一章:從零開始的Spring Boot學習【一】【搭建+配置+初步運行】

下一章:從零開始的Spring Boot學習【三】【自動裝配(二)】

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章