入門
オンラインこの文はあなたに共有に非常に興味深いです参照、この文は次のとおりです。あなたは、景色を見て本を、読んで音楽を聴いて、通りを歩いて愛し隠されたコードを書きました人々。それは冗談ですが、それはまた、あなたが自己の要求と激励のために書くことをクリーンでエレガントなコードを反映しているが。
開始からBenpianが、私はの使用について書きますSpringBoot
練習のコードをきれいにする方法を、記事のプロジェクトの開発のシリーズ。不正なコードがないだけでBUG
、百チームの発展と拡大を助長されていません。そのため、クリーンでエレガントなコードの作成は、将来の拡張にも資する開発チームの効率を提供することはできません。以下、より考えて、より多くの思考をコーディングコード少ないです
- グローバル例外ハンドラ
- 概要
まず、グローバル例外ハンドラ
図1に示すように、ハンドル例外@RestControllerAdviceアノテーションを使用して
(1)定義された例外クラス
public class ProgramException extends RuntimeException{
//错误码
private String code;
//错误信息
private String msg;
public ProgramException(String code, String msg) {
this.code = code;
this.msg = msg;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
}
(2)グローバルレスポンスオブジェクトを定義
public class ReponseData {
//错误码
private String code;
//错误信息
private String msg;
//响应数据
private Object data;
public ReponseData(String code, String msg, Object data) {
this.code = code;
this.msg = msg;
this.data = data;
}
public ReponseData(String code, String msg) {
this.code = code;
this.msg = msg;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public Object getData() {
return data;
}
public void setData(Object data) {
this.data = data;
}
(3)グローバル例外ハンドラを定義します
@RestControllerAdvice
public class BusinessServiceExceptionHandler {
private Logger logger = LoggerFactory.getLogger(BusinessServiceExceptionHandler.class);
@ExceptionHandler(ProgramException.class)
@ResponseStatus(ProgramException.class)
public ResponseData handleException(ProgramException e, HttpServletRequest req){
return new ResponseData(e.getCode(), e.getMsg());
}
}
比較は統一繧フロントエンドを提供するために、この方法では、単純な、分離の特に今フロントエンド、インターフェースの後端部を使用することを推奨例外が発生した場合、エラーメッセージが統一され、例外ハンドラにより返されてもよいです。
2、グローバルな例外処理を使用してSimpleMappingExceptionResolver
@Configuration
public class GlobalExceptionResolver extends SimpleMappingExceptionResolver{
private static Logger log = LoggerFactory.getLogger(GlobalExceptionResolver.class);
public GlobalExceptionResolver() {
setOrder(0);
}
第二に、要約
クリーンコードは、いくつかのシステム・レベルなど、実際のプロジェクトの事業コード、だけでなく、。システムレベルのコードのクリーン度に属するグローバル例外ハンドラ。私たちは都市よりも多くの私たちのプロジェクトを行った場合、その後、同様のグローバル例外ハンドラ、インターセプターなどは、市の排水システム、ケーブル管理などに相当します。これらの施設は、都市全体の機能に直接影響して配置しました。そして、プロジェクトレベル、システムレベルとクリーンなコードはプロジェクトがより効率的に実行できるようにすることです。