spring boot相关SpringBoot极简教程 · Spring Boot Spring-Boot

spring boot后台接口与MongoDB实现插入和获取le

2017-05-02  本文已影响424人  胡图仙人

很少写后台接口,近来spring boot比较火,而吸引我的一大特性是spring boot的部署非常方便:通过application.properties进行配置,使用mvn package生成嵌套了tomcat容器的jar包,再放到任意一台安装了java环境的服务器,以java -jar xxx.jar启动。非常小巧、灵活,与近几年业界常提到微服务(包括docker)结合的很好。
故此,以快速学习的目的,搭建了spring boot后台简单接口,并通过MongoDB存取数据。
该Demo基于MongoDB 3.0.6,IDEA2016.2版本(基于Marven构建spring boot项目),thymeleaf(基于html,spring boot提供的模板之一)构建,实现功能很简单,

下面理清主要点

一、spring boot配置

网上很多都没有给出application.properties的位置和创建方式,右击Resources目录new->file即可,文件名就是application.properties.这么重要的文件有必要说明一下,因为大多数配置都是在这里面进行。


application.properties位置所在

我因为只配置了端口、mongodb和thymeleaf,故配置如下。
<pre><code>

########################################################

THYMELEAF (ThymeleafAutoConfiguration)

########################################################

</code></pre>
还可配置mysql、redis等众多服务。

除了application.properties要配置,pom的依赖也要配置。
下面的配置包含了spring boot、mongodb、thymeleaf这三种配置,引入后选择auto-import系统自动导入相应的依赖文件。
<pre><code>

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.mongodb</groupId>
        <artifactId>mongo-java-driver</artifactId>
        <version>3.0.4</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.data</groupId>
        <artifactId>spring-data-mongodb</artifactId>
        <version>1.7.0.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-mongodb</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.data</groupId>
        <artifactId>spring-data-commons</artifactId>
        <version>1.10.0.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-autoconfigure</artifactId>
        <version>1.4.0.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-thymeleaf</artifactId>
    </dependency>
</dependencies>

</code></pre>

二、mongodb操作

使用MongoRepository,存入对象。

}```
另外需要题目model类,定义变量和get/set方法,不再赘述。

在主Controller中,初始化操作mongodb的对象。
@Autowired
private DemoInfoRepository demoInfoRepository;
一开始给页面展现什么数据?返回leetcode.html。
@RequestMapping(value="/leetcode", method= RequestMethod.GET)
public String sayHelloForm(Model model) {
    model.addAttribute("helloMessage", new Demo());
    return "leetcode";
}
运行类中执行以下操作存入对象数据,将页面提交数据字段一一绑定,存入数据库。
    ```@RequestMapping(value="/leetcode",method=RequestMethod.POST)
    public String submit(
            @RequestParam("name") String inputtext,
            @RequestParam("id") long result,
            @RequestParam("tag") String tag,
            @RequestParam("acceptance") String acceptance,
            @RequestParam("solution") String solution,
            @RequestParam("content") String content,
            @RequestParam("difficulty") String difficulty){
        Demo demoInfo = new Demo();
        demoInfo.setName(inputtext);
        demoInfo.setId(result);
        demoInfo.setTag(tag);
        demoInfo.setAcceptance(acceptance);
        demoInfo.setSolution(solution);
        demoInfo.setDifficulty(difficulty);
        demoInfo.setContent(content);
        demoInfoRepository.save(demoInfo);
        return "message";}

//执行完上述操作后,返回message.html.

查询

@RequestMapping("/find")
public List<Demo> find(){
    return demoInfoRepository.findAll();//直接调用findAll()方法。
}

三、thymeleaf前台页面与后台数据绑定

    <p>题目名称: <input type="text" th:field="*{name}" />题目序号: <input type="text" th:field="*{id}"/></p>
    <p>题目通过率: <input type="text" th:field="*{acceptance}" />难度: <input type="text" th:field="*{difficulty}" /></p>
    <p>分类: <input type="text" th:field="*{tag}" /></p>
    <p>题目内容: <input type="text" th:field="*{content}" th:width="200" th:height="300"/></p>
    <p>解决方案: <input type="text" th:field="*{solution}" /></p>
    <p><input type="submit" value="Submit" /> <input type="reset" value="Reset" /></p>
</form>

参考文章
spring boot可以作为app后端接口吗
Spring Boot实战之Rest接口开发及数据库基本操作
SpringBoot 之 简单的接口
spring boot 连接mongodb
MongoProperties mongodb3.0以后安全配置
84. Spring Boot集成MongoDB【从零开始学Spring Boot】
spring-boot--使用thymeleaf模板
使用Spring Boot开发Web项目
深入学习spring-boot系列(三)--使用thymeleaf模板
https://github.com/Terry-Shi/blog/wiki/Spring-Boot-thymeleaf

上一篇下一篇

猜你喜欢

热点阅读