ulog

axios-+-spring-boot-前后端交互

axios-+-spring-boot-前后端交互

Content-Type: application/x-www-form-urlencoded 提交的数据无法自动装配成复杂对象 我所指的复杂对象是表单的值是一个对象或者数组,比如我新写了一篇博文(Post),博文中包含两个标签[{name: 'tag0'}, {name: 'tag1'}],注意这里将文章和标签的关系假设成一对多,而非多对多。要发表的文章: { title: 'title test', content: 'content test', tag: [{name: 'tag0'}, {name: 'tag1'}] } 此时如果拼接url传值的方式,必定要把tag的value转换成字符串,如果直接拼接会得到结果 url?title="title test"&content="
ray

一般开发

突然报错 java.lang.ArrayIndexOutOfBoundsException: 10 描述,也不记得改过什么,所有的请求都报错,和数据库交互的请求基本都带着这个ArrayIndexOutOfBoundsException。 再版本控制中查看了所有代码,都不可能产生这个错误,突然想到我手动改了数据库中的数据,原来我的用户性别java里是个枚举类型(只有0、1、2),我想把年龄改成10岁误把性别改成了10。所以报ArrayIndexOutOfBoundsException错误还可能是枚举类型里的属性越界了。
ray

数据库设计

文章标签的设计 理论上,文章post和标签tag是多对多的关系,这样需要一张关系表post_tag来维护两者的关系,因为tag表简单只有一个属性name,不如臆想成一个文章对应多个标签,这样一来,在牺牲少量空间的情况下可以少维护一张表,也更方便统计和操作。 JsonMappingException: Infinite recursion (StackOverflowError) 文章和作者之间时多对一关系 // Post.java 实体中有 @ManyToOne(cascade = {CascadeType.MERGE, CascadeType.REFRESH}, optional = false) private User author; // User.java实体中有 @OneToMany(mappedBy = "author", cascade = CascadeType.ALL, fetch = FetchType.EAGER) private Set<Post> posts; controller直接返回文章实体,
ray

项目部署

aginx到tomcat,能访问到index.html, 但是找不到css、js等文件 给静态文件所在目录一个指引 location ~ .*\.(gif|jpg|jpeg|bmp|png|ico|txt|js|css)$ { root /www/webs/unwi/ulog/WEB-INF/classes/static; expires 12h; } nginx配置expires后静态文件404 添加配置类WebsocketConfig,调试时不报错,打包时报错,Error creating bean with name 'serverEndpointExporter' 问题 先说解决办法: 在SpringBootTest后加上(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) 即可 原因:websocket是需要依赖tomcat等容器的启动。所以在测试过程中我们要真正的启动一个tomcat作为容器。
ray