实习随笔

今日任务,跟我讲公司的一个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的方式,创建对象。
  • 遇到空指针,可以检查一下自己创建的对象有没有进行初始化。

Java中new关键字

代码写好,要用另一台电脑访问端口,就去查了一下怎么关闭防火墙打开指定端口。
然后要导成jar包,eclipse的导jar包过程折腾了很久。
maven clean和maven install总有一个失效。有一个原因是eclipse中同时使用了jdk和jre,所以要移除jre。
以及出现了springboot没找到主类的情况,是因为我把它的application移动位置了。

posted @ 2021-03-04 10:28  张三丰学Java  阅读(63)  评论(0编辑  收藏  举报