日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

spring boot基础教程:入门程序Hello World的编写

發(fā)布時(shí)間:2024/9/30 编程问答 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 spring boot基础教程:入门程序Hello World的编写 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

前言

隨著各種開(kāi)源的第三方的組件爆發(fā)式增長(zhǎng),java的開(kāi)發(fā)顯得越來(lái)越笨重:繁多的配置,低下的開(kāi)發(fā)效率,復(fù)雜的部署流程以及第三方技術(shù)集成難度大。

在上述環(huán)境下,Spring Boot應(yīng)運(yùn)而生。它使用"習(xí)慣優(yōu)于配置"(項(xiàng)目中存在大量的配置,此外還內(nèi)置一個(gè)習(xí)慣性的配置,讓你無(wú)需手動(dòng)進(jìn)行配置) 的理念讓你的項(xiàng)目快速運(yùn)行起來(lái)。使用Spring boot很容易創(chuàng)建一個(gè)獨(dú)立運(yùn)行(運(yùn)行jar,內(nèi)置servlet容器)、準(zhǔn)生產(chǎn)級(jí)別的基于Spring框架的項(xiàng)目,使用spring boot你可以不用或者很少的spring配置。

spring boot的優(yōu)缺點(diǎn)
優(yōu)點(diǎn):

  • 快速構(gòu)建項(xiàng)目

  • 對(duì)主流開(kāi)發(fā)框架的無(wú)配置集成

  • 項(xiàng)目可獨(dú)立運(yùn)行,無(wú)須依賴外部servlet容器

  • 提供運(yùn)行時(shí)的應(yīng)用監(jiān)控

  • 極大的提高了開(kāi)發(fā)部署效率

  • 與云計(jì)算的天然集成

  • 缺點(diǎn):

  • 書(shū)籍文檔較少且不夠深入

  • 由于大部分配置在類(lèi)里面完成的,所以損失了一定的可維護(hù)的便利性

  • 所以spring boot特別適合中小型項(xiàng)目。

    Hello World程序開(kāi)發(fā)

    1. 設(shè)置spring boot的parent

    <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>1.5.2.RELEASE</version> </parent>

    說(shuō)明:Spring boot的項(xiàng)目必須要將parent設(shè)置為spring boot的parent,該parent包含了大量默認(rèn)的配置,大大簡(jiǎn)化了我們的開(kāi)發(fā)。
    而且引入以后在申明其它dependency的時(shí)候就不需要version了,后面可以看到。

    2. 導(dǎo)入spring boot的web支持

    <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId> </dependency>

    3. 添加spring boot的maven插件

    <plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId> </plugin>

    當(dāng)然,如果你不想用maven命令運(yùn)行,也可以不用配置該插件

    pom文件完整版

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.wx</groupId><artifactId>springboot01</artifactId><version>0.0.1-SNAPSHOT</version><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>1.5.2.RELEASE</version></parent><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency></dependencies><build><finalName>${project.artifactId}</finalName><plugins><!-- java編譯插件 --><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><configuration><source>1.7</source><target>1.7</target><encoding>UTF-8</encoding></configuration></plugin><!-- 如果你不想用maven命令運(yùn)行spring boot可以不用作此配置 --><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>

    4. 編寫(xiě)Hello World程序

    package com.wx.controlers;import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.annotation.Configuration; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody;@Controller @SpringBootApplication //@Configuration //因?yàn)?#64;SpringBootApplication包含了Configuration,所以這里可以省略 public class HelloApp {@RequestMapping("hello")@ResponseBodypublic String hello(){return "Hello";}public static void main(String[] args) {SpringApplication.run(HelloApp.class, args);}}

    代碼說(shuō)明:
    (1)@SpringBootApplication:Spring Boot項(xiàng)目的核心注解,主要目的是開(kāi)啟自動(dòng)配置。
    (2)@Configuration:這是一個(gè)配置Spring的配置類(lèi)。
    (3)@Controller:標(biāo)明這是一個(gè)SpringMVC的Controller控制器。

    (4)@ResponseBody: 如果需要返回JSON,XML或自定義mediaType內(nèi)容到頁(yè)面,則需要在對(duì)應(yīng)的方法上加上@ResponseBody注解
    (5)main方法:在main方法中啟動(dòng)一個(gè)應(yīng)用,即:這個(gè)應(yīng)用的入口。
    當(dāng)然,我們也可以用restfull風(fēng)格的注解(@restcontroller)來(lái)標(biāo)注,如下代碼:

    package com.wx.controlers;import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.annotation.Configuration; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController;@RestController @SpringBootApplication //@Configuration //因?yàn)?#64;SpringBootApplication包含了Configuration,所以這里可以省略 public class HelloApp {@RequestMapping("hello")//@ResponseBodypublic String hello(){return "Hello";}public static void main(String[] args) {SpringApplication.run(HelloApp.class, args);}}

    官方文檔:
    @RestController is a stereotype annotation that combines @ResponseBody and @Controller.
    意思是:
    @RestController注解相當(dāng)于@ResponseBody + @Controller合在一起的作用。
    如果只是使用@RestController注解Controller,則Controller中的方法無(wú)法返回jsp頁(yè)面,配置的視圖解析器InternalResourceViewResolver不起作用,返回的內(nèi)容就是Return 里的內(nèi)容。

    5. 啟動(dòng)應(yīng)用

    在Spring Boot項(xiàng)目中,啟動(dòng)的方式有兩種,一種是直接run Java Application另外一種是通過(guò)Spring Boot的Maven插件運(yùn)行。

    第一種:

    第二種:

    在項(xiàng)目上單擊右鍵===》Run as===> Maven build…

    看到如下信息,說(shuō)明啟動(dòng)成功了

    [ main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 8080 (http)
    [ main] com.wx.controlers.HelloApp : Started HelloApp in 3.126 seconds (JVM running for 42.425)

    啟動(dòng)瀏覽器運(yùn)行

    6 spring boot的核心

    (1) 入口類(lèi)和@SpringBootApplication

    Spring Boot的項(xiàng)目一般都會(huì)有*Application的入口類(lèi),入口類(lèi)中會(huì)有main方法,
    這是一個(gè)標(biāo)準(zhǔn)的Java應(yīng)用程序的入口方法。
    @SpringBootApplication注解是Spring Boot的核心注解,它其實(shí)是一個(gè)組合注解:

    該注解主要組合了以下注解:
    1.@SpringBootConfiguration:這是Spring Boot項(xiàng)目的配置注解,這也是一個(gè)組合注解:

    在Spring Boot項(xiàng)目中推薦使用@ SpringBootConfiguration替代@Configuration,所以HelloApp入口類(lèi)上的Configuration注解可以注釋掉

    2.@EnableAutoConfiguration:啟用自動(dòng)配置,該注解會(huì)使Spring Boot根據(jù)項(xiàng)目中依賴的jar包自動(dòng)配置項(xiàng)目的配置項(xiàng):
    a)如:我們添加了spring-boot-starter-web的依賴,項(xiàng)目中也就會(huì)引入SpringMVC的依賴,Spring Boot就會(huì)自動(dòng)配置tomcat和SpringMVC

    3.@ComponentScan:默認(rèn)掃描@SpringBootApplication所在類(lèi)的同級(jí)目錄以及它的子目錄。

    如果我們?cè)趩?dòng)類(lèi)上又配置了@ComponentScan, 那么該默認(rèn)的掃描失效,當(dāng)前包也要重新納入掃描!

    (2) 關(guān)閉自動(dòng)配置

    通過(guò)上述,我們得知,Spring Boot會(huì)根據(jù)項(xiàng)目中的jar包依賴,自動(dòng)做出配置,Spring Boot支持的自動(dòng)配置如下(非常多):

    如果我們不需要Spring Boot自動(dòng)配置,想關(guān)閉某一項(xiàng)的自動(dòng)配置,該如何設(shè)置呢?
    比如:我們不想自動(dòng)配置Redis,想手動(dòng)配置。
    當(dāng)然了,其他的配置就類(lèi)似了。

    7 解決jsp頁(yè)面的支持問(wèn)題

    由于Spring boot使用的內(nèi)嵌的tomcat,而內(nèi)嵌的tamcat是不支持jsp頁(yè)面的,所有需要導(dǎo)入額外的包才能解決。

    org.apache.tomcat.embed tomcat-embed-jasper provided 修改啟動(dòng)類(lèi)

    package com.wx.controlers;

    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.ResponseBody;
    import org.springframework.web.bind.annotation.RestController;

    @Controller
    @SpringBootApplication
    //@Configuration //因?yàn)?#64;SpringBootApplication包含了Configuration,所以這里可以省略
    public class HelloApp {

    @RequestMapping("hello") //@ResponseBody public String hello(){return "Hello"; }public static void main(String[] args) {SpringApplication.run(HelloApp.class, args); }

    }
    寫(xiě)一個(gè)Hello.jsp的頁(yè)面放到webapp目錄下:

    編寫(xiě)全局配置文件application.properties,如圖所示

    關(guān)于全局配置文件,以后再講解!

    重新運(yùn)行,結(jié)果如圖

    總結(jié)

    以上是生活随笔為你收集整理的spring boot基础教程:入门程序Hello World的编写的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。