zoukankan      html  css  js  c++  java
  • SpringMVC 强大的注解方式,走一个流程,看看,这些注解用过么

    • 实现方式一:

    • Controller层:
     1 import java.util.List;
     2 import java.util.Map;
     3 import java.util.NoSuchElementException;
     4 import java.util.Optional;
     5 
     6 import org.apache.commons.lang3.StringUtils;
     7 import org.bson.types.ObjectId;
     8 import org.slf4j.helpers.MessageFormatter;
     9 import org.springframework.beans.factory.annotation.Autowired;
    10 import org.springframework.data.domain.Page;
    11 import org.springframework.data.domain.PageRequest;
    12 import org.springframework.data.domain.Pageable;
    13 import org.springframework.data.mongodb.core.MongoTemplate;
    14 import org.springframework.http.HttpStatus;
    15 import org.springframework.http.MediaType;
    16 import org.springframework.http.ResponseEntity;
    17 import org.springframework.security.access.prepost.PreAuthorize;
    18 import org.springframework.security.core.annotation.AuthenticationPrincipal;
    19 import org.springframework.security.core.userdetails.UserDetails;
    20 import org.springframework.util.Assert;
    21 import org.springframework.web.bind.annotation.GetMapping;
    22 import org.springframework.web.bind.annotation.PatchMapping;
    23 import org.springframework.web.bind.annotation.PathVariable;
    24 import org.springframework.web.bind.annotation.RequestBody;
    25 import org.springframework.web.bind.annotation.RequestMapping;
    26 import org.springframework.web.bind.annotation.RestController;
    27 
    28 import lombok.extern.slf4j.Slf4j;
    29 
    30 /**
    31  * Created by wangqb/BGStone on 2017-07-11
    32  */
    33 @RestController
    34 @RequestMapping("/wqb")
    35 @Slf4j
    36 public class DisputableNoteController {
    37     @Autowired
    38     NoteDBRepository noteDBRepository;
    39     
    40     @Autowired
    41     EntityRepository entityRepository;
    42     
    43     @Autowired
    44     MongoTemplate mongoTemplate;
    45     
    46     @PreAuthorize("hasRole('" + admin + "') ")
    47     @GetMapping(value = "/querypage/{pageNo:[\d]+}/{pageSize:[\d]+}", produces = {MediaType.APPLICATION_JSON_UTF8_VALUE})
    48     public ResponseEntity<?> queryData(@AuthenticationPrincipal UserDetails activeUser,
    49             @PathVariable String pageNo,
    50             @PathVariable String pageSize){
    51         
    52         logger.debug("User '{}' is allocating note.", activeUser.getUsername());
    53         int page = 1;
    54         int size = 20;
    55         if (pageNo != null) {
    56                 page = Integer.valueOf(pageNo);
    57         }
    58         if (pageSize != null) {
    59             size = Integer.valueOf(pageSize);
    60         }
    61         
    62         
    63         Pageable pageable = new PageRequest(page,size);
    64         
    65             Page<Entity> entityPage = entityReponsitory.findByStatus(pageable);
    66 
    67 
    68         logger.debug("List<Invoice>.Size() '{}' was allocated to user '{}' for typing.", entityPage.getSize() <= 0 ? null : entityPage.getContent().size(),
    69                 activeUser.getUsername());
    70         
    71         System.out.println("List<Entity>.all() " + result.toString() +" was allocated to user "+ activeUser.getUsername() +" for typing.");
    72 
    73         logger.info("List<Entity>.content() '{}' was allocated to user '{}' for typing.", entityPage.getSize() <= 0 ? null :entityPage.getContent().size(),
    74                 activeUser.getUsername());
    75         return ResponseEntity.status(HttpStatus.OK).body(entityPage);
    76     }
    77     
    78     @PreAuthorize("hasRole('" + admin +"')")
    79     @GetMapping(value = {"/find/{id:.+}/data"}, produces = {MediaType.APPLICATION_JSON_UTF8_VALUE})
    80     public ResponseEntity<?> findById(@AuthenticationPrincipal UserDetails activeUser,
    81                         @PathVariable("id") String noteId){
    82         logger.debug("User '{}' is allocating note.", activeUser.getUsername());
    83         
    84         System.out.println(" Optional<Entity> "+ entityOptional.get().toString() +" was allocated to user "+ activeUser.getUsername() +" for typing.");
    85         
    86         logger.debug("Invoice '{}' was allocated to user '{}' for typing.", entityOptional == null ? null : entityOptional.get(),
    87                 activeUser.getUsername());
    88         return ResponseEntity.status(HttpStatus.OK).body(entityOptional);
    89     }
    90 }
    View Code
    • 数据持久层  Repository的代码
     1 import org.bson.types.ObjectId;
     2 import org.springframework.data.domain.Page;
     3 import org.springframework.data.domain.Pageable;
     4 import org.springframework.data.mongodb.repository.MongoRepository;
     5 import org.springframework.data.mongodb.repository.Query;
     6 import org.springframework.data.rest.core.annotation.RepositoryRestResource;
     7 import org.springframework.data.rest.core.annotation.RestResource;
     8 import org.springframework.security.access.prepost.PreAuthorize;
     9 
    10 import java.util.Optional;
    11 
    12 /**
    13  * Created by *** on 2017/3/28.
    14  */
    15 @RepositoryRestResource(collectionResourceRel = "test", path = "testpath", exported = true)
    16 public interface EntityRepository extends MongoRepository<Entity, String>, EntityRepositoryCustom,
    17         EntityAllotRepositoryCustom {
    18     
    19     /*
    20      * Created by wangqb on 2017-07-11
    21      */
    22     @Query(value="{'status': 'condition' }")
    23     Page<Entity> findByStatus(Pageable pageable);
    24 }
    View Code
    • 实现方式二:

    查询条件版二:

     1         int page = 1;
     2         int size = 20;
     3         if (pageNo != null) {
     4                 page = Integer.valueOf(pageNo);
     5         }
     6         if (pageSize != null) {
     7             size = Integer.valueOf(pageSize);
     8         }
     9         
    10         Pageable pageable = new PageRequest(page,size);
    11 
    12         Invoice invoiceVo = new Invoice();
    13         invoiceVo.setStatus(Invoice.Status.Incorrect);
    14         ExampleMatcher matcher = ExampleMatcher.matching()
    15                         .withMatcher("status", GenericPropertyMatchers.exact());
    16         Example example = Example.of(invoiceVo);
    17         
    18         Page<Invoice> invoicePage = invoiceRepository.findAll(example, pageable);
    View Code
  • 相关阅读:
    9- 遍历map集合的方法
    linux下修改了tomcat端口之后无法访问
    汪汪
    无题
    python之禅
    kettle连接oracle出现Error connecting to database: (using class oracle.jdbc.driver.OracleDriver)
    Android camera
    网站部署,网站要求需要支持mb_substring
    oracle笔记
    CSS jQuery 图片全屏切换
  • 原文地址:https://www.cnblogs.com/bridgestone29-08/p/7162064.html
Copyright © 2011-2022 走看看