如何根据休息服务创建SpringBoot应用程序?

时间:2018-06-07 14:05:55

标签: spring-boot

我想通过SpringBoot实现REST服务来创建前端Web API,我想得到一个Spring Application的例子吗?

我已经为Comment类实现了模型,这是我的代码.........

包Spring.Spring.model;

import org.springframework.data.mongodb.core.mapping.Document;

@Document(collection="collection")
public class Comment {
    @org.springframework.data.annotation.Id
    private String Id;
    private String message;

    public String getID(){
        return Id;
    }

    public void setId(String id){
        Id=id;
    }

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }
}

要连接到后端,我有像这样的应用程序属性文件

server.port=8881
spring.data.mongodb.host=localhost
spring.data.mongodb.post=27017
spring.data.mongodb.database=comments

2 个答案:

答案 0 :(得分:0)

我已根据您的模型实施了服务

package SpringBootWithMongo.SpringBootWithMongo.service;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;

import SpringBootWithMongo.SpringBootWithMongo.model.User;
import SpringBootWithMongo.SpringBootWithMongo.model.UserRepository;

@RestController
@RequestMapping("/")
public class UserService {
        @Autowired
        private UserRepository repository;

        @RequestMapping(method = RequestMethod.POST)
        public void AddUser(@RequestBody User instance) {
            try {
                repository.save(instance);
            } catch(Exception e) {
                e.printStackTrace();
            }
        }

        @SuppressWarnings("finally")
        @RequestMapping(method = RequestMethod.GET)
        public List<User> GetAllUsers() {
            List<User> userList = null;
            try {
                userList = repository.findAll();
            } catch(Exception e) {
                e.printStackTrace();
            } finally {
                return userList;
            }
        }

        @SuppressWarnings("finally")
        @RequestMapping(value = "/{Id}", method = RequestMethod.GET)
        public User getSingle(@PathVariable String Id) {
            User instance = null;
            try {
                instance = this.findOne(Id);
            } catch(Exception e) {
                e.printStackTrace();
            } finally {
                return instance;
            }
        }

        @RequestMapping(value = "/{Id}", method = RequestMethod.PUT)
        public void updateUser(@RequestBody User instance, @PathVariable String Id) {
            try {
                User updateInstance = this.findOne(Id);
                updateInstance.setName(instance.getName());
                repository.save(updateInstance);
            } catch(Exception e) {
                e.printStackTrace();
            }
        }

        @RequestMapping(value = "/{Id}", method = RequestMethod.DELETE)
        public void deleteUser(@PathVariable String Id) {
            try {
                repository.delete(this.findOne(Id));
            } catch(Exception e) {
                e.printStackTrace();
            }
        }

        @SuppressWarnings("finally")
        private User findOne(String Id) {
            User instance = null;
            try {
                List<User> userList = repository.findAll();
                for(User user: userList) {
                    if(user.getId().equals(Id)) {
                        instance =  user;
                        break;
                    }
                }
            } catch(Exception e) {
                e.printStackTrace();
            } finally {
                return instance;
            }
        }
}

答案 1 :(得分:0)

请参阅此代码以获取存储库

package SpringBootWithMongo.SpringBootWithMongo.model;

import org.springframework.data.mongodb.repository.MongoRepository;
import org.springframework.stereotype.Repository;

@Repository
public interface UserRepository extends MongoRepository<User, String>{

}