实习随笔
今日任务,跟我讲公司的一个Delphi应用的token有bug,
然后我去了解了一下Delphi是什么东西,Pascal语言的语法规则,还有token的概念以及jwt
编写一个接口服务,向外提供2个接口。
一个提供给Delphi应用(用来传出数据),另一个提供给厂商(用来传入数据)。
然后写一个实体类和service层。
拿到的数据做一个临时缓存方便测试,因为没有链接数据库,所以直接用了ArrayList。(一开始想着用springboot的缓存注解,就去查了一下springboot的缓存注解)
本来的需求是要用一个队列,但是我不会。
因为只需要传出一个数据,所以后面改为了返回单个实体类对象。
一开始controller层的两个接口都是无脑抛null,然后需求是返回一个JSON,才想起来要封装一个JSON工具类。直接拷贝了之前项目中的JsonResult类。
/**
* 封装服务器返回的json数据
*/
public class JsonResult<T> {
private Integer state;
private String msg;
private T data;
public static JsonResult<Void> getSuccessJR(){
return new JsonResult<>(1000,"OK");
}
public static <T> JsonResult<T> getSuccessJR(T data){
return new JsonResult<>(1000,"OK",data);
}
public JsonResult() {
}
public JsonResult(Integer state, String msg) {
this.state = state;
this.msg = msg;
}
public JsonResult(Integer state, String msg, T data) {
this.state = state;
this.msg = msg;
this.data = data;
}
public Integer getState() {
return state;
}
public void setState(Integer state) {
this.state = state;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public T getData() {
return data;
}
public void setData(T data) {
this.data = data;
}
@Override
public String toString() {
return "JsonResult{" +
"state=" + state +
", msg='" + msg + '\'' +
", data=" + data +
'}';
}
}
在这过程中,麻烦的点在于之前不怎么使用eclipse。所以要熟悉eclipse的开发过程。
先是查了一下eclipse怎么使用spring boot开发,
安装过程中,遇到了spring官方编辑器STS的SocketTimeoutException: connect timed out问题
解决方法是使用阿里云的镜像地址
这个方式是修改超时时间的限制,在设置的spring/Beans Support进行设置,把60改为600
在报错的地址栏切换成阿里云的地址就可以轻松解决:https://start.aliyun.com/
然后查一下eclipse的自动提示,替换代码,乱码问题
总是会遇到eclipse开启某个项目然后关闭后端口号被占用的情况
编程过程中先遇到了java.lang.IllegalStateException,要把传入的基本数据类型参数换成对应的包装类。
然后遇到了空指针异常,是因为没有实例化对应类。
Profile resProfile=null; // 对象 = null 指向到一个空地址,只是声明了一个对象的引用,并没有在jvm中开辟内存,已进行存储。
Profile resProfile=new Profile(); //指向的一个具体的对象,对象需要空间存放的。在对象引用的时候,会将对象的内存地址传给引用的对象,以进行存储
- 如果是自己创建的对象,需要自己去读取操作数据,就需要通过new的方式,进行实例化给这个对象分配内存并返回一个指向该内存的引用,并且会调用其构造函数进行初始化。
如果是接收其他地方的传值,可以不通过new的方式,创建对象。 - 遇到空指针,可以检查一下自己创建的对象有没有进行初始化。
代码写好,要用另一台电脑访问端口,就去查了一下怎么关闭防火墙打开指定端口。
然后要导成jar包,eclipse的导jar包过程折腾了很久。
maven clean和maven install总有一个失效。有一个原因是eclipse中同时使用了jdk和jre,所以要移除jre。
以及出现了springboot没找到主类的情况,是因为我把它的application移动位置了。