spring boot 中启用 https

背景

年末公司要进行年终促销. 上一周时间都在弄年底促销的玩意. 因为用到了第三方的交易服务. 他们的 webhook 要求接口必须是 https. 之前没有自己搞过 https. 刚好学习, 然后记录下来.

获取证书

https 是加密链接. 是需要证书的. 那么证书从哪里取得呢? 在本地测试的时候, 可以自己生成一个 tomcat 的证书, 可以本地测试用.

生成方式配置方式见下面:

阅读剩余部分 -

spring-boot之application.properties中配置项

本文记录的是spring boot的application.properties中的几乎所有配置项。
仅供以后参考。

[pdfjs-shortcode pdf_width=100% pdf_height=500px pdf_download=true pdf_print=true pdf_openfile=false]http://blog.hanbinit.com.cn/usr/uploads/2016/09/spring-boot-application-properties.pdf[/pdfjs-shortcode]

spring-boot官方没有提供mybatis的整合方案,mybatis提供了Spring-Boot-Starter 来将mybatis整合到spring-boot中去。

针对本文,补充spring-boot中的application.properties中和mybatis相关的几个配置项:
QQ20160903-0@2x

spring boot整合mybatis时找不到Mapper

spring boot整合mybatis的时候,使用注解方式时ok.
但是使用xml配置的时候出现了点问题。
错误描述

org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): cn.com.hanbinit.mapper.UserMapper.findUserInfo

提示找不到Mapper接口中的方法。可是多次检查这个地方都没有问题的。

经过多次试验,在application.properties中添加了如下配置,运行ok。

mybatis.mapper-locations=classpath:/mybatis/*Mapper.xml  
mybatis.type-aliases-package=cn.com.hanbinit.domain  

spring boot做单元测试时中文乱码

初接触spring boot, 单元测试时发现用例失败了.
测试代码如下:

@Test
public void testHello() throws Exception{
mvc.perform(MockMvcRequestBuilders.get("/hello").accept(MediaType.APPLICATION_JSON))
.andExpect(status().isOk())
.andExpect(content().string(equalTo("Hello, 你好...")));
}

unit显示失败:

06BC0F05-8FAD-4023-856B-F802E62F5FB4

可以看出, 是因为返回的中文乱码了.

尝试了好多方法, 才发现问题不在spring本身.
将上面的代码改成

@Test
public void testHello() throws Exception{
mvc.perform(MockMvcRequestBuilders.get("/hello").accept(MediaType.APPLICATION_JSON_UTF8))
.andExpect(status().isOk())
  .andExpect(content().string(equalTo("Hello, 你好...")));
}

就可以了.

0A674A5C-5AA4-467C-AA92-2A8EEDC47E94

至此, 问题圆满解决.

mysql 修改unique key

mysql可以使用unique key来确保数据的准确性,unique key可以是一个字段,也可以是多个字段.

对应已经存在的unique key如何修改呢?目前我使用的方法是分两步来完成,先drop掉,然后在创建。

需要注意的是drop时关键字是“index”,而创建时关键词是“unique key”,命令如下:

先使用show create table xxx语句查看当前unique key的名称.

然后drop掉, 再add.

show create table tb_device;
alter table tb_device drop index `idx_mac`;
alter table tb_device add unique key `idx_mac` (`mac`,`type`);