日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

    歡迎訪問 生活随笔!

    生活随笔

    當前位置: 首頁 >

    spring-boot两小时入门笔记

    發布時間:2025/3/17 29 豆豆
    生活随笔 收集整理的這篇文章主要介紹了 spring-boot两小时入门笔记 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

    初始化好工程之后

    入門

    新建一個HelloController.java

    package com.example.girl1;import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController;@RestController public class HelloController {@RequestMapping(value = "/girl",method = RequestMethod.GET)public String say(){return "1111111";} }復制代碼

    在瀏覽器中輸入localhost:8080/girl 內容就是1111111

    啟動方式

    1. idea直接啟動

    2. mvn

    • mvn spring-boot:run

    3. 打包成jar包啟動

    • mvn install
    • cd target
    • java -jar jar包名

    項目屬性配置

    resource 目錄下 將application.xxx修改成application.yml

    server:port: 8080servlet:context-path: /first 復制代碼

    之后訪問就得 :http://localhost:8080/first/girl

    配置文件屬性的使用

    server:port: 8080 cupSize: A復制代碼

    HelloController.java中

    @RestController public class HelloController {// 通過注解把配置文件中的cupSize注入到變量中@Value("${cupSize}")private String cupSize;@RequestMapping(value = "/girl",method = RequestMethod.GET)public String say(){return cupSize;} } 復制代碼

    打開瀏覽器就能看到cupSize了

    屬性多的時候就加個前綴來區分

    新建一個類 GirlProperties.java

    package com.example.girl1;import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.stereotype.Component;// 獲取前綴是girl的配置 @Component @ConfigurationProperties(prefix = "girl") public class GirlProperties {private String cupSize;private Integer age;public Integer getAge() {return age;}public void setAge(Integer age) {this.age = age;}public String getCupSize() {return cupSize;}public void setCupSize(String cupSize) {this.cupSize = cupSize;} }復制代碼

    配置文件

    server:port: 8080 girl:cupSize: Aage: 18 復制代碼

    HelloController

    @RestController public class HelloController {@Autowiredprivate GirlProperties girlProperties;@RequestMapping(value = "/girl",method = RequestMethod.GET)public Integer say(){return girlProperties.getAge();} } 復制代碼

    這樣就能做到用前綴來區分,自己打開瀏覽器看看就明白了

    配置的開發環境和生產環境

    • application.yml
    // application.ymlspring:profiles:active: dev 復制代碼
    • application-dev.yml
    server:port: 8080 girl:cupSize: Bage: 18復制代碼
    • application-prod.yml
    server:port: 8081 girl:cupSize: Aage: 20復制代碼
    • 可以在idea中啟動開發環境,
    • 在mvn install 后生成的jar包啟動開發環境
    java -jar jar包名 --spring.profiles.active=prod 復制代碼

    Controller的使用

    • @Controller 處理http請求
    • @RestController Spring4之后新加的注解,原來返回json需要@RequestBody配合@Controller(RestController相當于這兩個的組合RequestBody和Controller)
    • @RequestMapping 配置url映射

    @RequestMapping

    // 如果想訪問兩個 @RequestMapping(value = {"/girl","/hello"},method = RequestMethod.GET) 復制代碼// 可以給類加,訪問就得 :localhost:8080/hello/girl了 @RestController @RequestMapping("/hello") public class HelloController {@Autowiredprivate GirlProperties girlProperties;@RequestMapping(value = {"/girl"},method = RequestMethod.GET)public Integer say(){return girlProperties.getAge();} } // RequestMethod方式有很多 可以使用postman來測試api 復制代碼

    處理url里面的參數

    • @PathVariable 獲取url里面的數據
    • @RequestParam 獲取請求參數的值
    • @GetMapping 組合注解

    @PathVariable

    @RestController public class HelloController {@Autowiredprivate GirlProperties girlProperties;@RequestMapping(value = {"/girl/{id}"},method = RequestMethod.GET)public Integer say(@PathVariable("id") Integer myId){return myId;} } // localhost:8080/girl/100 復制代碼

    @RequestParam

    //localhost:8080/girl?id=100 @RestController public class HelloController {@Autowiredprivate GirlProperties girlProperties;@RequestMapping(value = {"/girl"},method = RequestMethod.GET)public Integer say(@RequestParam("id") Integer myId){return myId;} } // 另一種寫法 @RestController public class HelloController {@Autowiredprivate GirlProperties girlProperties;@RequestMapping(value = {"/girl"},method = RequestMethod.GET)// 默認值和是否必須傳入public Integer say(@RequestParam(value = "id",required = false,defaultValue = "10") Integer myId){return myId;} } // RequestMapping 可以寫成GetMapping 復制代碼

    數據庫操作

    在pom.xml導入包

    // jpa和mysql的<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-jpa</artifactId></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId></dependency> 復制代碼

    結束后導入一下包

    配置文件的配置

    // 運行前先新建一個dbgirl的數據庫,utf8mb4 // application.yml spring:profiles:active: devdatasource:driver-class-name: com.mysql.jdbc.Driverurl: jdbc:mysql://127.0.0.1:3306/dbgirlusername: rootpassword: 123456jpa:hibernate:ddl-auto: update // create會把之前的表刪掉在新建一個show-sql: true 復制代碼

    新建一個Girl類

    package com.example.girl1;import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; // 這個注解表示這個類就是對應數據庫中的表 @Entity public class Girl {@Id@GeneratedValueprivate Integer id;private String cupSize;private Integer age;public Girl() {}public Integer getAge() {return age;}public void setAge(Integer age) {this.age = age;}public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getCupSize() {return cupSize;}public void setCupSize(String cupSize) {this.cupSize = cupSize;} } // 之后表中的那些字段就是girl類中對應過去的 復制代碼

    接口編寫

    get /girls 獲取女生列表post /girls 創建一個女生get /girls/id 通過id查詢一個女生put /girls/id 通過id更新一個女生delete /girls/id 通過id刪除一個女生 復制代碼

    獲取女生列表

    新建一個GirlRepository.java的接口

    package com.example.girl1;import org.springframework.data.jpa.repository.JpaRepository;// Girl類名,Integer是id的類型 public interface GirlRepository extends JpaRepository<Girl,Integer> {}復制代碼

    新建GirlController.java

    package com.example.girl1;import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController;import java.util.List; @RestController public class GirlController {@Autowiredprivate GirlRepository girlRepository;/** 查詢女生列表* */@GetMapping(value = "/girls")public List<Girl> girlList(){return girlRepository.findAll();} } // 使用postman測試 復制代碼

    創建一個女生

    /** 新增一個女生* */@PostMapping(value = "/girls")public Girl girlAdd(@RequestParam("cupSize") String cupSize,@RequestParam("age") Integer age){Girl girl = new Girl();girl.setCupSize(cupSize);girl.setAge(age);return girlRepository.save(girl);} 復制代碼

    通過id查詢一個女生

    // 查詢一個女生@GetMapping(value = "/girls/{id}")public Girl girlFindOne(@PathVariable("id") Integer id){return girlRepository.findById(id).orElse(null);} 復制代碼

    通過id更新一個女生

    // 更新@PutMapping(value = "/girls/{id}")public Girl girlUpdate(@PathVariable("id") Integer id,@RequestParam("cupSize") String cupSize,@RequestParam("age") Integer age){Girl girl = new Girl();girl.setId(id);girl.setCupSize(cupSize);girl.setAge(age);return girlRepository.save(girl);} 復制代碼

    通過id刪除一個女生

    // 刪除@DeleteMapping(value = "/girls/{id}")public void girlDelete(@PathVariable("id") Integer id){girlRepository.deleteById(id);} 復制代碼

    通過年齡查詢女生列表

    // 通過年齡查詢女生列表@GetMapping(value = "/girls/age/{age}")public List<Girl> girlListByAge(@PathVariable("age") Integer age){return girlRepository.findByAge(age);} 復制代碼

    GirlRepository.java中

    package com.first.first;import org.springframework.data.jpa.repository.JpaRepository;import java.util.List;public interface GirlRepository extends JpaRepository<Girl,Integer> {// 通過年齡查詢public List<Girl> findByAge(Integer age); }復制代碼

    事務管理

    需求是如果我有兩條數據,一條插入失敗的話另一條就不能插入,這時候需要加一個事務

    GirlService.java

    package com.example.girl1;import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional;@Service public class GirlService {@Autowiredprivate GirlRepository girlRepository;@Transactionalpublic void insertTwo(){Girl girlA= new Girl();girlA.setAge(10);girlA.setCupSize("B");girlRepository.save(girlA);Girl girlB= new Girl();girlA.setAge(11);girlA.setCupSize("F");girlRepository.save(girlB);} }// 在Girlcontroller里新增@Autowiredprivate GirlService girlService;@PostMapping(value = "/girls/two")public void girlTwo(){girlService.insertTwo();}復制代碼

    總結

    以上是生活随笔為你收集整理的spring-boot两小时入门笔记的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。