起步:SpringBoot

来源:https://www.cnblogs.com/crazy-lc/archive/2019/11/04/11795726.html
-Advertisement-
Play Games

pom.xml 華為雲鏡像: -基本web開發 2.安裝Lombok插件:plugins >lombok 3.實體類中 4.Controller: 請求參數兩種類型: @RequestParam 獲取查詢參數。即url?name=value 這種形式 @PathVariable 獲取路徑參數。即ur ...


pom.xml

1 <parent>
2         <groupId>org.springframework.boot</groupId>
3         <artifactId>spring-boot-starter-parent</artifactId>
4         <version>2.2.0.RELEASE</version>
5         <relativePath/> <!-- lookup parent from repository -->
6 </parent>
maven依賴:
1
<dependency> 2 <groupId>org.springframework.boot</groupId> 3 <artifactId>spring-boot-starter-web</artifactId> 4 </dependency> 5 6 <dependency> 7 <groupId>org.springframework.boot</groupId> 8 <artifactId>spring-boot-starter-test</artifactId> 9 <scope>test</scope> 10 <exclusions> 11 <exclusion> 12 <groupId>org.junit.vintage</groupId> 13 <artifactId>junit-vintage-engine</artifactId> 14 </exclusion> 15 </exclusions> 16 </dependency>

 



華為雲鏡像:

1 <mirror>
2     <id>huaweicloud</id>
3     <mirrorOf>*</mirrorOf>
4     <url>https://mirrors.huaweicloud.com/repository/maven/</url>
5 </mirror>

 

-基本web開發

1、導入依賴庫
lombok的使用:
<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.6</version> </dependency>

2.安裝Lombok插件:plugins---->lombok

3.實體類中

@Data //get set tostring
@AllArgsConstructor //所有參數構造方法
@NoArgsConstructor  //空參構造方法
public class Car {
  private Integer id;
  private String name;
  private Float price;
//  @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")               傳入參數       
  @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")   傳出參數 
  private Date createDate;
}

4.Controller:

請求參數兩種類型:

  @RequestParam   獲取查詢參數。即url?name=value   這種形式

  @PathVariable   獲取路徑參數。即url/{id}        這種形式

@RestController             //相當於@Controller+@ResponseBody 類中所有方法都返回json數據
@RequestMapping("/car")
public class CarController {

    @RequestMapping("/demo")
    public String demo(){
        return "demo.html";
    }

-靜態資源訪問

1)、預設靜態資源映射

Spring Boot 對靜態資源映射提供了預設配置

