{"id":179436,"date":"2021-10-01T08:55:10","date_gmt":"2021-10-01T07:55:10","guid":{"rendered":"https:\/\/blog.jetbrains.com\/?p=179436"},"modified":"2023-09-21T04:40:13","modified_gmt":"2023-09-21T03:40:13","slug":"ij20spring2","status":"publish","type":"post","link":"https:\/\/blog.jetbrains.com\/ja\/2021\/10\/01\/ij20spring2\/","title":{"rendered":"Spring \/ Spring Boot \u958b\u767a\u306e\u305f\u3081\u306e IntelliJ IDEA \u4fbf\u5229\u6a5f\u80fd\uff08\u5f8c\u7de8\uff09"},"content":{"rendered":"\u3053\u3093\u306b\u3061\u306f\u3001JetBrains\u5800\u5ca1\u3067\u3059\u3002\n\n\n\n\u3053\u306e\u8a18\u4e8b\u306f\u300cIntelliJ IDEA Spring Tips &amp; Tricks From The Trenches\uff08Marco Behler, 2021\uff09\u300d\u3092\u30d9\u30fc\u30b9\u306b\u3057\u305f IntelliJ IDEA Ultimate\u7248\uff08Community\u7248\u3068\u306e\u6bd4\u8f03\uff09 \u306e Spring \/ Spring Boot \u958b\u767a\u652f\u63f4\u6a5f\u80fd\u3092\u4f53\u9a13\u3059\u308b\u305f\u3081\u306e\u65e5\u672c\u8a9e\u30cf\u30f3\u30ba\u30aa\u30f3\u306e\u5f8c\u7de8\u3067\u3059\u3002\n\n\n\n\u524d\u7de8\u306e\u8a18\u4e8b\u306f\u4ee5\u4e0b\u3092\u3054\u89a7\u304f\u3060\u3055\u3044\u3002\n\n\n\nSpring \u958b\u767a\u306e\u305f\u3081\u306e IntelliJ IDEA \u4fbf\u5229\u6a5f\u80fd\uff08\u524d\u7de8\uff09\n\n\n\n\n\n\n\n\u76ee\u6b21\n\n\n\n\nRest Controller \u306e\u30c6\u30b9\u30c8\uff08Http \u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u3001\u30a8\u30f3\u30c9\u30dd\u30a4\u30f3\u30c8\u4e00\u89a7\u6a5f\u80fd\u306e\u7d39\u4ecb\uff09\n\n\n\nHTML template\uff08Thymeleaf\uff09\n\n\n\nSpring \u95a2\u9023\u306e\u30c4\u30fc\u30eb\u30a6\u30a3\u30f3\u30c9\u30a6\n\n\n\n\u307e\u3068\u3081\n\n\n\n\u305d\u306e\u4ed6\u306e\u53c2\u8003\u8cc7\u6599\n\n\n\n\n\n\n\n\nRest Controller \u306e\u30c6\u30b9\u30c8\uff08Http \u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u3001\u30a8\u30f3\u30c9\u30dd\u30a4\u30f3\u30c8\u4e00\u89a7\u6a5f\u80fd\u306e\u7d39\u4ecb\uff09\n\n\n\n\u307e\u305a\u306f REST API \u306e\u52d5\u4f5c\u78ba\u8a8d\u3084\u30c6\u30b9\u30c8\u306b\u6d3b\u7528\u3067\u304d\u308b\u3001IDE \u4e0a\u3067\u7c21\u5358\u306b\u5b9f\u884c\u53ef\u80fd\u306a HTTP \u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u6a5f\u80fd\u3092\u7d39\u4ecb\u3057\u307e\u3059\u3002\n\n\n\nRest Controller \u306e\u30b5\u30f3\u30d7\u30eb\u30b3\u30fc\u30c9\u3092\u66f8\u304d\u306a\u304c\u3089 IntelliJ IDEA \u306e\u4fbf\u5229\u6a5f\u80fd\u3092\u898b\u3066\u3044\u304d\u307e\u3057\u3087\u3046\u3002\u52d5\u753b\uff08\u82f1\u8a9e\uff09\u306f\u3053\u3061\u3089\u3067\u3059\u3002\n\n\n\n\u524d\u56de\u306e\u30cf\u30f3\u30ba\u30aa\u30f3\u306e\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306b \u4ee5\u4e0b\u306eUserController \u3068\u3044\u3046\u30af\u30e9\u30b9\u3092\u4f5c\u6210\u3057\u3001GET \u30ea\u30af\u30a8\u30b9\u30c8\u306e\u30a8\u30f3\u30c9\u30dd\u30a4\u30f3\u30c8\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002\n\n\n\nUserController.java\n\n\n\npackage com.example.ibj20spring;\n\nimport org.springframework.web.bind.annotation.GetMapping;\nimport org.springframework.web.bind.annotation.RestController;\nimport org.springframework.web.client.RestTemplate;\n\nimport java.util.List;\n\n@RestController\npublic class UserController {\n\n    private final UserService userService;\n\n    public UserController(UserService userService) {\n        this.userService = userService;\n    }\n\n    @GetMapping(\"\/users\")\n    public List&lt;User&gt; users() {\n        return userService.getUsers();\n    }\n}\n\n\n\n\u6b21\u306b IDE\u4e0a\u3067 Spring Boot \u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3092\u5b9f\u884c\u3057\u307e\u3059\u3002\u4ee5\u4e0b\u306e\u3044\u305a\u308c\u304b\u3067\u53ef\u80fd\u3067\u3059\u3002\n\n\n\n\n\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u30c4\u30fc\u30eb\u30a6\u30a3\u30f3\u30c9\u30a6\u3067 Ibj20springApplication.java \u30d5\u30a1\u30a4\u30eb\u3092\u53f3\u30af\u30ea\u30c3\u30af\u3057\u3001\u5b9f\u884c Ijb20springApplication \u3092\u9078\u629e\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\u307e\u305f\u306f\u3001\n\n\n\n\n\u753b\u9762\u4e0a\u90e8\u306e\u5b9f\u884c\u69cb\u6210\u30c0\u30a4\u30a2\u30ed\u30b0\u3067\u300cIbj20springApplication\u300d\u304c\u9078\u629e\u3055\u308c\u3066\u3044\u308b\u3053\u3068\u3092\u78ba\u8a8d\u3057\u3001&#x25b6;\ufe0e\u30dc\u30bf\u30f3\u3092\u30af\u30ea\u30c3\u30af\u3057\u307e\u3059\uff08\u307e\u305f\u306f \u30e1\u30cb\u30e5\u30fc\u306e \u5b9f\u884c | \u5b9f\u884c... \u304b\u3089\u300cIbj20springApplication\u300d\u3092\u9078\u629e\u3057\u3066\u5b9f\u884c\u53ef\u80fd\u3067\u3059\uff09\n\n\n\n\n\n\n\n\n\u307e\u305f\u306f\u3001\n\n\n\n\nIbj20springApplication\u30af\u30e9\u30b9\u307e\u305f\u306f main \u30e1\u30bd\u30c3\u30c9\u306e&#x25b6;\ufe0e\u30ac\u30bf\u30fc\u30a2\u30a4\u30b3\u30f3\u3092\u30af\u30ea\u30c3\u30af\u3057\u3066\u3082\u5b9f\u884c\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\u753b\u9762\u4e0b\u90e8\u306e\u300c\u5b9f\u884c\u300d\u30c4\u30fc\u30eb\u30a6\u30a3\u30f3\u30c9\u30a6\u3067 Spring Boot \u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u304c\u554f\u984c\u306a\u304f\u8d77\u52d5\u3057\u305f\u3053\u3068\u3092\u78ba\u8a8d\u3057\u307e\u3059\u3002\n\n\n\n\n\n\n\nREST API \u306e\u52d5\u4f5c\u3092\u78ba\u8a8d\u3059\u308b\u305f\u3081\u306b\u306f\u3001\u30d6\u30e9\u30a6\u30b6\u3084Postman\u7b49\u306eIDE\u5916\u306e\u30c4\u30fc\u30eb\u3067\u5fdc\u7b54\u3092\u78ba\u8a8d\u3059\u308b\u65b9\u3082\u591a\u3044\u3068\u601d\u3044\u307e\u3059\u304c\u3001IntellIJ IDEA \u3067\u3082\u76f4\u63a5\u78ba\u8a8d\u3059\u308b\u3053\u3068\u304c\u53ef\u80fd\u3067\u3059\u3002\u3044\u304f\u3064\u304b\u306e\u65b9\u6cd5\u304c\u3042\u308a\u307e\u3059\u306e\u3067\u3001\u9806\u756a\u306b\u898b\u3066\u3044\u304d\u307e\u3057\u3087\u3046\u3002\n\n\n\n\nUserController \u30af\u30e9\u30b9\u3067 @GetMapping \u3067\u6307\u5b9a\u3055\u308c\u305f\u30a8\u30f3\u30c9\u30dd\u30a4\u30f3\u30c8\u3067\u3042\u308b users \u30e1\u30bd\u30c3\u30c9\u306b\u8868\u793a\u3055\u308c\u3066\u3044\u308b\u30ac\u30bf\u30fc\u30a2\u30a4\u30b3\u30f3\u3092\u30af\u30ea\u30c3\u30af\u3057\u307e\u3059\n\n\n\n\u30dd\u30c3\u30d7\u30a2\u30c3\u30d7\u304c\u8868\u793a\u3055\u308c\u308b\u306e\u3067\u300cHTTP \u30ea\u30af\u30a8\u30b9\u30c8\u306e\u5b9f\u884c\u300d\u3092\u30af\u30ea\u30c3\u30af\u3057\u307e\u3059\n\n\n\n\n\n\n\n\n\n\n\n\nHTTP \u30ea\u30af\u30a8\u30b9\u30c8\u304c\u5b9f\u884c\u3055\u308c\u3001\u305d\u306e\u7d50\u679c\u304c\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u300c\u30b5\u30fc\u30d3\u30b9\u300d\u30c4\u30fc\u30eb\u30a6\u30a3\u30f3\u30c9\u30a6\u5185\u306b\u8868\u793a\u3055\u308c\u307e\u3059\u3002\u3053\u306e\u3088\u3046\u306b\u300cHTTP \u30ea\u30af\u30a8\u30b9\u30c8\u306e\u5b9f\u884c\u300d\u6a5f\u80fd\u306f REST \u30b3\u30f3\u30c8\u30ed\u30fc\u30e9\u30fc\u306e\u30a8\u30f3\u30c9\u30dd\u30a4\u30f3\u30c8\u3092\u6c17\u8efd\u306b\u5b9f\u884c\u3057\u3066\u7d50\u679c\u3092\u78ba\u8a8d\u3059\u308b\u305f\u3081\u306b\u4f7f\u7528\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002\n\n\n\n\n\n\n\n\n\n\n\n\u6b21\u306e\u6a5f\u80fd\u300cHTTP \u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u3067\u30ea\u30af\u30a8\u30b9\u30c8\u3092\u751f\u6210\u300d\u3092\u898b\u3066\u307f\u307e\u3057\u3087\u3046\u3002\n\n\n\n\n\u5148\u307b\u3069\u306e\u300cHTTP \u30ea\u30af\u30a8\u30b9\u30c8\u306e\u5b9f\u884c\u300d\u6a5f\u80fd\u3068\u540c\u69d8\u306b\u3001UserService \u30af\u30e9\u30b9\u306e users \u30e1\u30bd\u30c3\u30c9\u306e\u30ac\u30bf\u30fc\u30a2\u30a4\u30b3\u30f3\u3092\u30af\u30ea\u30c3\u30af\u3057\u307e\u3059\n\n\n\n\u4eca\u5ea6\u306f\u300cHTTP \u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u3067\u30ea\u30af\u30a8\u30b9\u30c8\u3092\u751f\u6210\u300d\u3092\u9078\u629e\u3057\u307e\u3059\n\n\n\n\u30b9\u30af\u30e9\u30c3\u30c1\u30d5\u30a1\u30a4\u30eb\u3068\u3057\u3066\u3001.http \u30d5\u30a1\u30a4\u30eb\u304c\u751f\u6210\u3055\u308c\u307e\u3059\u3002.http \u30d5\u30a1\u30a4\u30eb\u306f IntelliJ IDEA \u306e HTTP \u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u304c\u5b9f\u884c\u3059\u308b\u30d5\u30a1\u30a4\u30eb\u3067\u3001\u30c6\u30b9\u30c8\u306e\u305f\u3081\u306e HTTP \u30ea\u30af\u30a8\u30b9\u30c8\u3068\u305d\u306e\u5b9f\u884c\u7d50\u679c\u304c\u8a18\u9332\u3055\u308c\u307e\u3059\u3002\n\n\n\n\u4ee5\u4e0b\u306e\u4f8b\u3067\u306f users \u30e1\u30bd\u30c3\u30c9\u304c\u63d0\u4f9b\u3059\u308b\u30a8\u30f3\u30c9\u30dd\u30a4\u30f3\u30c8\u306b\u5bfe\u3059\u308b\u3001GET \u30ea\u30af\u30a8\u30b9\u30c8\u304c\u751f\u6210\u3055\u308c\u3066\u3044\u307e\u3059\u3002\n\n\n\n.http \u30d5\u30a1\u30a4\u30eb\u306e\u30b7\u30f3\u30bf\u30c3\u30af\u30b9 \u306b\u3042\u308b\u3088\u3046\u306b\u69d8\u3005\u306a\u30ea\u30af\u30a8\u30b9\u30c8\u306e\u5b9f\u884c\u304c\u53ef\u80fd\u3067\u3059\u3002\u52d5\u753b\uff08\u82f1\u8a9e\uff09\u3067\u306f IDE \u306b\u3088\u308b\u69d8\u3005\u306a\u30ea\u30af\u30a8\u30b9\u30c8\u4f5c\u6210\u652f\u63f4\u6a5f\u80fd\u3092\u7d39\u4ecb\u3057\u3066\u3044\u307e\u3059\u3002\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nHTTP \u30ea\u30af\u30a8\u30b9\u30c8\u5de6\u306b\u8868\u793a\u3055\u308c\u308b&#x25b6;\ufe0e\u30ac\u30bf\u30fc\u30a2\u30a4\u30b3\u30f3\u3092\u30af\u30ea\u30c3\u30af\u3001\u307e\u305f\u306f Option + Enter\/Alt + Enter \u3067 HTTP \u30ea\u30af\u30a8\u30b9\u30c8\u3092\u5b9f\u884c\u3067\u304d\u307e\u3059\u3002\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\u5b9f\u884c\u7d50\u679c\u306f\u3001\u300cHTTP \u30b5\u30fc\u30d3\u30b9\u30ea\u30af\u30a8\u30b9\u30c8\u306e\u5b9f\u884c\u300d\u540c\u69d8\u306b\u30b5\u30fc\u30d3\u30b9\u30c4\u30fc\u30eb\u30a6\u30a3\u30f3\u30c9\u30a6\u306b\u8868\u793a\u3055\u308c\u307e\u3059\u3002\u307e\u305f\u3001\u30ec\u30b9\u30dd\u30f3\u30b9\u51fa\u529b\u304c .idea\/httpRequests\/ \u4ee5\u4e0b\u306b\u4fdd\u5b58\u3055\u308c\u307e\u3059\u3002\n\n\n\n\u4ee5\u4e0b\u306e\u4f8b\u3067\u306f json \u30d5\u30a1\u30a4\u30eb\u304c\u4fdd\u5b58\u3055\u308c\u307e\u3059\u3002\n\n\n\n\u4ee5\u4e0b\u306e\u4f8b\u3067\u306f\u30012021-09-23T215915.200.json \u30d5\u30a1\u30a4\u30eb\u306b\u5bfe\u3057\u3066 Cmd + B \/ Ctrl + B \uff08\u5b9a\u7fa9\u30b8\u30e3\u30f3\u30d7\uff09\u3092\u5b9f\u884c\u3059\u308b\u3068\u3001\u4fdd\u5b58\u3055\u308c\u305f\u51fa\u529b\u7d50\u679c\u3092\u78ba\u8a8d\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\u8907\u6570\u56de\u5b9f\u884c\u3059\u308b\u3068\u3001\u7d50\u679c\u306f\u5225\u3005\u306b\u4fdd\u5b58\u3055\u308c\u307e\u3059\u3002\u3053\u306e\u6642\u306b\u3001\u51fa\u529b\u30d5\u30a1\u30a4\u30eb\u5de6\u306e\u30ac\u30bf\u30fc\u30a2\u30a4\u30b3\u30f3\u3092\u30af\u30ea\u30c3\u30af\u3057\u3066\u51fa\u529b\u7d50\u679c\u3092\u6bd4\u8f03\u3059\u308b\u3053\u3068\u3082\u53ef\u80fd\u3067\u3059\u3002\n\n\n\n\n\n\n\n\n\n\n\n.http \u30d5\u30a1\u30a4\u30eb\u306b\u30c6\u30b9\u30c8\u3059\u308b\u30ea\u30af\u30a8\u30b9\u30c8\u3092\u8ffd\u52a0\u3057\u305f\u3044\u5834\u5408\u306f\u3001.http\u30d5\u30a1\u30a4\u30eb\u4e0a\u90e8\u306e\u300c\u30ea\u30af\u30a8\u30b9\u30c8\u306e\u8ffd\u52a0\u300d\u304b\u3089\u884c\u3046\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002\u307e\u305f\u306f\u3001HTTP \u30ea\u30af\u30a8\u30b9\u30c8\u30d5\u30a1\u30a4\u30eb\u306f ### \u3092\u30ea\u30af\u30a8\u30b9\u30c8\u306e\u533a\u5207\u308a\u3068\u3057\u3066\u3001\u30c6\u30b9\u30c8\u3057\u305f\u3044 URL \u3092\u8ffd\u8a18\u3057\u3066\u3044\u304f\u3053\u3068\u3053\u3068\u304c\u53ef\u80fd\u3067\u3059\u3002\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\u306a\u304a\u3001.http \u30ea\u30af\u30a8\u30b9\u30c8\u30d5\u30a1\u30a4\u30eb\u306f\u30b9\u30af\u30e9\u30c3\u30c1\u30d5\u30a1\u30a4\u30eb\u3068\u3057\u3066\u751f\u6210\u3055\u308c\u308b\u305f\u3081\u3001\u30c7\u30d5\u30a9\u30eb\u30c8\u3067\u306fVCS\uff08Git\u7b49\uff09\u306b\u3088\u308b\u7ba1\u7406\u5bfe\u8c61\u5916\u3067\u3059\u3002\u30c6\u30b9\u30c8\u30b1\u30fc\u30b9\u3068\u3057\u3066\u7ba1\u7406\u5bfe\u8c61\u3068\u3057\u305f\u3044\u5834\u5408\u306f\u3001\n\n\n\n\n.http \u30d5\u30a1\u30a4\u30eb\u3092\u9078\u629e\u3057\u3066 \u30ea\u30d5\u30a1\u30af\u30bf\u30ea\u30f3\u30b0 | \u79fb\u52d5\uff08\u307e\u305f\u306f F6\uff09\u3067\u3001\u9069\u5207\u306a\u5834\u6240\u306b\u79fb\u52d5\u3055\u305b\u3066\u304a\u304d\u307e\u3057\u3087\u3046\u3002\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\u6b21\u306b\u300c\u30a8\u30f3\u30c9\u30dd\u30a4\u30f3\u30c8\u4e00\u89a7\u6a5f\u80fd\u300d \u3092\u898b\u3066\u3044\u304d\u307e\u3059\u3002\u305d\u306e\u305f\u3081\u306b\u3001UserController.java \u306b\u30a8\u30f3\u30c9\u30dd\u30a4\u30f3\u30c8\u3092\u8ffd\u52a0\u3057\u3066\u3082\u3046\u5c11\u3057\u8907\u96d1\u306b\u3057\u3066\u307f\u307e\u3059\uff08\u30b3\u30fc\u30c9\u81ea\u4f53\u306b\u306f\u3042\u307e\u308a\u610f\u5473\u306f\u306a\u3044\u306e\u3067\u3059\u304c\u3001IntelliJ IDEA \u304c\u30b3\u30fc\u30c9\u3092\u3069\u306e\u3088\u3046\u306b\u89e3\u91c8\u3059\u308b\u304b\u7406\u89e3\u3059\u308b\u305f\u3081\u306e\u3082\u306e\u3067\u3059\uff09\u3002\u82f1\u8a9e\u306b\u3088\u308b\u89e3\u8aac\u52d5\u753b\u306f\u3053\u3061\u3089\u3067\u3059\u3002\n\n\n\n\n\n\n\n    public UserController(UserService userService) {\n        this.userService = userService;\n    }\n\n    @GetMapping(\"\/users\")\n    public List&lt;User&gt; users() {\n        return userService.getUsers();\n    }\n\n    \/\/\u4ee5\u4e0b\u3092\u8ffd\u52a0\n    @GetMapping(\"\/admins\")\n    public List&lt;User&gt; admins() {\n        new RestTemplate().getForObject(\"http:\/\/localhost:8080\/users\", User.class);\n        return userService.getUsers();\n    }\n}\n\n\n\n\u3053\u3053\u3067\u3001@GetMapping(\"\/users\") \u30a8\u30f3\u30c9\u30dd\u30a4\u30f3\u30c8\u3092\u30af\u30ea\u30c3\u30af\u3057\u3066\u3001\u300c\u30e2\u30b8\u30e5\u30fc\u30eb\u306e\u5168\u3066\u306e\u30a8\u30f3\u30c9\u30dd\u30a4\u30f3\u30c8\u3092\u8868\u793a\u300d\u3092\u9078\u629e\u3057\u3066\u307f\u307e\u3057\u3087\u3046\u3002\n\n\n\n\n\n\n\n\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u3001\u30e2\u30b8\u30e5\u30fc\u30eb\u5185\u3067\u5b9a\u7fa9\u3001\u307e\u305f\u306f\u4f7f\u7528\u3055\u308c\u3066\u3044\u308b\u3059\u3079\u3066\u306e\u30a8\u30f3\u30c9\u30dd\u30a4\u30f3\u30c8\u304c\u8868\u793a\u3055\u308c\u307e\u3059\u3002\n\n\n\n\n\n\n\n\u8907\u96d1\u306a\u30b5\u30fc\u30d3\u30b9\u3067\u63d0\u4f9b\u3001\u5229\u7528\u3057\u3066\u3044\u308b\u30bf\u30a4\u30d7\u304c\u591a\u3044\u5834\u5408\u3001\u30a8\u30f3\u30c9\u30dd\u30a4\u30f3\u30c8\u306e\u30bf\u30a4\u30d7\uff08\u30b5\u30fc\u30d0\u30fc\u3001\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\uff09\u3092\u7d5e\u308a\u8fbc\u3080\u3053\u3068\u3082\u53ef\u80fd\u3067\u3059\u3002\n\n\n\n\n\n\n\n\n\n\n\n\u6700\u5f8c\u306b\u3061\u3087\u3063\u3068\u3057\u305f\u8c46\u77e5\u8b58\u3067\u3059\u3002Shift x 2 \uff08\u3069\u3053\u3067\u3082\u691c\u7d22\/Search Everywhere\uff09\u3067\u3001\u30a8\u30f3\u30c9\u30dd\u30a4\u30f3\u30c8\u306eURL\u3092\u691c\u7d22\u3059\u308b\u3068\u3001\u30a8\u30f3\u30c9\u30dd\u30a4\u30f3\u30c8\u3092\u5b9f\u88c5\u3057\u3066\u304f\u308c\u308b\u30e1\u30bd\u30c3\u30c9\u3092\u8868\u793a\u3057\u3066\u304f\u308c\u307e\u3059\u3002\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nHTML templates\uff08Thymeleaf\uff09\n\n\n\n\u3055\u3066\u6b21\u306f HTML template\uff08Thymeleaf\u30b5\u30dd\u30fc\u30c8\uff09\u306b\u3064\u3044\u3066\u7d39\u4ecb\u3057\u307e\u3059\u3002\n\n\n\n\u82f1\u8a9e\u306e\u52d5\u753b\u306f\u3053\u3061\u3089\u304b\u3089\u3054\u89a7\u3044\u305f\u3060\u3051\u307e\u3059\u3002\n\n\n\nsrc\/main\/resources\/templates \u4ee5\u4e0b\u306b home.html \u30d5\u30a1\u30a4\u30eb\u3092\u8ffd\u52a0\u3057\u307e\u3059\u3002Thymeleaf \u30b5\u30dd\u30fc\u30c8\u3092\u5229\u7528\u3059\u308b\u305f\u3081\u306b\u91cd\u8981\u306a\u70b9\u306f\u3001Thymeleaf \u306e\u30cd\u30fc\u30e0\u30b9\u30da\u30fc\u30b9\u5c5e\u6027\uff08xmlns:th=\"http:\/\/www.thymeleaf.org\uff09\u3092\u8ffd\u52a0\u3059\u308b\u3053\u3068\u3067\u3059\u3002\n\n\n\n&lt;!DOCTYPE html&gt;\n&lt;html lang=\"en\" xmlns:th=\"http:\/\/www.thymeleaf.org\"&gt;\n&lt;head&gt;\n    &lt;meta charset=\"UTF-8\"&gt;\n    &lt;title&gt;Title&lt;\/title&gt;\n&lt;\/head&gt;\n&lt;body&gt;\n\n&lt;\/body&gt;\n&lt;\/html&gt;\n\n\n\n\u6b21\u306b Java \u30b3\u30fc\u30c9\u3068\u3057\u3066 WebController \u3092\u8ffd\u52a0\u3057\u307e\u3059\u3002\u4ee5\u4e0b\u306e\u30b3\u30fc\u30c9\u3092\u30b3\u30d4\u30da\u3059\u308b\u306e\u3067\u306f\u306a\u304f\u3001\u30e9\u30a4\u30d6\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0\u306e\u69d8\u5b50\uff08\u82f1\u8a9e\uff09 \u3092\u898b\u3066\u30b3\u30fc\u30c9\u3092\u66f8\u3044\u3066\u307f\u308b\u3053\u3068\u3092\u304a\u52e7\u3081\u3057\u307e\u3059\u3002\n\n\n\nsrc\/main\/java\/com\/example\/ibj20spring\/WebController.java\n\n\n\npackage com.example.ibj20spring;\n\nimport org.springframework.stereotype.Controller;\nimport org.springframework.ui.Model;\nimport org.springframework.web.bind.annotation.GetMapping;\n\n@Controller\npublic class WebController {\n\n    public WebController(UserService userService) {\n        this.userService = userService;\n    }\n\n    private final UserService userService;\n\n    @GetMapping(\"\/\")\n    public String home(Model model) {\n        model.addAttribute(\"users\", userService.getUsers());\n        return \"home\";\n    }\n}\n\n\n\nhome \u30e1\u30bd\u30c3\u30c9\u3092\u8a18\u8ff0\u3059\u308b\u969b\u3001\u623b\u308a\u5024\u3068\u3057\u3066\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u540d\u3092\u6307\u5b9a\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u304c\u3001IntelliJ IDEA \u306f\u5148\u307b\u3069\u4f5c\u6210\u3057\u305f home.html \u3092\u8a8d\u8b58\u3057\u3066\u3044\u308b\u306e\u3067\u3001\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u540d\u306e\u81ea\u52d5\u88dc\u5b8c\uff08ctrl + Space\uff09\u304c\u53ef\u80fd\u3067\u3059\u3002\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\u6b21\u306b\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\uff08home.html\uff09\u306b\u623b\u3063\u3066\u30b3\u30fc\u30c9\u3092\u8ffd\u52a0\u3057\u3066\u3044\u304d\u307e\u3057\u3087\u3046\u3002\n\n\n\n&lt;!DOCTYPE html&gt;\n&lt;html lang=\"en\" xmlns:th=\"http:\/\/www.thymeleaf.org\"&gt;\n&lt;head&gt;\n    &lt;meta charset=\"UTF-8\"&gt;\n    &lt;title&gt;Title&lt;\/title&gt;\n&lt;\/head&gt;\n&lt;body&gt;\n\n&lt;!-- \u4ee5\u4e0b\u3092\u8ffd\u52a0 --&gt;\n&lt;p&gt;Welcome:&lt;\/p&gt;\n&lt;ul&gt;\n    &lt;li th:each=\"u : ${users}\"&gt;&lt;span th:text=\"${u.name}\"&gt;&#91;name]&lt;\/span&gt;&lt;\/li&gt;\n&lt;\/ul&gt;\n\n&lt;\/body&gt;\n&lt;\/html&gt;\n\n\n\n\u30b3\u30fc\u30c9\u3092\u8ffd\u52a0\u3059\u308b\u969b\u306b\u7740\u76ee\u3057\u3066\u3082\u3089\u3044\u305f\u3044\u30dd\u30a4\u30f3\u30c8\u306f\u3001th:text \u306e\u3088\u3046\u306a Thymeleaf \u5c5e\u6027\u3084 u.name \u306e\u3088\u3046\u306a Java \u30af\u30e9\u30b9\u3078\u306e\u81ea\u52d5\u88dc\u5b8c\u3084\uff08\u9593\u9055\u3063\u305f\u540d\u524d\u3092\u6307\u5b9a\u3057\u3066\u3044\u308b\u5834\u5408\uff09\u30a8\u30e9\u30fc\u30cf\u30a4\u30e9\u30a4\u30c8\u52b9\u304f\u3068\u3044\u3046\u3053\u3068\u3067\u3059\u3002\n\n\n\n\n\n\n\n\u6b21\u306b\u3001\u4ee5\u4e0b\u306e\u3088\u3046\u306b ${users} \u304b\u3089\u30e2\u30c7\u30eb\u5c5e\u6027\u306e\u30ad\u30fc\u540d\u3092\u5909\u66f4\u3057\u3066\u307f\u307e\u3057\u3087\u3046\u3002\u52d5\u753b\uff08\u82f1\u8a9e\uff09\u306f\u3053\u3061\u3089\u3067\u3059\u3002\n\n\n\n\nhome.html \u3092\u958b\u304d\u307e\u3059\u3002\n\n\n\n${users} \u306b\u30ab\u30fc\u30bd\u30eb\u3092\u5f53\u3066\u307e\u3059\n\n\n\n\u30ea\u30d5\u30a1\u30af\u30bf\u30ea\u30f3\u30b0 - \u540d\u524d\u306e\u5909\u66f4\uff08Shift + F6\uff09\u3092\u5b9f\u884c\u3057\u307e\u3059\n\n\n\nusers \u3092 userz \u306b\u5909\u66f4\u3057\u307e\u3059\u3002\n\n\n\n\uff08\u5834\u5408\u306b\u3088\u3063\u3066\u306f\uff09\u5909\u66f4\u7b87\u6240\u306e\u30d7\u30ec\u30d3\u30e5\u30fc\u753b\u9762\u304c\u8868\u793a\u3055\u308c\u307e\u3059\u3002\u300c\u30ea\u30d5\u30a1\u30af\u30bf\u30ea\u30f3\u30b0\u5b9f\u884c\u300d\u30dc\u30bf\u30f3\u3092\u30af\u30ea\u30c3\u30af\u3057\u307e\u3059\u3002\n\n\n\n\n\n\n\n\n\n\n\n\n\n${userz} \u306e\u7b87\u6240\u3067\u5b9a\u7fa9\u30b8\u30e3\u30f3\u30d7\uff08cmd + B \/ ctrl + B\uff09\u3092\u5b9f\u884c\u3057\u3001WebController.java \u3092\u8868\u793a\u3057\u3001\u30b3\u30f3\u30c8\u30ed\u30fc\u30e9\u30fc\u5074\u3067\u30e2\u30c7\u30eb\u5c5e\u6027\u3092\u30bb\u30c3\u30c8\u3057\u3066\u3044\u308b\u7b87\u6240\u306e\u30b3\u30fc\u30c9\u304c\u300cmodel.addAttribute(\"userz\",...\u300d\u3068\u306a\u3063\u3066\u3044\u308b\u3053\u3068\u3092\u78ba\u8a8d\u3057\u307e\u3059\u3002\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nIntelliJ IDEA \u306f \u30d3\u30e5\u30fc\u3067\u3042\u308b HTML \u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u5074\u3068\u30b3\u30f3\u30c8\u30ed\u30fc\u30e9\u30fc\u306e\u95a2\u4fc2\u3092\u628a\u63e1\u3057\u3066\u3044\u308b\u305f\u3081\u3001\u5c5e\u6027\u30ad\u30fc\u306e\u30ea\u30d5\u30a1\u30af\u30bf\u30ea\u30f3\u30b0\u3082\u4e00\u62ec\u3057\u3066\u884c\u3046\u3053\u3068\u304c\u53ef\u80fd\u3067\u3059\u3002\n\n\n\n\u3053\u306e\u3088\u3046\u306b IntelliJ IDEA Ultimate \u7248\u3067\u306f\u3001Spring \u95a2\u9023\u306e\u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u30b5\u30dd\u30fc\u30c8\u6a5f\u80fd\u306b\u3088\u308a\u3001\u81ea\u52d5\u88dc\u5b8c\u3084\u30ea\u30d5\u30a1\u30af\u30bf\u30ea\u30f3\u30b0\u3001\u5b9a\u7fa9\u30b8\u30e3\u30f3\u30d7\u7b49\u306e\u4fbf\u5229\u6a5f\u80fd\u306f Java \u30b3\u30fc\u30c9\u3060\u3051\u3067\u306a\u304f\u3001HTML\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3092\u5229\u7528\u3057\u305f\u7b87\u6240\u3067\u3082\u52d5\u4f5c\u53ef\u80fd\u3067\u3059\u3002\n\n\n\nSpring \u95a2\u9023\u306e\u30c4\u30fc\u30eb\u30a6\u30a3\u30f3\u30c9\u30a6\n\n\n\n\u6700\u5f8c\u306b Spring \u95a2\u9023\u306e\u30c4\u30fc\u30eb\u30a6\u30a3\u30f3\u30c9\u30a6\u3092\u7d39\u4ecb\u3057\u307e\u3059\u3002\u82f1\u8a9e\u306e\u52d5\u753b\u306f\u3053\u3061\u3089\u3067\u3059\u3002\n\n\n\n\u5b9f\u884c\uff08Run) \u30c4\u30fc\u30eb\u30a6\u30a3\u30f3\u30c9\u30a6\u5185\u306e Spring Boot Actuator\n\n\n\nMaven \u7b49\u3067\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u4f9d\u5b58\u95a2\u4fc2\u306b Spring Actuator \u304c\u6307\u5b9a\u3055\u308c\u3066\u3044\u308b\u5834\u5408\u3001Run \u30c4\u30fc\u30eb\u30a6\u30a3\u30f3\u30c9\u30a6\u3067 Spring Boot Actuator \u306b\u30a2\u30af\u30bb\u30b9\u3059\u308b\u3053\u3068\u304c\u51fa\u6765\u307e\u3059\u3002\n\n\n\nBean \u30bf\u30d6\u3067\u306f\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306b\u30ed\u30fc\u30c9\u3055\u308c\u3066\u3044\u308b \u30e9\u30f3\u30bf\u30a4\u30e0Bean \u4e00\u89a7\u3092\u78ba\u8a8d\u3067\u304d\u307e\u3059\u3002\u9ec4\u8272\u304c\u304b\u3063\u3066\u3044\u308b\u3082\u306e\u306f Spring Boot \u3067\u81ea\u52d5\u7684\u306b\u69cb\u6210\u3055\u308c\u305f\u3082\u306e\u3001\u9ec4\u8272\u304c\u304b\u3063\u3066\u3044\u306a\u3044\u3082\u306e\u306f\u30e6\u30fc\u30b6\u30fc\u304c\u5b9a\u7fa9\u3057\u305f\uff08UserController, UserService, WebController \u7b49\u81ea\u5206\u3067\u8ffd\u52a0\u3057\u305f\uff09 Bean \u3067\u3059\u3002Bean \u3092\u30af\u30ea\u30c3\u30af\u3059\u308b\u3068\u30bd\u30fc\u30b9\u306b\u30b8\u30e3\u30f3\u30d7\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002\u307e\u305f\u53f3\u5074\u3067 Bean \u540c\u58eb\u306e\u4f9d\u5b58\u95a2\u4fc2\u3092\u307f\u308b\u3053\u3068\u3082\u51fa\u6765\u307e\u3059\u3002\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\u30d8\u30eb\u30b9\uff08\u72b6\u614b\uff09\u30bf\u30d6\u3067\u306f Health \u60c5\u5831\u3092\u78ba\u8a8d\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\u30de\u30c3\u30d4\u30f3\u30b0\u30bf\u30d6\u3067\u306f\u3001\u30a8\u30f3\u30c9\u30dd\u30a4\u30f3\u30c8\u4e00\u89a7\u3092\u78ba\u8a8d\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002Bean \u30bf\u30d6\u540c\u69d8\u3001\u9ec4\u8272\u304c\u304b\u3063\u3066\u3044\u308b\u3082\u306e\u306f\u3001Spring Boot \u306b\u3088\u308a\u81ea\u52d5\u7684\u306b\u69cb\u6210\u3055\u308c\u305f\u3082\u306e\u3001\u305d\u3046\u3067\u306f\u306a\u3044\u3082\u306e\uff08\/admin \u3084 \/users\uff09\u306f\u81ea\u5206\u3067\u8ffd\u52a0\u3057\u305f\u30a8\u30f3\u30c9\u30dd\u30a4\u30f3\u30c8\u3067\u3059\u3002\n\n\n\n\n\n\n\n\n\n\n\n\u4ee5\u4e0b\u306b\u793a\u3059\u3088\u3046\u306b\u3001\u30c4\u30fc\u30eb\u30a6\u30a3\u30f3\u30c9\u30a6\u5de6\u5074\u306e\u30a2\u30a4\u30b3\u30f3\u3067 \/actuator\/xxx \u306e\u3088\u3046\u306a\u30e9\u30a4\u30d6\u30e9\u30ea\u30a8\u30f3\u30c9\u30dd\u30a4\u30f3\u30c8\u306e\u8868\u793a\u30fb\u975e\u8868\u793a\u306e\u5207\u308a\u66ff\u3048\u304c\u53ef\u80fd\u3067\u3059\u3002\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nSpring \u30c4\u30fc\u30eb\u30a6\u30a3\u30f3\u30c9\u30a6\n\n\n\n\u6b21\u306b\u7d39\u4ecb\u3059\u308b\u306e\u306f Spring \u30c4\u30fc\u30eb\u30a6\u30a3\u30f3\u30c9\u30a6\u3067\u3059\u3002\u8907\u96d1\u306a Spring \u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u69cb\u6210\u3092\u78ba\u8a8d\u3057\u305f\u3044\u3068\u304d\u306b\u5f79\u7acb\u3061\u307e\u3059\u3002Spring \u30c4\u30fc\u30eb\u30a6\u30a3\u30f3\u30c9\u30a6\u306b\u306f Bean, MVC, \u30c7\u30fc\u30bf\u306e\uff13\u3064\u306e\u30bf\u30d6\u304c\u3042\u308a\u307e\u3059\u306e\u3067\u3001\u3069\u306e\u3088\u3046\u306a\u6a5f\u80fd\u304c\u3042\u308b\u304b\u898b\u3066\u3044\u304d\u307e\u3057\u3087\u3046\u3002\n\n\n\nBean \u30bf\u30d6\u3067\u306f\u3001\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3054\u3068\u306e Bean \u4e00\u89a7\u3092\u78ba\u8a8d\u3067\u304d\u308b\u3068\u3044\u3046\u70b9\u306b\u304a\u3044\u3066\u306f\u3001\u5148\u307b\u3069\u7d39\u4ecb\u3057\u305f Spring Actuator \u3068\u540c\u3058\u3067\u3059\uff08\u305f\u3060\u3057\u3001Spring Actuator \u306f\u5b9f\u884c\u30c4\u30fc\u30eb\u30a6\u30a3\u30f3\u30c9\u30a6\u6a5f\u80fd\u306e\u4e00\u90e8\u306a\u306e\u3067\u3001\u5b9f\u884c\u4e2d\u306e\u60c5\u5831\u3092\u53d6\u5f97\u3057\u3066\u3044\u308b\u3068\u3044\u3046\u70b9\u306b\u304a\u3044\u3066\u9055\u3044\u307e\u3059\uff09\u3002Bean \u3092\u9078\u629e\u3059\u308b\u3068\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u3001Bean \u306e\u4f9d\u5b58\u95a2\u4fc2\u30c0\u30a4\u30a2\u30b0\u30e9\u30e0\u3092\u8868\u793a\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002\u30c0\u30a4\u30a2\u30b0\u30e9\u30e0\u306e\u30ce\u30fc\u30c9\u3092\u30af\u30ea\u30c3\u30af\u3059\u308b\u3068\u8a72\u5f53\u3059\u308b Bean \u30af\u30e9\u30b9\u30d5\u30a1\u30a4\u30eb\u306b\u30b8\u30e3\u30f3\u30d7\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002\n\n\n\n\n\n\n\n\n\n\n\nMVC \u30bf\u30d6\u3067\u306f\u3001\u30b3\u30f3\u30c8\u30ed\u30fc\u30e9\u30fc\u4e00\u89a7\u304a\u3088\u3073\u3001\u30b3\u30f3\u30c8\u30ed\u30fc\u30e9\u30fc\u5185\u306e\u30a8\u30f3\u30c9\u30dd\u30a4\u30f3\u30c8\u4e00\u89a7\u3092\u78ba\u8a8d\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002\n\n\n\n\n\n\n\n\n\n\n\n\u6700\u5f8c\u306f \u30c7\u30fc\u30bf \u30bf\u30d6\u3067\u3059\u3002\u3053\u3053\u3067\u306f Spring Data Bean \u4e00\u89a7\u304c\u8868\u793a\u3055\u308c\u307e\u3059\u3002\u4f8b\u3068\u3057\u3066\u3001\u4ee5\u4e0b\u306e Interface \u3092\u8ffd\u52a0\u3057\u3066\u307f\u307e\u3057\u3087\u3046\u3002\u30e9\u30a4\u30d6\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0\u306e\u69d8\u5b50\uff08\u82f1\u8a9e\uff09\u306f\u3053\u3061\u3089\u3067\u3059\u3002\n\n\n\nUserRepository.java\n\n\n\npackage com.example.ijb20spring;\n\nimport org.springframework.data.jdbc.repository.query.Query;\nimport org.springframework.data.repository.CrudRepository;\n\nimport java.util.List;\n\npublic interface UserRepository extends CrudRepository&lt;User, Long&gt; {\n\n    @Query(\"select * from Users\")\n    public List&lt;User&gt; customSelect();\n\n}\n\n\n\n\n\u30b3\u30fc\u30c9\u3092\u8ffd\u52a0\u3059\u308b\u3068\u3001\u4ee5\u4e0b\u306e\u3088\u3046\u306b Bean \u306e\u30e1\u30bd\u30c3\u30c9\u4e00\u89a7\u304c\u8868\u793a\u3055\u308c\u307e\u3059\u3002\u30e1\u30bd\u30c3\u30c9\u3092\u30af\u30ea\u30c3\u30af\u3059\u308b\u3068\u5f53\u8a72\u30b3\u30fc\u30c9\u306b\u30b8\u30e3\u30f3\u30d7\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002\u307e\u305f\u3001\u30a6\u30a3\u30f3\u30c9\u30a6\u5de6\u306e\u300c\u7d99\u627f\u3055\u308c\u305f\u30e1\u30f3\u30d0\u30fc\u3092\u8868\u793a\u3059\u308b\u300d\u30a2\u30a4\u30b3\u30f3\u3092\u30af\u30ea\u30c3\u30af\u3059\u308b\u3068\u3001\uff12\u3064\u76ee\u306e\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8\u306e\u3088\u3046\u306b\u7d99\u627f\u3055\u308c\u3066\u3044\u308b\u30e1\u30bd\u30c3\u30c9\u3092\u78ba\u8a8d\u3059\u308b\u3053\u3068\u3082\u53ef\u80fd\u3067\u3059\u3002\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\u307e\u3068\u3081\n\n\n\n\u52d5\u753b\uff08\u82f1\u8a9e\uff09\u304a\u3088\u3073\u672c\u30d6\u30ed\u30b0\u30dd\u30b9\u30c8\u3067\u306f\u3001\u69d8\u3005\u306a\u6a5f\u80fd\u3092\u7d39\u4ecb\u3057\u307e\u3057\u305f\u304c\u3001\u30b9\u30d4\u30fc\u30ab\u30fc\u306e Marco \u306f\u307e\u3068\u3081\u3068\u3057\u3066\u4ee5\u4e0b\u306e\uff13\u3064\u306e\u6a5f\u80fd\u306e\u6d3b\u7528\u304c\u30dd\u30a4\u30f3\u30c8\u3067\u3042\u308b\u3068\u8ff0\u3079\u3066\u3044\u307e\u3059\u3002\n\n\n\n\n\u30ca\u30d3\u30b2\u30fc\u30b7\u30e7\u30f3\u6a5f\u80fd\uff08\u30ac\u30bf\u30fc\u30a2\u30a4\u30b3\u30f3 \u3084 Spring \u30c0\u30a4\u30a2\u30b0\u30e9\u30e0\u3001Spring\u7528\u30c4\u30fc\u30eb\u30a6\u30a3\u30f3\u30c9\u30a6\u3092\u7528\u3044\u308b\u3068\u3001\u8907\u96d1\u306a\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u7406\u89e3\u306e\u52a9\u3051\u306b\u306a\u308a\u307e\u3059\uff09\n\n\n\n\u30b3\u30fc\u30c9\u88dc\u5b8c\uff08properties \u30d5\u30a1\u30a4\u30eb\u3001HTML\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\/Thymeleaf\u3000\u7b49\u3001\u69d8\u3005\u306a\u30b1\u30fc\u30b9\u3067\u30b3\u30fc\u30c9\u88dc\u5b8c\uff08control + space\uff09\u304c\u5229\u7528\u53ef\u80fd\u3067\u3059\u3002\u52a0\u3048\u3066\u3001@Autowire -&gt; \u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf\u30a4\u30f3\u30b8\u30a7\u30af\u30b7\u30e7\u30f3\u3078\u306e\u66f8\u304d\u63db\u3048\uff08option + Enter\/ Alt + Enter\uff09\u306a\u3069\u81ea\u52d5\u30b3\u30fc\u30c9\u751f\u6210\u3082\u5229\u7528\u3067\u304d\u307e\u3059 \uff09\n\n\n\n\u30a8\u30e9\u30fc\u30cf\u30a4\u30e9\u30a4\u30c8\uff08\u4e0d\u8db3\u3057\u3066\u3044\u308bBean\u3084\u3001properties \u306e\u6307\u5b9a\u30df\u30b9\u306a\u3069\u8d64\u7dda\u30a8\u30e9\u30fc\u306f\u5fc5\u305a\u30c1\u30a7\u30c3\u30af\u3057\u307e\u3057\u3087\u3046\uff09\n\n\n\n\n\n\n\n\n\n\n\n\n\u305d\u306e\u4ed6\u306e\u53c2\u8003\u8cc7\u6599\n\n\n\nJetBrains \u306eWeb\u30b5\u30a4\u30c8\u3084\u516c\u5f0f Youtube \u3067\u306f \u4ee5\u4e0b\u306e Spring \/ Spring Boot \u95a2\u4fc2\u306e\u8cc7\u6599\u3092\u63d0\u4f9b\u3057\u3066\u3044\u307e\u3059\u306e\u3067\u3001\u5408\u308f\u305b\u3066\u3054\u89a7\u304f\u3060\u3055\u3044\u3002\n\n\n\n\nIntelliJ IDEA \u30de\u30cb\u30e5\u30a2\u30eb Spring \u30b5\u30dd\u30fc\u30c8\u6a5f\u80fd\uff08\u65e5\u672c\u8a9e | \u82f1\u8a9e\uff09\n\n\n\nIntelliJ IDEA \u88fd\u54c1 Spring \u95a2\u9023\u6a5f\u80fd\u4e00\u89a7\u30da\u30fc\u30b8\u300cSpring \u958b\u767a\u8005\u5411\u3051\u306e IntelliJ IDEA\u300d\u300cBe productive in Spring\uff08\u82f1\u8a9e\uff09\u300d\n\n\n\nIntelliJ IDEA Blog \u306e Spring \u95a2\u9023\u306e\u8a18\u4e8b\n\n\n\n30\u65e5\u30c8\u30e9\u30a4\u30a2\u30eb&nbsp;\u3001\u6cd5\u4eba\u5411\u305190\u65e5\u30c8\u30e9\u30a4\u30a2\u30eb\uff08\u8981\u767b\u9332\u30fb\u539f\u5247\uff11\u6cd5\u4eba\uff11\u5ea6\u9650\u308a\u4f7f\u7528\u53ef\u80fd\uff09\n\n\n\n\n\u305d\u306e\u4ed6\u3001\u3054\u610f\u898b\u3001\u30d5\u30a3\u30fc\u30c9\u30d0\u30c3\u30af\u7b49\u3054\u3056\u3044\u307e\u3057\u305f\u3089Twitter\u3084\u65e5\u672c\u8a9e\u30b5\u30dd\u30fc\u30c8\u307e\u3067\u304a\u77e5\u3089\u305b\u304f\u3060\u3055\u3044\u3002","protected":false},"excerpt":{"rendered":"\u300cIntelliJ IDEA Spring Tips & Tricks From The Trenches\uff08Marco Behler, 2021\uff09\u300d\u306e\u5185\u5bb9\u3092\u30d9\u30fc\u30b9\u306b\u3057\u305f Spring \/ Spring Boot \u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u958b\u767a\u306e\u305f\u3081\u306e IntelliJ IDEA \u4fbf\u5229\u6a5f\u80fd\u306e\u65e5\u672c\u8a9e\u30cf\u30f3\u30ba\u30aa\u30f3\u5f8c\u7de8\u3067\u3059\u3002","protected":false},"author":{"name":"Masaru Horioka","link":"https:\/\/blog.jetbrains.com\/ja\/author\/mhoriokajb"},"featured_media":176316,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":""},"categories":[4759,89,601],"tags":[],"cross-post-tag":[],"acf":[],"featured_image":"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2021\/08\/JP_IJSPringTips.png","_links":{"self":[{"href":"https:\/\/blog.jetbrains.com\/ja\/wp-json\/wp\/v2\/posts\/179436"}],"collection":[{"href":"https:\/\/blog.jetbrains.com\/ja\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.jetbrains.com\/ja\/wp-json\/wp\/v2\/types\/post"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ja\/wp-json\/wp\/v2\/comments?post=179436"}],"version-history":[{"count":9,"href":"https:\/\/blog.jetbrains.com\/ja\/wp-json\/wp\/v2\/posts\/179436\/revisions"}],"predecessor-version":[{"id":389538,"href":"https:\/\/blog.jetbrains.com\/ja\/wp-json\/wp\/v2\/posts\/179436\/revisions\/389538"}],"author":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ja\/wp-json\/wp\/v2\/users\/0"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ja\/wp-json\/wp\/v2\/media\/176316"}],"wp:attachment":[{"href":"https:\/\/blog.jetbrains.com\/ja\/wp-json\/wp\/v2\/media?parent=179436"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ja\/wp-json\/wp\/v2\/categories?post=179436"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ja\/wp-json\/wp\/v2\/tags?post=179436"},{"taxonomy":"cross-post-tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ja\/wp-json\/wp\/v2\/cross-post-tag?post=179436"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}