IDEA でコードを書く際には、同じコードを繰り返し書くことがよくあり、非常にイライラします。
IDEA には Live Template 機能が組み込まれており、組み込みのコードのショートカットだけでなく、独自の Live Template をカスタマイズすることもできます。
カスタムコマンド#
いくつかのコマンドをカスタマイズできます。 IDEA の設定を開き、Live Template を見つけて、右側に追加します。まず、自分のグループを追加できます。たとえば、私は「My Live」というグループを追加しました。その後、具体的な設定を追加します。
設定の Live Template
変数は$$
で囲むことで、IDEA が変数であることを認識します。変数は右下の「変数の編集」で値を設定できます。
その中で、「Expression」列には変数に対する計算方法を設定できます。たとえば、className()
とすると、CLASS
変数は現在のクラス名になります。また、「Default value」でデフォルト値を指定することもできます。最後の列は、チェックを入れると、変数が値を計算した場合にはユーザーに入力を求めずに使用されます。
以下は私が使用しているいくつかの例です。
logger の定義#
テンプレートテキスト
private static final Logger logger = LoggerFactory.getLogger($CLASS$.class);
変数
名前 | 式 | デフォルト値 | 定義済みの場合はスキップ |
---|---|---|---|
CLASS | className() | ☑️ |
効果
logger の定義
ModelAndView を返す#
テンプレートテキスト
@RequestMapping("/$NAME$.html")
public ModelAndView $NAME$(HttpServletRequest request, HttpServletResponse response) {
logger.info("****************$CLASS$:$NAME$ 開始****************");
logger.info("****************$CLASS$:$NAME$ 終了****************");
return new ModelAndView("$NAME$/$NAME$");
}
変数
名前 | 式 | デフォルト値 | 定義済みの場合はスキップ |
---|---|---|---|
NAME | |||
CLASS | className() | ☑️ |
効果
ModelAndView を返す(URL パラメータあり)#
テンプレートテキスト
@RequestMapping("/$NAME$/{$PATHVARIABLE$}.html")
public ModelAndView $NAME$(@PathVariable("$PATHVARIABLE$") String $PATHVARIABLE$, HttpServletRequest request, HttpServletResponse response) {
logger.info("****************$CLASS$:$NAME$ 開始****************");
logger.info("****************$CLASS$:$NAME$ 終了****************");
return new ModelAndView("$NAME$/$NAME$");
}
変数
名前 | 式 | デフォルト値 | 定義済みの場合はスキップ |
---|---|---|---|
NAME | |||
PATHVARIABLE | |||
CLASS | className() | ☑️ |
効果
新しい Controller を作成する#
テンプレートテキスト
@RestController
public class $ControllerName$Controller {
private static final Logger logger = LoggerFactory.getLogger($ControllerName$Controller.class);
/**
* $viewName$
*/
@RequestMapping("/$viewName$.html")
public ModelAndView $viewName$(HttpServletRequest request, HttpServletResponse response) {
logger.info("****************$ControllerName$Controller:$viewName$ 開始****************");
logger.info("****************$ControllerName$Controller:$viewName$ 終了****************");
return new ModelAndView("$viewName$/$viewName$");
}
}
変数
名前 | 式 | デフォルト値 | 定義済みの場合はスキップ |
---|---|---|---|
ControllerName | |||
viewName |
効果
組み込みコマンド#
組み込みのコマンドを使用して、テンプレート形式で文を補完することもできます。たとえば、ループ文(for、foreach)、String.format () で文字列を囲む、型変換で式を囲む、(非)null チェックやその他の条件文に基づいて if 文を生成する、instanceOf を使用して分岐判断文を生成するなどがあります。使用方法も非常に簡単で、式の後にドット。を押し、いくつかのヒントを入力するか、リストから候補を選択します。一般的な候補には GIF のデモが表示されます。