国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - spring boot開發(fā)遇到坑之spring-boot-starter-web配置文件使用教程

spring boot開發(fā)遇到坑之spring-boot-starter-web配置文件使用教程

2021-03-16 13:15小破孩123 Java教程

Spring Boot支持容器的自動配置,默認是Tomcat,當然我們也是可以進行修改的。這篇文章給大家介紹了spring boot開發(fā)遇到坑之spring-boot-starter-web配置文件使用教程,需要的朋友參考下吧

spring boot簡介

     spring boot是最近非常流行的,在spring的框架上改進的框架。該框架的目的是為了提高開發(fā)人員的速度,降低配置的難度等等,極大了簡化了開發(fā)流程。具體的詳細的說明請參考官方文檔。在日常工作中,由于需要搭建一套環(huán)境或者框架的機會非常的少,大部分都是在原有的基礎上開發(fā),所以當讓你搭建一個簡單的框架,就會出現(xiàn)各種各樣的困難,比如說,我在搭建的一個服務器的時候,準備了一個小的demo,原以為非常的簡單,結果遇到了各種各樣的問題,而發(fā)現(xiàn)網(wǎng)上的博客都是零零散散的講一些點,很難有一個完整的流程,包括可能會遇到的問題。這里對搭建一個簡單的項目流程做一個詳細的總結,方便日后參考,同時這一篇博客也是為了下一篇博客tengine反向代理服務器搭建做一點前置的基礎準備。

Spring-boot的2大優(yōu)點:

1.基于Spring框架的“約定優(yōu)先于配置(COC)”理念以及最佳實踐之路。
2.針對日常企業(yè)應用研發(fā)各種場景的Spring-boot-starter自動配置依賴模塊,且“開箱即用”(約定spring-boot-starter- 作為命名前綴,都位于org.springframenwork.boot包或者命名空間下)。

本篇我將繼續(xù)向小伙伴介紹springboot配置文件的配置,已經全局配置參數(shù)如何使用,好了下面開始我們今天的內容介紹。

  我們知道Spring Boot支持容器的自動配置,默認是Tomcat,當然我們也是可以進行修改的:

  1、首先我們排除spring-boot-starter-web依賴中的Tomcat:在pom文件中排除tomcat的starter

?
1
2
3
4
5
6
7
8
9
10
<dependency>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter-web</artifactId>
 <exclusions>
 <exclusion>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-tomcat</artifactId>
 </exclusion>
 </exclusions>
</dependency>

  2、加入Jetty容器

?
1
2
3
4
<dependency>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter-jetty</artifactId>
</dependency>

  這樣我們的springboot容器就修改成Jetty容器了。

  為了方便我們的調試,這里給大家推薦一款http調試工具:Postman

  下面我們聊一下springboot的全局配置文件:application.properties

  在開發(fā)中一定遇到過這樣的需求,就是修改我們的容器訪問端口,既然springboot默認加載容器,那么端口設置當然是通過配置文件來控制的,相當方便我們只需要在配置文件中添加:

?
1
server.port=6666

  這樣我們的容器端口就修改為6666了。

  我們還可以通過配置文件來設置項目訪問別名:

?
1
server.context-path=/springboot

   這樣我們啟動項目通過http://localhost:6666/springboot1即可訪問到我們的項目

  以上只是springboot配置文件配置的冰山一角,比如我們還可以設置數(shù)據(jù)庫連接配置(database),設置開發(fā)環(huán)境配置,部署環(huán)境配置,實現(xiàn)兩者之間的無縫切換。

  下面我們一起了解一下關于springboot的controller的使用,springboot為我們提供了三個注解:

spring boot開發(fā)遇到坑之spring-boot-starter-web配置文件使用教程

  上一篇我們使用的便是@RestController,下面我們來一起使用@Controller試試:

?
1
2
3
4
5
6
7
8
9
10
11
12
@Controller
//@ResponseBody
public class RequestTest {
 /**
 * 不對請求方式限制
 * @return
 */
 @RequestMapping(value = "/req")
 public String req(){
 return "success";
 }
}

  當我們在瀏覽器輸入http://localhost:8080/springboot1/req回車,發(fā)現(xiàn)404

