zoukankan      html  css  js  c++  java
  • TechRoad_oneStep_08/09/2020

    记录 tech road 点滴的收获, 日后整理的资料 2020-08-09


    1. Spring IoC ,Strategy 的子类实现,在 customer 的setter 参数中 Collection<StrategyInterface>  strategy>

    可将所有具体的实现注入。

    2. Java8 stream 的 flatMap , 双 map 处理双集合

    3 Optional<T> 结合 findAny() , 

    isPresent() 返回true或false,

    ifPresent ( Consumer<T> block )会在值存在的时候执行, T 与 Optional<T> 一致。

    4, Class Enum 

     



    Spring boot web

    1. Spring boot context  runner

     1 SpringBootApplication
     2 public class PracticeApplication {
     3 
     4     public static void main(String[] args) {
     5 
     6         SpringApplication.run(PracticeApplication.class,args);
     7 
     8 /*
     9       ConfigurableApplicationContext ctx = SpringApplication.run(PracticeApplication.class, args);
    10 
    11         Calculator calculator = ctx.getBean(Calculator.class);
    12         calculator.calculate(123,334,'+');
    13         calculator.calculate(123, 123, '*');
    14 */
    15 
    16     }
    17 
    18 /*    @Bean
    19     public ApplicationRunner calculationRunner(Calculator calculator){
    20         return args -> {
    21             calculator.calculate(124, 123, '+');
    22             calculator.calculate(123, 22, '*');
    23         };
    24     }*/
    25 
    26 /*    @Bean
    27     public ApplicationRunner calculationRunner(Calculator calculator,
    28                                                @Value("${lhs : 1}") int lhs,
    29                                                @Value("${rhs : 1}") int rhs,
    30                                                @Value("${op : '+'}") char op){
    31         return args ->{
    32             calculator.calculate(lhs, rhs, op);};
    33     }*/
    34 }
    View Code

    2.  log

    3. spring mvc

      



    MockMvc test

     1 package org.techroad.springboot.practice.cp3_springMVC.example;
     2 
     3 import org.junit.jupiter.api.Test;
     4 import org.springframework.beans.factory.annotation.Autowired;
     5 import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest;
     6 import org.springframework.boot.test.mock.mockito.MockBean;
     7 import org.springframework.test.web.servlet.MockMvc;
     8 import org.springframework.test.web.servlet.result.MockMvcResultMatchers;
     9 
    10 import java.util.Arrays;
    11 import java.util.Optional;
    12 
    13 import static org.hamcrest.collection.IsCollectionWithSize.hasSize;
    14 import static org.hamcrest.collection.IsIterableContainingInAnyOrder.containsInAnyOrder;
    15 import static org.hamcrest.core.IsEqual.equalTo;
    16 
    17 import static org.mockito.ArgumentMatchers.anyString;
    18 import static org.mockito.Mockito.when;
    19 
    20 import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
    21 import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath;
    22 import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
    23 
    24 @WebMvcTest(BookController.class)
    25 class BookControllerTest {
    26 
    27     @Autowired
    28     private MockMvc mockMvc;
    29 
    30     @MockBean
    31     private BookService bookService;
    32 
    33     @Test
    34     public void shouldReturnListOfBooks() throws Exception{
    35         when(bookService.findAll()).thenReturn(
    36                 Arrays.asList(
    37                         new Book("123","Spring 5 Recipes", "Marten denium, Josh long"),
    38                         new Book("345","Pro spring mvc","Marten")
    39                 )
    40         );
    41 
    42         mockMvc.perform(get("/books"))
    43                 .andExpect(status().isOk())
    44                 .andExpect(jsonPath("$",hasSize(2)))
    45                 .andExpect( jsonPath("$[*].isbn",containsInAnyOrder("123","345")))
    46                 .andExpect( jsonPath("$[*].title",containsInAnyOrder("Spring 5 Recipes","Pro spring mvc")));
    47     }
    48 
    49     @Test
    50     public void shouldReturn404WhenBookNotFound() throws Exception{
    51         when(bookService.find(anyString())).thenReturn(Optional.empty());
    52 
    53         mockMvc.perform(get("/book/123")).andExpect(
    54                 status().isNotFound()
    55         );
    56     }
    57 
    58     @Test
    59     public void shouldReturnBookWhenFound() throws Exception{
    60         when(bookService.find(anyString())).thenReturn(
    61                 Optional.of(
    62                         new Book("123", "Spring 5 Recipes", "Marten")
    63                 )
    64         );
    65 
    66         mockMvc.perform(get("/books/123"))
    67                 .andExpect(status().isOk())
    68                 .andExpect(jsonPath("$.isbn",equalTo("123")))
    69                 .andExpect( jsonPath("$.title",equalTo("Spring 5 Recipes")));
    70     }
    71 
    72 }

    2. thymeleaf config

    resources/templates/  xx.html

    模型中包含错误页面的属性

    timestamp 错误发生的时间

    status 状态代码

    error 错误原因

    exception 根异常的类名(如果已配置)

    message 异常消息

    errors  由 BindingResult 产生的任何 ObjectError 对象(仅当使用了消息绑定或消息验证时)

    trace 异常堆栈跟踪信息(如果已配置)

    path 引发异常的 URL 路径

    由 ErrorAttributes 组件提供, SpringBoot 默认 defaultErrorAttributes, 可自定义或扩展。

  • 相关阅读:
    EntityFramework系列:MySql的RowVersion
    EntityFramework系列:SQLite.CodeFirst自动生成数据库
    怎么回事呢?
    为蛇么不现实
    发布到个人主页
    作别
    budao 首页
    中午吃饱了
    作业写好了吗?
    分类
  • 原文地址:https://www.cnblogs.com/masterSoul/p/13464063.html
Copyright © 2011-2022 走看看