{"componentChunkName":"component---src-templates-post-template-jsx","path":"/errors/posts/2021-02-10--001","result":{"data":{"site":{"siteMetadata":{"title":"Blog by Eunyoung","subtitle":"작업 기록 블로그","copyright":"© All rights reserved.","author":{"name":"EunYoung","twitter":"#"},"disqusShortname":"","url":"https://ssongey.github.io"}},"markdownRemark":{"id":"b51ca86f-db42-5a92-8155-8732c9f37c23","html":"<p><span style=\"background-color:#ed5f65; color:#ffffff; margin-bottom: 5px; padding: 10px; font-weight: 600\"> 무엇이 문제였나? </span></p>\n<ul>\n<li>@Value 어노테이션을 이용하여 application.properties 변수 접근 시 아래와 같은 오류 발생</li>\n<li>소스코드</li>\n</ul>\n<p>\n  <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/devHistoryBlog/static/b4ef91bb056d36b9221105b015849587/d9217/001-01.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n  \n  <span\n    class=\"gatsby-resp-image-wrapper\"\n    style=\"position: relative; display: block;  max-width: 904px; margin-left: auto; margin-right: auto;\"\n  >\n    <span\n      class=\"gatsby-resp-image-background-image\"\n      style=\"padding-bottom: 10.416666666666668%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAACCAYAAABYBvyLAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAaklEQVQI123MQQ7CMAxE0Z6ndhpIYkcNKQjU+1/pY1iwYjF6s/rLeaychzKb8rSVMe/Mx4tmjnvHQrPQnZSVdFE0y3e/vwk5b4gIy60J0wS/CqOEfafvg1oaVjutRLB6aGxJEZW/048RfAMMlD8TIVPjSwAAAABJRU5ErkJggg=='); background-size: cover; display: block;\"\n    >\n      <img\n        class=\"gatsby-resp-image-image\"\n        style=\"width: 100%; height: 100%; margin: 0; vertical-align: middle; position: absolute; top: 0; left: 0; box-shadow: inset 0px 0px 0px 400px white;\"\n        alt=\"001 01\"\n        title=\"\"\n        src=\"/devHistoryBlog/static/b4ef91bb056d36b9221105b015849587/d9217/001-01.png\"\n        srcset=\"/devHistoryBlog/static/b4ef91bb056d36b9221105b015849587/8ff5a/001-01.png 240w,\n/devHistoryBlog/static/b4ef91bb056d36b9221105b015849587/e85cb/001-01.png 480w,\n/devHistoryBlog/static/b4ef91bb056d36b9221105b015849587/d9217/001-01.png 904w\"\n        sizes=\"(max-width: 904px) 100vw, 904px\"\n      />\n    </span>\n  </span>\n  \n  </a>\n    </p>\n<ul>\n<li>에러 발생</li>\n</ul>\n<p>\n  <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/devHistoryBlog/static/95944d595f58a430eafe70e15b889be5/e332b/001-02.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n  \n  <span\n    class=\"gatsby-resp-image-wrapper\"\n    style=\"position: relative; display: block;  max-width: 960px; margin-left: auto; margin-right: auto;\"\n  >\n    <span\n      class=\"gatsby-resp-image-background-image\"\n      style=\"padding-bottom: 14.583333333333334%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAADCAYAAACTWi8uAAAACXBIWXMAABYlAAAWJQFJUiTwAAAARElEQVQI12PQ19f/D8J6enr/YWwDAwMUtqGhIYY4Nj7IDAZdXV0wAxmjWwLTCKFRLUZXzwCy3cAA01aQJIytpaVFNAYAuhhcMMzv6VAAAAAASUVORK5CYII='); background-size: cover; display: block;\"\n    >\n      <img\n        class=\"gatsby-resp-image-image\"\n        style=\"width: 100%; height: 100%; margin: 0; vertical-align: middle; position: absolute; top: 0; left: 0; box-shadow: inset 0px 0px 0px 400px white;\"\n        alt=\"001 02\"\n        title=\"\"\n        src=\"/devHistoryBlog/static/95944d595f58a430eafe70e15b889be5/d9199/001-02.png\"\n        srcset=\"/devHistoryBlog/static/95944d595f58a430eafe70e15b889be5/8ff5a/001-02.png 240w,\n/devHistoryBlog/static/95944d595f58a430eafe70e15b889be5/e85cb/001-02.png 480w,\n/devHistoryBlog/static/95944d595f58a430eafe70e15b889be5/d9199/001-02.png 960w,\n/devHistoryBlog/static/95944d595f58a430eafe70e15b889be5/07a9c/001-02.png 1440w,\n/devHistoryBlog/static/95944d595f58a430eafe70e15b889be5/29114/001-02.png 1920w,\n/devHistoryBlog/static/95944d595f58a430eafe70e15b889be5/e332b/001-02.png 1929w\"\n        sizes=\"(max-width: 960px) 100vw, 960px\"\n      />\n    </span>\n  </span>\n  \n  </a>\n    </p>\n<br>\n<p><span style=\"background-color:#ed5f65; color:#ffffff; padding: 10px; font-weight:600\"> 원인이 뭔데? </span></p>\n<ul>\n<li>의존성 주입 방식 중 필드 주입 방식(@Autowired 사용) 은 권장하지 않는 패턴이기 때문에 @RequiredArgsConstructor 를 사용하여 생성자 주입방식을 사용했었다.</li>\n<li>final 이 붙었기 때문에 자동으로 생성자 생성시 필요 필드가 되어버렸다.</li>\n<li>해당 변수는 스프링에서 관리하는 Bean이 아니기 때문에 의존성 자동 주입이 될 수 없다.</li>\n</ul>\n<br>\n<p><span style=\"background-color:#ed5f65; color:#ffffff; padding: 10px; font-weight:600\"> 이렇게 해결했다! </span></p>\n<ul>\n<li>final 제거</li>\n<li>immutable 한 변수가 아닌데… 다른 방법도 찾아서 정리해 놔야곘네…</li>\n</ul>","fields":{"tagSlugs":["/tags/application-properties/","/tags/value/"],"slug":"/errors/posts/2021-02-10--001"},"frontmatter":{"title":"@Value 사용 시, required a bean of type 'java.lang.Boolean' that could not be found. @value","tags":["application.properties","@Value"],"date":"2021-02-10","description":""}}},"pageContext":{"slug":"/errors/posts/2021-02-10--001"}},"staticQueryHashes":[]}