?
1
2
3
4
5
6
7
{
 "timestamp": 1515332935215,
 "status": 404,
 "error": "Not Found",
 "message": "No message available",
 "path": "/springboot1/req"
}

  這是為什么呢?這是因為@Controller必須配合模板使用,所以我們這里打開maven的pom文件,添加spingboot的模板:

?
1
2
3
4
5
<!-- springboot模板 -->
<dependency>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>

  然后在我們項目的resources目錄下找到templates(如過沒有,新建一個,但一定要注意文件夾名稱必須保持一致),然后創(chuàng)建一個success.html這樣我們再次啟動項目,訪問剛剛的地址,是不是就Ok了。

  不過這里需要說明一點,現(xiàn)在的企業(yè)級開發(fā)都是前后端分離,我們做后臺服務只需要返回對應的數(shù)據(jù)即可,當然使用模板還有一個弊端,那就是性能會造成一定的損耗,所以這里大家簡單了解即可。

  上面的介紹中已經說了,@Controller+@ResponseBody相當于@RestController,所以這里推薦大家使用@RestController。

  下面我們來介紹介紹一下@RequestMapping(value = "/req"),這個注解相信大家已經知道他的用法了,當然這個注解不但可以使用在方法上,同樣適用于類。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
@RestController
//@Controller
//@ResponseBody
@RequestMapping(value = "/test")
public class RequestTest {
 /**
 * 不對請求方式限制
 * @return
 */
 @RequestMapping(value = "/req")
 public String req(){
 return "success";
 }
 /**
 * 限制請求方式為GET
 * @return
 */
 @RequestMapping(value = "/req1", method = RequestMethod.GET)
 public String req1(){
 return "success";
 }
 /**
 * 限制請求方式為POST
 * @return
 */
 @RequestMapping(value = "/req2", method = RequestMethod.POST)
 public String req2(){
 return "success";
 }
}

  對于method相信看到這里你一定已經知道他的用處了,是的指定訪問類型,沒有設置默認任何方式都可以訪問。不知道小伙伴是否想到如果在類的@RequestMapping設置過method那么類中的方法默認繼承,當然也可以在方法處單獨設定,優(yōu)先級的問題,小伙伴自己嘗試一下吧。

  下面我將給大家介紹一下如何在Controller中的訪問配置文件中的常量。首先我們在配置文件中添加:

?
1
2
3
name=hpugs
age=35
content=name:${name};age:${age}

  我們在配置文件中使用常量,通過${}來使用。

  下面我們在Controller中將參數(shù)注入: 

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
//注入配置文件中的參數(shù)
@Value("${name}")
private String name;
@Value("${age}")
private Integer age;
@Value("${content}")
private String content;
@RequestMapping(value = "/req3", method = RequestMethod.GET)
public String req3(){
return "name=" + name;
}
@RequestMapping(value = "/req4", method = RequestMethod.GET)
public String req4(){
return "age=" + age;
}
@RequestMapping(value = "/req5", method = RequestMethod.GET)
public String req5(){
return "content=" + content;
}

   啟動我們的項目訪問一下試試。

  這樣的使用如果你感覺還不過癮,這里再教大家一招:我們通過類映射配置文件,借助類來進行參數(shù)使用,相對單個參數(shù)注入要方便一些,首先創(chuàng)建一個Java類

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
@Component
@ConfigurationProperties(prefix = "userInfo")
public class UserInfo {
 private String names;
 private Integer age;
 private String content;
 public Integer getAge() {
 return age;
 }
 public String getNames() {
 return names;
 }
 public void setNames(String names) {
 this.names = names;
 }
 public void setAge(Integer age) {
 this.age = age;
 }
 public String getContent() {
 return content;
 }
 public void setContent(String content) {
 this.content = content;
 }
}

  然后在我們的配置文件中設置參數(shù):

