<kbd id="9plqc"><label id="9plqc"></label></kbd>

        <th id="9plqc"></th>
        1. <center id="9plqc"><video id="9plqc"></video></center>
          <sub id="9plqc"><form id="9plqc"><pre id="9plqc"></pre></form></sub>
          <nav id="9plqc"><form id="9plqc"><legend id="9plqc"></legend></form></nav>
          Spring Boot @RestController 您所在的位置:網(wǎng)站首頁 屬馬女配屬猴男婚姻合不合適呢 Spring Boot @RestController

          Spring Boot @RestController

          2024-03-25 04:40| 來源: 網(wǎng)絡(luò)整理| 查看: 265

          Spring Boot @RestController 教程展示了如何在 Spring 應(yīng)用中使用@RestController注解來構(gòu)建 Restful 控制器。

          Spring 是流行的 Java 應(yīng)用框架,而 Spring Boot 是 Spring 的演進(jìn),可以幫助輕松地創(chuàng)建獨(dú)立的,生產(chǎn)級(jí)的基于 Spring 的應(yīng)用。

          Spring MVC

          Spring MVC 是基于 Servlet API 構(gòu)建的主要 Web 框架。 它基于流行的 MVC 設(shè)計(jì)模式。 MVC(模型-視圖-控制器)是一種軟件體系結(jié)構(gòu)模式,它將應(yīng)用分為三個(gè)區(qū)域:模型,視圖和控制器。 該模型表示一個(gè)攜帶數(shù)據(jù)的 Java 對(duì)象。 該視圖表示模型包含的數(shù)據(jù)的可視化。 控制器控制數(shù)據(jù)流到模型對(duì)象中,并在數(shù)據(jù)更改時(shí)更新視圖。 它將視圖和模型分開。

          Spring Framework 5.0 引入了一個(gè)名為 Spring WebFlux 的并行 Reactor棧 Web 框架。

          @RestController

          @RestController是用于創(chuàng)建 Restful 控制器的便捷注解。 它是@Component的特長(zhǎng),可通過類路徑掃描自動(dòng)檢測(cè)。 它添加了@Controller和@ResponseBody注解。 它將響應(yīng)轉(zhuǎn)換為 JSON 或 XML。 它不適用于視圖技術(shù),因此方法無法返回ModelAndView。 它通常與基于@RequestMapping注解的注解處理程序方法結(jié)合使用。

          @Controller注解與視圖技術(shù)一起使用。

          RESTFul 應(yīng)用

          RESTFul 應(yīng)用遵循 REST 體系結(jié)構(gòu)樣式,該樣式用于設(shè)計(jì)網(wǎng)絡(luò)應(yīng)用。 RESTful 應(yīng)用生成對(duì)資源執(zhí)行 CRUD(創(chuàng)建/讀取/更新/刪除)作的 HTTP 請(qǐng)求。 RESTFul 應(yīng)用通常以 JSON 或 XML 格式返回?cái)?shù)據(jù)。

          Spring Boot @RestController示例

          在以下應(yīng)用中,我們演示@RestController的用法。 該應(yīng)用返回城市列表作為 JSON 數(shù)據(jù)。

          pom.xml src ├───main │ ├───java │ │ └───com │ │ └───zetcode │ │ │ Application.java │ │ ├───controller │ │ │ MyController.java │ │ ├───model │ │ │ City.java │ │ └───service │ │ CityService.java │ │ ICityService.java │ └───resources │ └───static │ index.html └───test └───java

          這是項(xiàng)目結(jié)構(gòu)。

          pom.xml

          4.0.0 com.zetcode springbootrestcontrollerex 1.0-SNAPSHOT jar UTF-8 11 11 org.springframework.boot spring-boot-starter-parent 2.1.1.RELEASE org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-maven-plugin

          這是 Maven pom.xml文件。 spring-boot-starter-parent是父 POM,它為使用 Maven 構(gòu)建的應(yīng)用提供依賴關(guān)系和插件管理。 spring-boot-starter-web是使用 Spring MVC 構(gòu)建 Web(包括 RESTful)應(yīng)用的入門工具。 它使用 Tomcat 作為默認(rèn)的嵌入式容器。 spring-boot-maven-plugin將 Spring 應(yīng)用打包到可執(zhí)行的 JAR 或 WAR 歸檔文件中。

          com/zetcode/model/City.java

          package com.zetcode.model; import java.util.Objects; public class City { private Long id; private String name; private int population; public City() { } public City(Long id, String name, int population) { this.id = id; this.name = name; this.population = population; } public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getPopulation() { return population; } public void setPopulation(int population) { this.population = population; } @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; City city = (City) o; return population == city.population && Objects.equals(id, city.id) && Objects.equals(name, city.name); } @Override public int hashCode() { return Objects.hash(id, name, population); } @Override public String toString() { final StringBuilder sb = new StringBuilder("City{"); sb.append("id=").append(id); sb.append(", name='").append(name).append('\''); sb.append(", population=").append(population); sb.append('}'); return sb.toString(); } }

          這是一個(gè)City bean。 它具有id,name和population屬性。

          com/zetcode/controller/MyController.java

          package com.zetcode.controller; import com.zetcode.model.City; import com.zetcode.service.ICityService; 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 MyController { @Autowired private ICityService cityService; @GetMapping(value = "/cities") public List getCities() { List cities = cityService.findAll(); return cities; } }

          這是MyController。 它以 JSON 格式返回城市列表。

          @RestController public class MyController {

          MyController帶有@RestController注解。

          @Autowired private ICityService cityService;

          我們用@Autowired注解注入CityService。

          @GetMapping(value = "/cities") public List getCities() {

          getCities()方法映射到getCities URL 模式; 它返回城市列表,并通過消息轉(zhuǎn)換器將其轉(zhuǎn)換為 JSON。

          com/zetcode/service/ICityService.java

          package com.zetcode.service; import com.zetcode.bean.City; import java.util.List; public interface ICityService { public List findAll(); }

          ICityService包含findAll()合約方法。

          com/zetcode/service/CityService.java

          package com.zetcode.service; import com.zetcode.model.City; import java.util.ArrayList; import java.util.List; import org.springframework.stereotype.Service; @Service public class CityService implements ICityService { @Override public List findAll() { var cities = new ArrayList(); cities.add(new City(1L, "Bratislava", 432000)); cities.add(new City(2L, "Budapest", 1759000)); cities.add(new City(3L, "Prague", 1280000)); cities.add(new City(4L, "Warsaw", 1748000)); cities.add(new City(5L, "Los Angeles", 3971000)); cities.add(new City(6L, "New York", 8550000)); cities.add(new City(7L, "Edinburgh", 464000)); cities.add(new City(8L, "Berlin", 3671000)); return cities; } }

          CityService包含findAll()方法的實(shí)現(xiàn)。

          resources/static/index.html

          Home page

          Get all cities

          這是主頁。 它包含一個(gè)獲取所有城市的鏈接。

          com/zetcode/Application.java

          package com.zetcode; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } }

          Application是設(shè)置 Spring Boot 應(yīng)用的入口。 @SpringBootApplication注解啟用自動(dòng)配置和組件掃描。 在掃描過程中,將查找@RestController注解,并從MyController類創(chuàng)建一個(gè) Spring bean。

          $ mvn spring-boot:run

          應(yīng)用運(yùn)行后,我們可以導(dǎo)航到 localhost:8080。

          在本教程中,我們展示了如何在 Spring 應(yīng)用中使用@RestController注解。



          【本文地址】

          公司簡(jiǎn)介

          聯(lián)系我們

          今日新聞

          推薦新聞

          專題文章
            CopyRight 2018-2019 實(shí)驗(yàn)室設(shè)備網(wǎng) 版權(quán)所有
            黄色免费网站在线看,韩国精品在线观看,韩国美女一区二区,99国产热 滨州市| 西城区| 修水县| 得荣县| 罗江县| 如东县| 台中县| 阳曲县| 枣阳市| 专栏| 重庆市| 娄烦县| 仙居县| 惠来县| 泾阳县| 弥渡县| 壶关县| 兴化市| 唐河县| 蚌埠市| 临海市| 永嘉县| 乌拉特中旗| 应用必备| 丹东市| 禄劝| 安岳县| 安阳市| 葵青区| 南阳市| 格尔木市| 綦江县| 普陀区| 体育| 河南省| 堆龙德庆县| 明溪县| 临桂县| 同仁县| 玉环县| 通辽市| http://444 http://444 http://444 http://444 http://444 http://444