【項目搭建】使用spring-boot進(jìn)行REST風(fēng)格的微服務(wù)開發(fā)入門

本人的csdn傳送門

前言

進(jìn)行web開發(fā)的時候Java程序員們難免會碰到那種很小的服務(wù)隔躲,比如就提供一個生成訂單號的接口店量,或者一個上傳文件的服務(wù)瞬捕。而這時我們再去使用SpringMVC這種體量稍大、配置繁瑣的框架開發(fā)難免會加大工作量惹骂,而且是不必要的魂拦。這個時候我們就可以選擇使用這個微服務(wù)框架——springboot進(jìn)行開發(fā)讨勤。

Spring Boot是由Pivotal團(tuán)隊提供的全新框架,其設(shè)計目的是用來簡化新Spring應(yīng)用的初始搭建以及開發(fā)過程晨另。該框架使用了特定的方式來進(jìn)行配置,從而使開發(fā)人員不再需要定義樣板化的配置谱姓。通過這種方式借尿,Spring Boot致力于在蓬勃發(fā)展的快速應(yīng)用開發(fā)領(lǐng)域(rapid application development)成為領(lǐng)導(dǎo)者。


springboot框架的搭建與簡單的REST風(fēng)格的MVC架構(gòu)demo

首先屉来,建立一個新的maven工程路翻,pom文件主要內(nèi)容如下:

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.2.1.RELEASE</version>
    <relativePath/>
  </parent>
  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <java.version>1.8</java.version>
  </properties>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
    
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-thymeleaf</artifactId>
    </dependency>
  </dependencies>
  <build>
    <plugins>
      <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
      </plugin>
    </plugins>
  </build>

其中核心依賴是 spring-boot-starter-web

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

訪問靜態(tài)資源文件可以加入模板:

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

編寫Application.java文件,存放于src/main/java這個目錄下

這里是springboot的核心啟動類
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
@Configuration
@ComponentScan
@EnableAutoConfiguration
public class Application{
    
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

事實上茄靠,這個時候已經(jīng)把框架搭建好了茂契,運行以上main方法即可啟動這個項目,但是我們現(xiàn)在看不到效果慨绳,接下來掉冶,就可以像SpringMVC一樣加入MVC三層結(jié)構(gòu)的代碼了,目錄結(jié)構(gòu)如下圖:

REST風(fēng)格的MVC架構(gòu)demo項目目錄結(jié)構(gòu)

其中各層代碼如下:

controller

package com.zhang.controller;
import java.util.HashMap;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.servlet.ModelAndView;
import com.zhang.entity.Photo;
import com.zhang.service.mainService;
@RestController
@RequestMapping("/photo")
public class mainController {

    @Autowired
    private mainService mainservice;
    @RequestMapping("/")
    public ModelAndView index(ModelAndView mav){
        mav.addObject("hello", "這是項目主頁脐雪,訪問根目錄到達(dá)~~");
        mav.setViewName("index");
        return mav;
    }
    @RequestMapping("/getPhoto")
    public Object doIt(){
        Map<String, Photo> map = new HashMap<String, Photo>();
        map.put("photo", mainservice.getPhotoById(123));
        return map;
    }
}

service實現(xiàn)類

package com.zhang.service.impl;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.zhang.dao.mainDao;
import com.zhang.entity.Photo;
import com.zhang.service.mainService;
@Service("mainservice")
public class mainServiceImpl implements mainService {

    @Autowired
    private mainDao maindao;
    @Override
    public Photo getPhotoById(int id) {
        return maindao.getPhotoNameById(id);
    }

}

dao實現(xiàn)類

package com.zhang.dao.impl;

import org.springframework.stereotype.Repository;

import com.zhang.dao.mainDao;
import com.zhang.entity.Photo;

@Repository("maindao")
public class mainDaoImpl implements mainDao {