?
1
2
3
userInfo.names=小破孩
userInfo.age=25
userInfo.content=name:${userInfo.names};age:${userInfo.age}

  接線來使我們的Controller:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
//注入對象
@Autowired
private UserInfo userInfo;
 
@RequestMapping(value = "/req6", method = RequestMethod.GET, produces="text/plain;charset=UTF-8")
public String req6(){
return "name=" + userInfo.getNames();
}
@RequestMapping(value = "/req7", method = RequestMethod.GET)
public String req7(){
return "age=" + userInfo.getAge();
}
@RequestMapping(value = "/req8", method = RequestMethod.GET)
public String req8(){
return "content=" + userInfo.getContent();
}

  好了重啟我們的項目訪問試試看。

  小伙伴們不知道遇到這個問題沒?出現(xiàn)了中文亂碼,首先大家先不要著急,我們先看另外一種springboot的配置文件:application.yml。這個配置文件通過換行空格來替換“;”,我們看一下同樣的配置在yml下面如何配置:

?
1
2
3
4
5
6
7
8
9
10
server:
 port: 8888
 context-path: /springboot1
name: hpugs
age: 35
content: name:${name};age:${age}
userInfo:
 names: 小破孩
 age: 25
 content: name:${userInfo.names};age:${userInfo.age}

  現(xiàn)在我們啟動項目運行試一試。

  回到上面的亂碼問題,當我們使用yml時是不是沒有出現(xiàn)亂碼,小伙伴是不是有點郁悶了,這是為什么呢?這是因為.properties文件使用的是unicode的編碼形式,所以當我們輸入中文時會出現(xiàn)亂碼。當然引亂碼的還有一種原因那就是我能的編碼設置和前端不一致,這個我們通過在配置文件中添加:

?
1
2
3
4
5
6
7
8
9
spring:
 http:
 encoding:
  force: true
  charset: UTF-8
 enabled: true
server:
 tomcat:
 uri-encoding: UTF-8

  來進行控制。這里再給大家介紹一下開發(fā)小技巧,springboot為我們提供了在不同開發(fā)環(huán)境下的不同配置文件解決方法:

?
1
2
3
4
5
6
#yml格式
spring:
 profiles:
 active: prod
#.properties格式
spring.profiles.active=dev

spring boot開發(fā)遇到坑之spring-boot-starter-web配置文件使用教程

總結

以上所述是小編給大家介紹的spring boot開發(fā)遇到坑之spring-boot-starter-web配置文件使用教程,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對服務器之家網(wǎng)站的支持!

原文鏈接:https://www.cnblogs.com/AndroidJotting/archive/2018/01/07/8232686.html

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 久久综合成人精品亚洲另类欧美 | 日韩一二区 | 日本福利网站 | 亚洲精品网址 | 一区二区三区不卡视频 | 欧美日韩精品在线 | 亚洲 欧美 精品 | 欧美精品在线一区 | 日本欧美在线 | 亚洲欧美另类久久久精品2019 | 中国黄色毛片 大片 | 国产一区二区精品在线 | 免费国产一区二区 | 午夜电影网站 | 国产欧美综合一区二区三区 | 欧美国产精品一区二区三区 | 黄久久久 | 精品一区二区在线观看 | 亚洲视频 中文字幕 | 日韩欧美一区二区三区免费观看 | 91亚洲视频| 日韩中文在线 | 成人午夜在线播放 | 亚洲欧美一区二区三区不卡 | 台湾一级特黄aa大片免费看 | 中文字幕一区二区三区四区五区 | 免费精品视频一区二区三区 | 国产婷婷精品av在线 | 中文字幕不卡一区 | 中文字幕亚洲欧美日韩在线不卡 | 一级黄色一级毛片 | 亚洲综合av在线播放 | 韩国毛片在线 | av在线中文 | 精品一二三区 | 一区久久| 日日骚网| 国产一区二区在线免费观看 | 欧美日韩午夜 | 亚洲一区二区三 | 性色av一区二区三区 |