首页 > 其他 > 详细

脱坑笔记

时间:2019-04-06 23:00:47      阅读:136      评论:0      收藏:0      [点我收藏+]

 

 技术分享图片

任何被设置初始大小的数组都是不为null的

 

 

 

 

 


 

今天写一个牛客网上面的编程题,犯了一个最不应该犯的错误

String中的“equals()”和“==”,自己像傻子一样一直使用==判断两个的地址,在这里顺便复习一下String中的常量池。

 


 

 

昨天出现springboot和eureka结合时候出现个问题,

程序毫无任何错误输出的情况下结束进程,控制台打印

process exit with code 1

百度了好久没找到,最后在GitHub上找到了,老外自己debug出来的,看来以后自己要学着找bug

最后按照老外的加上下面日志包,程序奇迹般的好使了

<dependency>
    <groupId>net.logstash.logback</groupId>
    <artifactId>logstash-logback-encoder</artifactId>
    <version>4.7</version>
</dependency>

但是回头想去找错误的时候,将这个依赖注释掉重启服务,尴尬的是服务没毛病,重启了还是一样正常,我只记得上一步自己在maven工程中加入了一个.iml文件。因为工程不知道为什么没生成这个文件,里面存放的是maven的配置信息。

 

老外debug显示是相关的日志包不对,将springboot中的日志包去除,自己手动加上日志包。相关的配置如下

<dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-hateoas</artifactId>
            <version>${spring.boot.version}</version>
            <exclusions>
                <exclusion>
                    <groupId>ch.qos.logback</groupId>
                    <artifactId>logback-core</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>ch.qos.logback</groupId>
                    <artifactId>logback-classic</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-batch</artifactId>
            <version>${spring.boot.version}</version>
            <exclusions>
                <exclusion>
                    <groupId>ch.qos.logback</groupId>
                    <artifactId>logback-core</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>ch.qos.logback</groupId>
                    <artifactId>logback-classic</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-core</artifactId>
            <version>1.2.3</version>
        </dependency>
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
            <version>1.2.3</version>
        </dependency>
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-access</artifactId>
            <version>1.2.3</version>
        </dependency>
        <dependency>
            <groupId>net.logstash.logback</groupId>
            <artifactId>logstash-logback-encoder</artifactId>
            <version>4.11</version>
        </dependency>
</dependencies>

 

最后贴上老外的地址  https://github.com/logstash/logstash-logback-encoder/issues/243

 


 

今天使用eureka时候出现一个问题就是在使用json反序列化的时候必须有默认的构造函数,否则就会报错,错误忘记截图了,下次一定先贴截图

 


 

generate-ddl生成表结构

 


 

 

有个就是所有的类在声明的时候必须初始化,否则没有办法使用

技术分享图片

因为查询结果是空,friend任然是个空指针,必须初始化,才能在下面使用

 


拦截器的设置

@Component
public class JwtIntercepter implements HandlerInterceptor {


@Autowired
private JwtUtil jwtUtil;

@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {

String header=request.getHeader("Authorization");

if(header!=null&&!"".equals(header)&&header.startsWith("Bearer ")){
String token=header.substring(7);
try{

Claims claims=jwtUtil.parseJWT(token);
String roles= (String) claims.get("roles");
if(roles!=""&&roles.equals("admin")){
request.setAttribute("claims_admin",claims);
}
if(roles!=null&&roles.equals("user")){
request.setAttribute("claims_user",claims);
}
}catch(Exception e){
e.printStackTrace();
}
return true;
}
return false;
}
}

注意拦截器最后的设置。重写方法需要注意是不是写错了

 


 

注意在循环或者递归的时候一定注意对象是否为空,添加对应防止对象是空情况下的处理 

public class Solution {


    private boolean funSymmetric(TreeNode l,TreeNode r){
        if(l==null&&r==null){
            return true;
        }
        if(l==null||r==null){
            return false;
        }
        if(l.val!=r.val){
            return false;
        }else{
            return funSymmetric(l.left,r.right)&&funSymmetric(l.right,r.left);
        }
    }
    boolean isSymmetrical(TreeNode pRoot)
    {
        if(pRoot==null){
            return true;
        }
        return funSymmetric(pRoot.left,pRoot.right);

    }
}

 


 

 使用zuul网关的时候注意需要在添加的过滤器上添加@Component注解


 

 

一个关于maven的错误 ,出现红色波浪线(unresolved dependency),解决办法之一就是删除pom文件中的依赖,在重新写入,对于自己写的工程需要使用mvn clean一下在mvn install一下。还有一个在搜索问题的时候有人建议导入工程时候使用open,在Structure中在设置,如果你是直接复制的项目文件夹  你要点 open  不要点 import project。  原因好像是如果 点了import project按照向导设置到最后,就会多出一个main工程,所有的依赖都会在main工程下找,main工程是你刚创建的肯定是空的,所以肯定会报错了。  要确实想import project,你需要去Project Structure 下的Modules里,把你原项目下的所有包都加进main下就好了

 

 

 

 

 

脱坑笔记

原文:https://www.cnblogs.com/feixiangdecainiao/p/10440428.html

(0)
(0)
   
举报
评论 一句话评论(0
分享档案
最新文章
教程昨日排行
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!