ssm开发经历汇总
Posted dmzxxmeng
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ssm开发经历汇总相关的知识,希望对你有一定的参考价值。
1、@webfilter注解配置的filter中用到某个bean
自定义的filter需要实现filter接口,并重写init()、doFilter()、destroy()方法
因为spring框架是先加载filter类,再加载其他bean,所以,若在自定义filter中的bean采用自动装配方法(@Autowired)或者是在init()方法中调用(ApplicationContext) context.getBean(),此时的bean由于还没有开始加载,所以filter中的对bean的引用为Null, 若在之后的doFilter()中调用该bean的方法,将会抛出NullPointerException异常;
解决方案:对bean的装配在调用时才进行装配,因为所有调用需在所有bean实例化之后才能进行。所以待使用时配备bean,此时的bean已经加载完成,能通过(ApplicationContext) context.getBean()获得该bean的唯一实例。
2、ip过滤问题
在写ip过滤代码后,需要使用多个ip进行过滤测试,第一个想到的是用docker容器,因为docker能方便地产生多个容器,且会自动为不同容器分配的唯一ip,这样满足多个ip测试代码的需求。
但是,容器内程序访问外部地址时需要进行NAT转换,外部程序是无法访问容器ip的,容器的ip相当于对内网ip的再分配,它们对外的源地址ip统一为宿主机的ip,只不过每一个容器ip对应不同的服务端口。这样,就不能满足多ip测试的需求了。
3、发包和接包(HTTP请求)工具
进行后端开发工作,最常做的事情当然是发包和接包了,如果有图形界面的话,Postman无疑是个很好的选择。
但是,如果没有图形界面的环境,比如,需要在docker容器中进行发包和接包,curl命令则非常好用。
若发送post请求,格式为curl -X POST url ( PS: 其实get和post在url中都可以携带明文请求参数 ) -d "query1=what&query2=what..." (这是POST请求的非明文请求参数);
如果想用POST发送JSON文件请求,需要加上命令参数 -H "Content-Type:application/json" , POST的请求格式也变成JSON格式;
例如,curl -H "Content-Type:application/json" -X POST http://localhost:8080/api/city?query1=test1&query2=test2&query3=test3 -d ‘ "id":"3", "provinceId":"3", "cityName":"zhuhai", "description":"live in zhuhai"‘
以上是关于ssm开发经历汇总的主要内容,如果未能解决你的问题,请参考以下文章
阿里内部全新21版SpringBoot开发手册,GitHub上Star数已破120K+