Spring Boot 預設將 /** 所有訪問映射到以下目錄:

classpath:/static

classpath:/public

classpath:/resources

classpath:/META-INF/resources

2)、自定義靜態資源訪問

將靜態資源路徑設置到磁碟的基本個目錄,上傳文件時上傳到磁碟中

方式1.使用配置類實現WebMvcConfigurer介面,重寫addResourceHandlers(ResourceHandlerRegistry registry

 1 @Configurable
 2 public class WebMvcConfig implements WebMvcConfigurer{
 3     @Override
 4     public void addResourceHandlers(ResourceHandlerRegistry registry) {
 5         //配置映射關係
 6        //訪問/images,則映射到d:\a\下 7         registry.addResourceHandler("/images/**").addResourceLocations("file:D:\\a\\");
 8 
11     }
12 }

在瀏覽器輸入:http://localhost:8080/images/1.jpg即可訪問。

方式2.配置application.properties

 

1 web.upload-path=D:/springboot/pic/
2 spring.mvc.static-path-pattern=/**
3 spring.resources.static-locations=classpath:/META-INF/resources/,classpath:/resources/,\
4 classpath:/static/,classpath:/public/,file:${web.upload-path}

web.upload-path:這個屬於自定義的屬性,指定了一個路徑,註意要以/結尾;

spring.mvc.static-path-pattern=/**:表示所有的訪問都經過靜態資源路徑;

spring.resources.static-locations:在這裡配置靜態資源路徑,前面說了這裡的配置是覆蓋預設配置,

所以需要將預設的也加上否則staticpublic等這些路徑將不能被當作靜態資源路徑,

在這個最末尾的file:${web.upload-path}之所有要加file:是因為指定的是一個具體的硬碟路徑,其他的使用classpath指的是系統環境變數。

--WebJars

推薦使用Webjars的三大理由:

  • 將靜態資源版本化,更利於升級和維護。
  • 剝離靜態資源,提高編譯速度和打包效率。
  • 實現資源共用,有利於統一前端開發。

使用步驟:

1.引入依賴:

 1        <dependency><!--Webjars版本定位工具(前端)-->
 2                 <groupId>org.webjars</groupId>
 3                 <artifactId>webjars-locator-core</artifactId>
 4             </dependency>
 5 
 6             <dependency><!--Jquery組件(前端)-->
 7                 <groupId>org.webjars</groupId>
 8                 <artifactId>jquery</artifactId>
 9                 <version>3.3.1</version>
10             </dependency>

2.訪問靜態資源

快速訪問:http://localhost:8080/webjars/jquery/jquery.js (推薦)除去版本路徑也可以訪問得到

快速訪問:http://localhost:8080/webjars/jquery/3.3.1/jquery.js

 

--SpringBoot屬性配置

 

1.預設屬性配置文件application.properties(可以修改尾碼為.yml)

application.yml
server: port:
8888 servlet: context-path: /javaok

訪問http://localhost:8888/javaok即可

2.自定義屬性及讀取

application.yml文件中,配置一些常量或者其他參數配置。讀取的時候通過Spring@Value(${屬性名})註解即可

 

application.yml
server:
  port: 8888
  servlet:
    context-path: /javaok
server_ip: 192.168.10.9999999999

 

@RestController
public class HelloController {

    @Value("${server_ip}")            //獲取到自定義參數值server_ip
    private String server_ip;

    @GetMapping("/getMapping")
    public String getMapping(){
        return server_ip;
    }
}

3.實體類屬性賦值

當屬性參數變多的時候,我們習慣創建一個實體,用實體來統一接收賦值這些屬性。

application.yml

user:
  name: www
  password: 8888888
  birthday: 1992.10.28
  mobile: 1234567890
  address: beijing
實體類:在實體類上增加註解@ConfigurationProperties,並指定prrfix首碼
@ConfigurationProperties(prefix
= "user") @Data @NoArgsConstructor @AllArgsConstructor public class User { private String name; private String password; private String birthday; private String mobile; private String address; }
Controller層:

EnableConfigurationProperties註解需要加在調用類上,或者加在啟動類SpringbootSimpleApplication上也可以。


@RestController @EnableConfigurationProperties({User.
class,TestUser.class}) //多個實體類載入 public class UserController { @Autowired
User user;

@Autowired
TestUser testUser;

@GetMapping("/testUser")
public String test(){
return testUser.toString();
}

@GetMapping("/getUser")
public String getUser(){
return user.toString();
}

4.自定義配置文件

 

創建文件test.properties

testuser.name = "mike"
testuser.password = "123"
testuser.birthday = "1978.10.28"
實體類:

pring boot 1.5版本後@PropertySource註解就不能載入自定義的yml配置文件了

1.5版本後需要通過@PropertySource(classpath:test.properties)指定配置文件

 

@Configuration 註解包含@Component註解


@Configuration
@PropertySource("classpath:test.properties")
@ConfigurationProperties(prefix = "testuser")
@Data
@NoArgsConstructor
@AllArgsConstructor
public class TestUser {
    private String name;
    private String password;
    private String birthday;

}

5.多環境配置文件

  可以使用多個yml來配置屬性,將於環境無關的屬性放置到application.yml文件裡面;通過與配置文件相同的命名規範,創建application-{profile}.yml文件 存放不同環境特有的配置,例如 application-test.yml 存放測試環境特有的配置屬性,application-prod.yml 存放生產環境特有的配置屬性。

  通過這種形式來配置多個環境的屬性文件,在application.yml文件裡面spring.profiles.active=xxx來指定載入不同環境的配置,如果不指定,則預設只使用application.yml屬性文件,不會載入其他的profiles的配置。

  

application.yml

spring:
   profiles:
    active: prod                //將調用application-prod.yml
application-test.yml

server:
  port: 8081
  servlet:
    context-path: /javaok1


application-prod.yml

server:
  port: 8082
  servlet:
    context-path: /javaok2
application-dev.yml

server:
  port: 8083
  servlet:
    context-path: /javaok3

--SpringBoot構建RESTful API

 

 1  Controller層:  
2 private List<User> listUser= Collections.synchronizedList(new ArrayList<User>()); 3 4 //查詢所有 5 @GetMapping("/") 6 public List<User> getAllUser(){ 7 return listUser; 8 } 9 //獲取指定id的user 10 @GetMapping("/{id}") 11 public User getUser(@PathVariable("id") Long id){ 12 for(User u:listUser){ 13 if(u.getId()==id){ 14 return user; 15 } 16 } 17 return null; 18 } 19 //插入 20 @PostMapping("/") 21 public String insert(User user){ 22 listUser.add(user); 23 return "success"; 24 } 25 //根據id修改 26 @PutMapping("/{id}") 27 public String update(@PathVariable("id") Long id,User user){ 28 for (User user2 : listUser) { 29 if(user2.getId()==id) { 30 user2.setName(user.getName()); 31 user2.setAge(user.getAge()); 32 } 33 } 34 return "success"; 35 } 36 //根據id刪除 37 @DeleteMapping("/{id}") 38 public String delete(@PathVariable("id") Long id){ 39 listUser.remove(getUser(id)); 40 return "success"; 41 }

 

 

 

 

 

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • Array.prototype.concat.call(array1, array2, array3, ...) ...
  • <template> <div :class="className"> <div :id="id" class="spiritChartBox"></div> </div> </template> <script> import { mapState } from "vuex"; import ec... ...
  • JS使用方法 模態窗提供了四個事件: 1.show.bs.modal在顯示之前觸發 2.shown.bs.modal在顯示之後觸發 3.hide.bs.modal在隱藏之前觸發 4.hidden.bs.modal在隱藏之後觸發 ...
  • jQuery的DOM遍歷模塊對DOM模型的原生屬性parentNode、childNodes、firstChild、lastChild、previousSibling、nextSibling進行了封裝和擴展,用於在DOM樹中遍歷父元素、子元素和兄弟元素。 可以通過jQuery的實例來訪問,方法如下: ...
  • "洛谷題目頁面傳送門" & "CodeForces題目頁面傳送門" 定義一個$1\sim n$的排列$a$的平方$a^2=b$,當且僅當$\forall i\in[1,n],b_i=a_{a_i}$,即$a^2$為將$a$在$[1,2,\cdots,n]$上映射$2$次所得的排列。現在給定一個$1\ ...
  • 2019-11-04-23:03:13 目錄: 1.常用的數據結構 2.棧 3.隊列 4.數組 5.鏈表 6.紅黑樹 常用的數據結構: 包含:棧、隊列、數組、鏈表和紅黑樹 棧: 棧:stack,又稱堆棧,它是運算受限的線性表,其限制是僅允許在標的一端進行插入和刪除操作,不允許在其 他任何位置進行添加 ...
  • 進程:通俗理解一個運行的程式或者軟體,進程是操作系統資源分配的基本單位 1.1、導入進程模塊 import multiprocessing 1.2、Process進程類的語法結構如下: Process([group[, target[, name[,args[,kwargs]]]]]) group: ...
  • 本文經授權轉自公眾號:石杉的架構筆記 一、問題起源 二、Eureka Server設計精妙的註冊表存儲結構 三、Eureka Server端優秀的多級緩存機制 四、總結 一、問題起源 Spring Cloud架構體系中,Eureka是一個至關重要的組件,它扮演著微服務註冊中心的角色,所有的服務註冊與 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...