https://www.gravatar.com/avatar/8613a75479af50c38344107afb4e9a1f?s=240&d=mp

无糖拿铁

定制Java中的Validation

Java Validation简介

javax.validation包提供了大量用于验证数据的API工具,可以帮助开发者方便的检验程序的输入输出。最近刚刚接触到这方的知识,还只知道使用其提供的注解工具。

SpringMVC中Controller的测试

参考 http://www.jianshu.com/p/ad7995332dd9

controller:

@Controller
@RequestMapping("/system")
public class SysMapController {

    @Autowired
    private FirstSysMapService firstSysMapService;//注入Service

    @RequestMapping(value = "/first/map",
            method = RequestMethod.GET,
            produces = {"application/json;charset=UTF-8"})
    @ResponseBody//响应类型为`json`
    public List<FirstSysMap> getMap() {
        List<FirstSysMap> map = firstSysMapService.findMap();
        return map;
    }
}

test:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration({"classpath:spring/spring-dao.xml",
        "classpath:spring/spring-service.xml",
        "classpath:spring/spring-web.xml"})
@WebAppConfiguration//没搞懂,应该是注入`web`上下文的意思
public class SysMapControllerTest {

    @Autowired
    private SysMapController mapController;

    @Autowired
    private ServletContext context;

    private MockMvc mockMvc;//`springMVC`提供的`Controller`测试类,不需要再去单独依赖`mockito`

    @Before
    public void setup() {
        //应该是把`Controller`加入测试环境的意思
        mockMvc = MockMvcBuilders.standaloneSetup(mapController).build();
    }

    @Test
    public void getMap() throws Exception {
        //发起请求,`accpet`设定接收的数据类型
        ResultActions actions = mockMvc.perform(MockMvcRequestBuilders.get("/system/first/map")
                .accept(MediaType.APPLICATION_JSON_UTF8)
        );
        //获取`response`
        MvcResult result = actions.andReturn();

        String res = result.getResponse().getContentAsString();

        System.out.println("-----------response:" + res);
    }

}

「JavaScript 语言精粹」读书笔记--函数

函数对象

JavaScript中函数就是对象. 函数对象连接到Function.prototype.

当把一个函数当作构造函数(使用new关键字)使用时, 新创建的对象的原型就是该函数的prototype对象. 我们可以通过给prototype设置属性而达到让该类对象拥有同样的公共属性的目的.

「Java 8 函数式编程」读书笔记——高级集合类和收集器

本章是该书的第五章, 主要讲了方法引用和收集器

方法引用

形如:

artist -> artist.getName()
(String arg) -> arg.length()

这样的表达式, 可以简写为:

Artist::getName
String::length

这种简写的语法被称为方法引用. 方法引用无需考虑参数, 因为一个方法引用可以在不同的情况下解析为不同的Lambda表达式, 这依赖于JVM的推断.