[SpringBoot+VueJs]2.3 SpringBoot

作者: professorLea | 来源:发表于2017-07-11 16:47 被阅读3232次

目录

  1. 环境搭建
  2. 后端
    2.1 数据库设计
    2.2 SpringBoot + Mybatis
    2.3 SpringBoot+RestfulAPI
  3. 前端
    3.1 VueJS 2.0 + Webpack工程介绍
    3.2 Admin-LTE介绍及使用
    3.3 VueJS一些基础知识
    3.4 项目中用到的和VueJS的开源组件

1 前言

Spring boot写REST服务,和Spring几乎没有什么区别。

2 开始

2.1 加入依赖及Plugin

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-aop</artifactId>
        </dependency>
        <!-- Spring Boot Test 依赖 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
      ...
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>

2.2 Main class [Application]

@SpringBootApplication(scanBasePackages="com.xxx.xxx")
// mapper 接口类扫描包配置
@MapperScan("com.xxx.xxx.dao")
public class Application {
    public static void main(String[] args) {
        new SpringApplicationBuilder(Application.class).run(args);
    }
}

2.3 写一个controller

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/api")
public class SummaryController {
    @Autowired
    private SummaryService summaryService;

    @RequestMapping(value = "/summary")
    public ResponseEntity<SummaryResult> getSummary(@RequestParam(value = "reportId") String reportId) {

        SummaryResult results = (summaryService.getSummaryResult(reportId));

        return new ResponseEntity<>(results, HttpStatus.OK);
    }
}

这里值得注意的是
import org.springframework.http.ResponseEntity;
ResponseEntity: 代表了整个HTTP返回。可以指定Status Code,headers,body。它也有很多构造方法来使用。

2.4 Service层summaryService

import com.xxxx.xxxx.dao.SummaryMapper;
import com.xxxx.xxxx.dto.SummaryResult;
import com.xxxx.xxx.model.Summary;
import com.xxx.xxx.service.SummaryService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.text.DecimalFormat;
import java.util.List;

/**
 * Created with IntelliJ IDEA.
 * User: professor
 * Date: 2017/6/2
 * Time: 下午1:09
 */
@Service
public class SummaryServiceImpl implements SummaryService {

    @Autowired
    private SummaryMapper summaryMapper;

    @Override
    public SummaryResult getSummaryResult(String reportid) {
        DecimalFormat df = new DecimalFormat("#.##");
        Integer total_cases = 0;
        Integer case_passed = 0;
        SummaryResult result = new SummaryResult();

        List<Summary> summaryList = summaryMapper.selectByReportId(reportid);
        for (Summary s : summaryList) {
            total_cases += s.getCaseNum();
            case_passed += s.getCasePassed();
        }
        result.setTotal_cases(total_cases);
        result.setCase_passed(case_passed);
        Float radio = (case_passed * 100.0f) / total_cases;
        result.setPass_radio(df.format(radio));
        return result;
    }
}

就是使用summaryMapper.selectByReportId方法来从数据库中获取信息,并返回计算结果。

如此依赖一个REST服务就写好了。写过应该是:

http://127.0.0.1:7171/api/summary?reportId=3](http://127.0.0.1:7171/api/summary?reportId=3)
{
  "total_cases": 902,
  "case_passed": 707,
  "pass_radio": "78.38"
}

注意这里的7171是我在工程的application.properties文件里显式指定的HTTP服务端口:

server.address=0.0.0.0
server.port=7171

相关文章

网友评论

  • 0a888ae145ba:求一份源码,751108258@qq.com
  • 61abfb54f5c4:楼主 你好 求一份源码 谢谢 jonylei0103@126.com
  • Starrier:我也想要 谢谢1342878298@qq.com
  • gleesu:LZ求一份源码~~
    gleesu@qq.com
  • 50432de410cf:求一份源码楼主 谢谢楼主810780738@qq.com或者zsm810780738@gmail.com
    professorLea:@IT小猪朱守明 已发
  • 筱小Q:demo源码能发我一份么?1446035768@qq.com
    多谢了
  • 5665fecb1c88:求一份源码,valuce@vip.qq.com
  • a010947a830a:求一份源码,22319688@qq.com
  • 悟八:271181219@qq.com
    求楼主一份源码,谢谢!
  • 久伴沫离:楼主有demo源码吗?能否发给我交流下,623090787@qq.com,谢谢楼主了:relaxed:
    久伴沫离:@professorLea 楼主,我QQ没有收到:hushed: ,刚刚看了邮箱
    贾百强:麻烦也发我一下demo源码,16717028@qq.com,谢谢楼主了
    professorLea:@久伴沫离 已发

本文标题:[SpringBoot+VueJs]2.3 SpringBoot

本文链接:https://www.haomeiwen.com/subject/dnjmhxtx.html