Java的bug修复和注意事项

一、bug修复

步骤:1、定位bug的位置 2、看懂该方法的每一个步骤、涉及到的数据库、接口类等 3、对可疑步骤进行调试 4、查看git提交历史   5、修改错误代码  6、通过git提交

例如:解决非管理员账户无法访问题库的bug

1、定位到指定questionlib.java  2、涉及到emp_data数据库 3、通过debug一下发现查询语句出现问题,错误的使用数据库没有的数据按条件去查询  4、查看Git的提交历史为:暂时提交代码5、解决办法是将多余的那行代码删除6、通过 git pull 上去

注意事项:

1、切面(Aspect)不要加构造方法

2、Unable to open debugger port (127.0.0.1:57046): java.net.SocketException

解决办法:关闭某个Tomcat服务器

3、[ERROR][0000][null: [Ljava.lang.StackTraceElement;@23a264b8]

一般是填写表单时少了某个数据

4、[java.lang.IllegalStateException: Expected a string but was BEGIN_ARRAY at line 1 column 50: [Ljava.lang.StackTraceElement;@f4d35db]

解决办法:按对方需求的数据格式提交数据

5、java.lang.IllegalStateException: Expected a string but was BEGIN_OBJECT at line 1 column 73

解决办法: JSON.parseObject(result.readToText(), type);

6、接口提示ColorlifeResponseEntity(code=405, message=入职部门UUID为必填, content=[])

也许是你url写错了

7、@Autowired

private EmpRepositoryempRepository;提示bean错误

可能是你的services没有写注解,也可能是你没加

@Resource

@BaseComp

8、SELECT start_id,end_id,sum(od_count) od_count FROM $1

表名作为参数时不能用#{tablename},只能用${tablename}

二、专业术语

1、AOP

AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。

2、Restful Api-接口设计

特征

(1) 每一个uri代表一种资源;

(2) 客户端和服务器之间,传递这种资源的某种表现层;

(3) 客户端通过四个HTTP动词(GET、POST、DELETE、PUT),对服务器端资源进行操作,实现"表现层状态转化"(增删改查)。

(4) URL中通常不出现动词,只有名词

(5) 使用JSON不使用XML

设计方式

HEAD(SELECT)只获取某个资源的头部信息

GET(SELECT)获取资源

POST(CREATE)创建资源

三、其他技巧

1、java中带变量的json格式数据用string拼接示例

String json = "{" + "\"component_appid\":" + "\"" + componentConfig.getAppid() + "\"," + "\"component_appsecret\":" + "\"" + componentConfig.getAppsecret() + "\"," + "\"component_verify_ticket\":" + "\"" +componentConfig.getTicket() + "\"}";

System.out.println("返回json:"+json);

// String assets_config = "[" + "\"ASSET_ICON" + "\"," + "\"资产图标" + "\"," + "\"10\"" + "," + "0" + "," + "3" + "]";


四、框架

1、Spring

Spring框架是由于软件开发的复杂性而创建的。Spring使用的是基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅仅限于服务器端的开发。从简单性、可测试性和松耦合性角度而言,绝大部分Java应用都可以从Spring中受益。

2、Spring Boot

Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。 Spring Boot 其实不是什么新的框架,它默认配置了很多框架的使用方式,就像 Maven 整合了所有的 Jar 包,Spring Boot 整合了所有的框架。

3、Jwt

什么是jwt?

双方之间传递安全信息的简洁的、URL安全的表述性声明规范。JWT作为一个开放的标准(RFC 7519),定义了一种简洁的,自包含的方法用于通信双方之间以Json对象的形式安全的传递信息。简洁(Compact): 可以通过URL,POST参数或者在HTTP header发送,因为数据量小,传输速度也很快 自包含(Self-contained):负载中包含了所有用户所需要的信息,避免了多次查询数据库。


JWT架构图

 JWT的用法

客户端接收服务器返回的JWT,将其存储在Cookie或localStorage中。

此后,客户端将在与服务器交互中都会带JWT。如果将它存储在Cookie中,就可以自动发送,但是不会跨域,因此一般是将它放入HTTP请求的Header Authorization字段中。

Authorization: Bearer

当跨域时,也可以将JWT被放置于POST请求的数据主体中。

你可能感兴趣的:(Java的bug修复和注意事项)