• <big id="iig5e"><em id="iig5e"></em></big>

  • <big id="iig5e"><em id="iig5e"></em></big>
    <th id="iig5e"><option id="iig5e"></option></th>
    <th id="iig5e"><option id="iig5e"></option></th>
    <th id="iig5e"><video id="iig5e"></video></th>

  • 景安微信
    右側QQ聯系不上,可以加我微信
    您好,歡迎來到景安網絡!
    加盟景安
    主頁 >服務器教程 >spring boot 入門到精通該這樣學

    spring boot 入門到精通該這樣學


    來源:景安網絡發表日期:2018-07-27瀏覽次數:Tags:spring boot 入門
    景安網絡專業的數據中心服務商,長期提供數據中心托管服務,私有云,互聯網解決方案,互聯網增值服務。針對工信委大力實施“萬企業上云”計劃,景安以我所能,為你而+,推出上云特惠,核心云計算產品降幅達50%!!也歡迎來聊右側qq
    網上有很多springboot的入門教程,自己也因為項目要使用springboot,所以利用業余時間自學了下springboot和springcloud,使用下來發現springboot還是挺簡單的,體現了極簡的編程風格,大部分通用都是通過注解就可以完成,下面就跟大家聊聊我是如何學習springboot,并用來開發一個簡單的restful api網關功能,restful api可以提供給H5或者android、ios進行接口開發,還是很方便的。
     
    spring boot 入門
     
    1. 使用spring initialization創建SpringBoot項目
     
    有很多方法可以快速創建Springboot項目,可以通過idea的springboot initialization來創建,也可以通過手工新建一個maven工程,然后引入springboot的dependency來完成sprignboot的工程導入,還可以通過spring官網的來創建springboot項目,因為有些同學可能沒裝idea,這里就通過官網的工程初始化指引來創建一個springboot空工程。
    首先輸入網址 https://start.spring.io,打開后可以看到下圖:
    spring boot 入門
    在serch for dependency輸入web,即可完成基本的restful接口網關的功能,如果要JPA或者oauth安全相關的組件,可以增加rest repository、spring security等相關組件依賴庫,spring提供的配套組件還是很多的,基本涵蓋了所有應用場合。
    加入web組件后,點擊下方的綠色按鈕Generate Project即可創建一個springboot工程,并且自動下載到本地,接下來直接在idea或者eclipse打開該工程就可以了,在創建的時候可以選擇Maven工程或者Gradle工程,這里我們使用了大家比較熟悉的Maven工程。
     
    2. 工程結構
    spring boot 入門
    下面我們在ide中打開工程,這里使用的ide是idea,工程的目錄結構為:
     
    可以看到工程中有maven的pom文件,也自動創建了SpringbootStartApplication.java該類為springboot的啟動類,待會兒我們一起看下這個類,先看下maven的pom文件有哪些。這里主要是依賴了springboot的1.4.7版本,目前最新已經更新到1.5.6了,這里沒有用最新版本,還是不當小白鼠了,在dependency中依賴了spring-boot-starter-web還有個test測試的組件,如果不寫測試代碼,可以不使用該test組件,最后還加入了支持springboot的maven plugin組件。
     
        <parent>
     
            <groupId>org.springframework.boot</groupId>
     
            <artifactId>spring-boot-starter-parent</artifactId>
     
            <version>1.4.7.RELEASE</version>
     
            <relativePath/> <!-- lookup parent from repository -->
     
        </parent>
     
     
     
        <properties>
     
            <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
     
            <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
     
            <java.version>1.8</java.version>
     
        </properties>
     
     
     
        <dependencies>
     
            <dependency>
     
                <groupId>org.springframework.boot</groupId>
     
                <artifactId>spring-boot-starter-web</artifactId>
     
            </dependency>
     
     
     
            <dependency>
     
                <groupId>org.springframework.boot</groupId>
     
                <artifactId>spring-boot-starter-test</artifactId>
     
                <scope>test</scope>
     
            </dependency>
     
        </dependencies>
     
     
     
        <build>
     
            <plugins>
     
                <plugin>
     
                    <groupId>org.springframework.boot</groupId>
     
                    <artifactId>spring-boot-maven-plugin</artifactId>
     
                </plugin>
     
            </plugins>
     
        </build>
    剛看完了pom文件,在導入工程的時候,ide一般會自動導入依賴庫,在國內訪問maven的依賴庫速度感人,建議使用阿里云的maven鏡像服務器,或者使用公司的maven私服,如果公司沒有私服或者自己學習可以直接使用阿里云的鏡像速度還是不錯的,maven setting.xml中需要添加mirror地址,具體如何配置這里就不詳細描述了,可以自行百度,這里也順便附上阿里云maven地址:
     
     
    <mirror>
     
        <id>nexus-aliyun</id>
     
        <mirrorOf>*</mirrorOf>
     
        <name>Nexus aliyun</name>
     
        <url>http://maven.aliyun.com/nexus/content/groups/public</url>
     
    </mirror>
    配置好了pom后,我們一起看下自動生成的Application.java這個類相當于我們程序的main函數入口,這里再順便介紹下因為springboot集成了Tomcat和Jetty,默認使用Tomcat作為應用容器,開發者只需要將工程打成jar包直接丟到服務器上就可以執行了,不需要再單獨部署到was、jboss、tomcat這些應用服務器上。 SpringBootStartApplication.java
     
     
    @SpringBootApplication
     
    public class SpringbootStartApplication {
     
     
     
        public static void main(String[] args) {
     
            SpringApplication.run(SpringbootStartApplication.class, args);
     
        }
     
    }
     
     
    所有的springboot application啟動類都需要在類級別上加上@SpringBootApplication注解,其他參數不用任何調整,后續可以把一些初始化的動作放到該類中進行,目前本例中就不加其他的啟動加載項了。 這樣一個api網關的架子就搭好了,是不是很簡單!下面我們就可以將主要精力聚焦在業務邏輯代碼上了,這里為了簡化程序,不會將項目進行深入的分層設計,在實際項目中,一般都會對項目進行分層設計,如果是api網關,沒有view層但是起碼也會有對外接入decontroller層、處理業務邏輯的service層、處理數據持久化的dao層,同時也會有一些POJO業務實體類,這里就不詳細展開了,后續也會對互聯網架構設計進行詳細講述,這里我們只創建了一個UserController類,里面只有獲取用戶信息的方法,分別根據參數和請求方式的不同用三種方法進行了重寫,下面就來一一道來。
     
    先來講述下最簡單的使用get請求用戶信息的實現方式,代碼如下,寫好后直接在Application類點擊右鍵有個RunAs,點擊后會自動運行,運行成功后可以使用http發包工具進行測試,這里推薦使用chrome的postman或者使用firefox的httprequester插件,都是比較簡單的發包工具,get請求的上送為http://localhost:8081/springboot/getUserByGet?userName=feiweiwei
     
     
    //@RestController注解能夠使項目支持Rest
     
    @RestController
     
    @SpringBootApplication
     
    //表示該controller類下所有的方法都公用的一級上下文根
     
    @RequestMapping(value = "/springboot")
     
    public class UserController {
     
        //這里使用@RequestMapping注解表示該方法對應的二級上下文路徑
     
        @RequestMapping(value = "/getUserByGet", method = RequestMethod.GET)
     
        String getUserByGet(@RequestParam(value = "userName") String userName){
     
            return "Hello " + userName;
     
        }
     
    }
     
     
    這里用到的注解主要有@RequestMapping表示請求的URL上下文路徑,該路徑不能重復,為了保證與團隊其他同事寫的不重復,一般會在每個controller前面加一個一級上下文目錄,具體路徑參數放在value后面,在每個方法前加一個二級目錄,這樣可以有效的避免路徑沖突。還有注解是@RequestParam,該注解可以通過value指定入參,這里return的返回值就是實際的接口返回。
     
    下面介紹下POST的請求方式,可以通過在@RequestMapping注解中設置method為POST來表示該請求為POST請求,除了get、post還有put、delete等請求方式,都可以通過該參數設置。
     
        //通過RequestMethod.POST表示請求需要時POST方式
     
        @RequestMapping(value = "/getUserByPost", method = RequestMethod.POST)
     
        String getUserByPost(@RequestParam(value = "userName") String userName){
     
            return "Hello " + userName;
     
        }
     
     
    下面介紹下請求參數為JSON格式的請求方法的寫法,這里需要注意下如果請求參數是像上面那樣通過url form形式提交的請求參數,那么必須使用@RequestParam注解來標示參數,如果使用的請求報文是POST形勢的JSON串,那么這里在入參的注解一定要使用@RequestBody,否則會報json解析錯誤。
     
        //在入參設置@RequestBody注解表示接收整個報文體,這里主要用在接收整個POST請求中的json報文體,
     
        //目前主流的請求報文也都是JSON格式了,使用該注解就能夠獲取整個JSON報文體作為入參,使用JSON解析工具解析后獲取具體參數
     
        @RequestMapping(value = "/getUserByJson",method = RequestMethod.POST)
     
        String getUserByJson(@RequestBody String data){
     
            return "Json is " + data;
     
        }
     
     
    3. 小結
     
    到此一個簡單的restful風格的api網關就完成了,對于移動開發人員可以自己寫簡單的服務端進行全棧開發了,原來做spring的同學也可以很快上手springboot,springboot總體上來說還是簡化了原先復雜的配置,讓大家更容易快速上手和搭建服務端,代碼的git地址在下方,歡迎大家下載,謝謝。
     
    git代碼地址:https://github.com/feiweiwei/springboot-start.git
     

    0(好文)
    0(太水)
    版權聲明:部分文章源于網絡,如侵權請聯系我們刪除
    買購快云Plus,云服務器折上折

    專題頁

    色播