    @Override
    public Photo getPhotoNameById(int id) {
        Photo p = new Photo();
        p.setId(123);
        p.setName("雪山行紀(jì)念照");
        return p;
    }

}

實體類photo

package com.zhang.entity;
public class Photo {
    private int id;
    private String name;
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
}

啟動項目

項目啟動日志

項目默認(rèn)端口為8080厌小,在瀏覽器中訪問剛才的controller會看到:

訪問結(jié)果

如上,一個REST風(fēng)格的MVC架構(gòu)的demo項目就搭建完成了战秋。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末璧亚,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子脂信,更是在濱河造成了極大的恐慌癣蟋,老刑警劉巖透硝,帶你破解...
    沈念sama閱讀 219,490評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異疯搅,居然都是意外死亡濒生,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,581評論 3 395
  • 文/潘曉璐 我一進(jìn)店門秉撇,熙熙樓的掌柜王于貴愁眉苦臉地迎上來甜攀,“玉大人,你說我怎么就攤上這事琐馆」娣В” “怎么了?”我有些...
    開封第一講書人閱讀 165,830評論 0 356
  • 文/不壞的土叔 我叫張陵瘦麸,是天一觀的道長谁撼。 經(jīng)常有香客問我,道長滋饲,這世上最難降的妖魔是什么厉碟? 我笑而不...
    開封第一講書人閱讀 58,957評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮屠缭,結(jié)果婚禮上箍鼓,老公的妹妹穿的比我還像新娘。我一直安慰自己呵曹,他們只是感情好款咖,可當(dāng)我...
    茶點故事閱讀 67,974評論 6 393
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著奄喂,像睡著了一般铐殃。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上跨新,一...
    開封第一講書人閱讀 51,754評論 1 307
  • 那天富腊,我揣著相機與錄音,去河邊找鬼域帐。 笑死赘被,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的肖揣。 我是一名探鬼主播帘腹,決...
    沈念sama閱讀 40,464評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼许饿!你這毒婦竟也來了阳欲?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,357評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎球化,沒想到半個月后秽晚,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,847評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡筒愚,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,995評論 3 338
  • 正文 我和宋清朗相戀三年赴蝇,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片巢掺。...
    茶點故事閱讀 40,137評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡句伶,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出陆淀,到底是詐尸還是另有隱情考余,我是刑警寧澤,帶...
    沈念sama閱讀 35,819評論 5 346
  • 正文 年R本政府宣布轧苫,位于F島的核電站楚堤,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏含懊。R本人自食惡果不足惜身冬,卻給世界環(huán)境...
    茶點故事閱讀 41,482評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望岔乔。 院中可真熱鬧酥筝,春花似錦、人聲如沸雏门。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,023評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽剿配。三九已至,卻和暖如春阅束,著一層夾襖步出監(jiān)牢的瞬間呼胚,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,149評論 1 272
  • 我被黑心中介騙來泰國打工息裸, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留蝇更,地道東北人。 一個月前我還...
    沈念sama閱讀 48,409評論 3 373
  • 正文 我出身青樓呼盆,卻偏偏與公主長得像年扩,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子访圃,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,086評論 2 355

推薦閱讀更多精彩內(nèi)容

  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 46,826評論 6 342
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理厨幻,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 134,672評論 18 139
  • 《Spring Boot開發(fā):從0到1》 大綱結(jié)構(gòu)v2.0 第一部分Spring Boot基礎(chǔ) 第1章 Sprin...
    光劍書架上的書閱讀 10,957評論 1 70
  • 我行走在况脆,昏黃的路燈下饭宾, 腳步走成了流浪的模樣。 時不時抬起頭格了,看向夜空看铆,霓虹消失的方向。 星星已經(jīng)不見盛末,更何況弹惦,...
    何棄了閱讀 205評論 0 0
  • 阿嬌是個小氣鬼算墨,住在我家兩個月宵荒,一直以工作沒找到為借口蹭吃蹭喝還偶爾騙我的口紅用,我都做好被她坑到年后的準(zhǔn)備了净嘀。 ...
    安嘉映閱讀 637評論 0 2