如何使用 Spring Boot 初始一個 webService 項目

本文會練習使用IDE創建一個 mongodb 的簡單 web 服務,儘可能會很詳細,作到初次看的也能創建成功。java

1. 使用 IDE

Java 開發推薦使用 IDE,能夠免去你不少麻煩。git

第一步,創建你的項目: File->New->Project...,選擇 Spring Initializr。github

默認點擊 Next-> 就行了。web

選擇依賴,本項目先起一個簡單的 mongodb web服務,因此選擇了web和mongodb的dependencies,而後點擊next:spring

最後一步也點擊 next就好。mongodb

完成後能夠看到此目錄結構:數據庫

2. 編寫項目

能夠看到com.example.demo目錄下會有一個DemoApplication.java 的文件, 這個就是整個服務的入口文件。這個文件咱們基本不用去碰它作任何改動。
創建一個web 服務,一般的步驟:第一步是創建路由,第二步是寫個controller,第三步是創建service,第四步是service 調用Dao層控制db。api

2.1 創建路由,寫個 controller

首先直接在 com.example.demo 目錄下建立個controller文件,java裏面router直接能夠用註解完成,不用創建一個文件專門存router地址。bash

// AccountController
package com.example.demo;

import java.util.concurrent.atomic.AtomicLong;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.beans.factory.annotation.Autowired;
import java.util.List;

@RestController
@RequestMapping("/api/v1")
public class AccountController {
    
    @RequestMapping("/account")
    public String account() {
        return "hello world";
    }
}

複製代碼

這就是一個簡單的web服務接口。點擊IDE的啓動就能夠跑起來。app

而後訪問如下所寫的地址就能夠獲得返回結果;

2.2 創建Dao層

在com.example.demo目錄下建立AccountRepository.java,引入Account類,直接繼承MongoRepository。

// AccountRepository
package com.example.demo;

import java.util.List;

import com.example.demo.Account;
import org.springframework.data.mongodb.repository.MongoRepository;
import org.springframework.data.rest.core.annotation.RepositoryRestResource;

@RepositoryRestResource
public interface AccountRepository extends MongoRepository<Account, String> {
}
複製代碼

在com.example.demo目錄下建立 Account.java

// Acount
package com.example.demo;
import org.springframework.data.annotation.Id;
// import org.springframework.data.mongodb.core.index.CompoundIndex;
import org.springframework.data.mongodb.core.mapping.Document;
import org.bson.types.ObjectId;
import java.io.Serializable;

@Document(collection = "account")
public class Account implements Serializable {
  @Id
  private ObjectId _id;

  private String realName;

  public ObjectId getId() {
    return _id;
  }

  public String getName() {
    return realName;
  }

  public String setName(String realName) {
    return this.realName = realName;
  }
}
複製代碼

以上就是簡單的引用一個 Account Collection 的實現,

最後還要在application.properties指定數據庫的鏈接,這個文件放在 resources,通常項目的配置類參數都寫在這裏。

若是歷來沒起過一個 mongodb的話, 先去查查。

spring.data.mongodb.uri=mongodb://localhost:27017/test_invest
複製代碼

在引入了db的collection以後,controller能夠作更多的東西了。

如下,簡單寫了個獲取account這個collection內全部document的方法, 還有插入一個account的方法:

// AccountController
package com.example.demo;

import java.util.concurrent.atomic.AtomicLong;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.beans.factory.annotation.Autowired;
import java.util.List;

@RestController
@RequestMapping("/api/v1")
public class AccountController {
    @Autowired
    AccountRepository accountRepository;

    @RequestMapping("/account")
    public List<Account> account() {
        return accountRepository.findAll();
    }

    @RequestMapping("/addAccount")
    public Account addAccount(@RequestParam String name) {
        System.out.println(name);
        Account account = new Account();
        account.setName(name);
        Account result = accountRepository.insert(account);
        System.out.println(result);

        return result;
    }
}

複製代碼

整個項目的目錄結構是這樣的:

再次運行項目:

  1. 插入一個 document

  1. 查看錶中全部的 document

以上就已經完整的實現了一個接口服務。
項目 demo 地址:[[github.com/yuchenzhen/…]]

相關文章
相關標籤/搜索