构建REST服务

  1. RESTfu简介
  2. 搭建Jpa环境
  3. SpringBoot中REST默认提供的增删改查
  4. SpringBoot中REST自定义查询方法
  5. REST配置CORS
  6. 自定义REST配置
  7. MongoDB实现REST


  • RESRful简介
  1. 是一种风格而不是一种约束
  • 搭建Jpa快速构建RESTful服务

创建SpringBoot项目,添加依赖 web依赖 SQL下的Spring Data JPA依赖,MySQL Driver依赖 web下的Rest Respositories依赖 在pom文件下制定mysql的version,添加druid依赖

<dependency>
    <groupId>con.alibaba</groupId>
    <artifactId>druid-spring-boot-starter</artifactId>
    <version>1.1.10</version>
</denpendency>
dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <scope>runtime</scope>
    <version>5.1.27</version>
</denpendency>

 在application.properties下配置JPA和数据库信息

spring.datasource.username=root
spring.datasource.password=root
spring.datasource.url=jdbc:mysql://localhost:3306?useUnicode=true&characterEncoding=UTF-8
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource

spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL57Dialect
spring.jpa.show-sql=true
spring.jpa.database=mysql
spring.jpa.database-platform=mysql
spring.jpa.hibernate.ddl-auto=update

 创建一个实体类Book

@Entity(name="t_book")
public class Book{
    @Id
    @GeneratedValue(strategy=GenerationType.IDENTITY)
    private Integer id;
    private String name;
    private String author;
   // get\set()
    //.....
}

 创建一个BookDao

public interface BookDao extends JpaRepository<Book,Integer>{
    
}

 创建一个Test类

@AutoWride
BookDao bookDao;
@Test
public void test1(){
    Book book = new Book();
    book.setName("三国演义");
    book.setAuthor("罗贯中");
    book.setId(1);
   List<Book> list =  bookDao.update(book);
   System.out.println(book);
}

 

  • SpringBoot中REST默认提供的增删改查
    查询使用Postman  ====GET
    http://localhost:8080/books  //查询就是地址加上要查询的类名小写加上's'
    http://localhost:8080/books?page=1$size=2&sort=id,desc  //倒序分页查询
    http://localhost:8080/books/1  //查询id 为1的记录
    添加======POST
    http://localhost:8080/books
    {"name":"水浒传“,"author":"施耐庵"}  //在body中添加
    修改====PUT
    http://localhost:8080/books/5   //修改id为5的记录
    {"name":"水浒传“,"author":"鲁迅"}  //在body中添加,修改作者名为鲁迅
    删除====DELETE
    http://localhost:8080/books/6  //删除id为6的记录

     

  • SpringBoot中REST自定义查询方法
    //@RepositoryRestResource可选
    @RepositoryRestResource(path="bs",collectionResourceRel="bs",itemResourceRel="b")
    public interface BookDao extends JpaRepository<Book,Integer>{
        @RestResource(path="byname",rel="findbyname") //(可选)可以修改自定义方法为其它名称
        List<Book> findBookByNameContaining(@Param("name") String name);
    }
    在postman中 ====Get
    http://localhost:8080/books/search  ///可以查看相关的接口
     就会出现:
         http://localhost:8080/books/search/findBookByNameContaining(?name)
    就可以用这个自定义的方法,查询啦
        http://localhost:8080/books/search/findBookByNameContaining?name=西
    如果上面使用了RestResource注解,则
        http://localhost:8080/book/serach/byname?name=西  
    如果上面定义了@RepositoryRestResource注解,则
        http://localhost:8080/bs/search/byname?name=西  
                               

     

  • REST配置CORS请求跨域
    @CrossOrigin  //跨域注解
    public interface BookDao extends JpaRepository<Book,Integer>{
    }
     

     

  • 自定义REST配置
    //第一种====推荐
    //在application.properties中
    spring.data.rest.base-path=/api  //定义访问的时候要在端口后加入/api为前缀访问
    spring.data.rest.default-page-size=20  //查询后默认返回20条记录
    spring.data.rest.max-page-size=100  //最大的返回记录数
    
    //第二种===没多大必要
    //用java代码实现,创建一个RestConfig类实现RepositoryRestConfigure,重写里面的方法
    @Configuration
    public class RestConfig implements RepositoryRestConfigure {
        @Override
        public void configureRepositoryRestConfiguration(RepositortRestConfiguration config){
            config.setDefaultPageSize(20)
            .setMaxPageSize(100);
          // .....  //提供的方法和第一种里面是一样的
        }
    }
    

     

  • MongoDB构建REST服务
  • 创建SpringBoot项目,添加依赖 web依赖 NoSQL下的Spring Data MongoDB依赖 web下的Rest Respositories依赖 在application.properties中配置MongoDB
    spring.data.momgodb.database=zenghao
    spring.data.mongodb.port=27017
    spring.data.mongodb.password=123
    spring.data.mongodb.username=root
    spring.data.mongodb.authentication-database=admin
    spring.data.mongodb.host=127.0.0.1
    

     创建一个实体类Book

    public class Book{
        private Integer id;
        private String name;
        private String author;
        //get\set()
       // .....
    }

     创建一个BookDao接口

    public interface BookDao extends MongoRepository<Book,Integer> {
        
    }
    

    后面的CURD操作和前面JPA一样(略)

     

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Boot是一个用于构建独立的、生产级别的Spring应用程序的框架。而Apache CXF是一个开源的、全功能的Web服务框架,可用于构建和部署SOAP和RESTful Web服务。 在Spring Boot中整合CXF REST服务的步骤如下: 1. 添加CXF和Spring Boot的相关依赖。在pom.xml文件中添加以下依赖: ```xml <dependencies> <dependency> <groupId>org.apache.cxf</groupId> <artifactId>cxf-spring-boot-starter-jaxrs</artifactId> <version>3.3.7</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <version>2.5.0</version> </dependency> </dependencies> ``` 2. 创建一个RESTful Web服务接口。在Spring Boot项目中创建一个标注有`@Path`注解的接口,定义RESTful风格的服务接口。 ```java @Path("/users") public interface UserService { @GET @Path("/{id}") @Produces(MediaType.APPLICATION_JSON) User getUser(@PathParam("id") String id); @POST @Consumes(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON) User createUser(User user); // ... } ``` 3. 实现RESTful接口。创建一个实现了上述接口的类,并添加`@Service`注解,将其作为Spring的Bean进行管理。 ```java @Service public class UserServiceImpl implements UserService { @Override public User getUser(String id) { // 实现具体的逻辑 } @Override public User createUser(User user) { // 实现具体的逻辑 } // ... } ``` 4. 配置CXF。在application.properties(或application.yml)文件中添加以下配置: ```properties cxf.path=/api cxf.jaxrs.classes-scan=true ``` 这将配置CXF的访问路径和自动扫描RESTful服务接口的功能。 5. 启动Spring Boot应用程序。可以通过`@SpringBootApplication`注解标注主类,并添加`@Endpoint`注解来启动应用程序和发布Web服务。 至此,我们已经成功地将CXF REST服务整合到Spring Boot应用程序中。可以通过访问`http://localhost:8080/api/users/1`来调用RESTful接口的`getUser`方法,并得到返回结果。 总的来说,整合Spring Boot和CXF REST服务相对简单,只需添加相关依赖、定义接口和实现类,然后配置CXF即可。这种整合方式可以使开发者更加便捷地构建和部署RESTful Web服务

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值