일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- IntelliJ
- it
- Web Server
- elasticsearch
- db
- Spring
- laravel
- devops
- java
- springboot
- 요리
- php
- JVM
- Spring Boot
- Spring Batch
- Oracle
- ReactJS
- AWS
- MySQL
- jenkins
- redis
- jsp
- javascript
- 맛집
- Gradle
- tool
- Design Patterns
- Git
- ubuntu
- linux
- Today
- Total
목록springboot (21)
아무거나
Exception 을 개선하다가 예전에 포스팅을 작성해야지 하면서 깜박했던 부분이 있어 다시 작성하게되었다. @ControllerAdvice 를 통한 Global Exception Handler 처리 에러 객체 생성 [ErrorResponse.java] import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; import org.springframework.validation.BindingResult; import org.springframework.web.method.annotation.MethodArgumentTypeMismatchException; import com.example.bkjeon.enum..
Error: no Creators, like default construct, exist... (JSON을 파싱한 결과를 전달할 적절한 생성자를 찾지 못했을 때 발생하는 에러) 생성자로 JSON 속성값을 전달하는 방법 import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Getter; @Getter public class AccessLog { private final String title; private final String ip; private final String username; @JsonCreator public TestDTO( @..
Node Gradle Plugin Not Found 이슈 원인내용: Could not find com.moowork.gradle:gradle-node-plugin:1.3.1 (Gradle6 부터 원인 발생) 해결 build.gradle 수정 ... repositories { ... maven { url "https://plugins.gradle.org/m2/" } } dependencies { ... classpath "com.github.node-gradle:gradle-node-plugin:3.1.0" } ... subprojects { ... apply plugin: "com.github.node-gradle.node" ... }
Spring Boot 환경에서 DatasourceConfig 설정 (Multi Connection 또는 추가 설정시 유용) DataSourceConfig 추가 [DataSourceConfig.java] package com.example.bkjeon.base.config; import java.util.HashMap; import javax.persistence.EntityManager; import javax.sql.DataSource; import lombok.RequiredArgsConstructor; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.boot.jdb..
Ehcache build.gradle ... dependencies { ... // 캐시관련 설정을 편리하게 지원해주는 패키지 (CacheManager, EhCacheManagerFactoryBean 등의 bean 생성을 직접 안할수 있음) implementation 'org.springframework.boot:spring-boot-starter-cache' // Ehcache implementation group: 'net.sf.ehcache', name: 'ehcache', version: '2.10.6' } ... EhCache 설정 체크 관련 Component 추가 (CommandLineRunner를 통해 Application 실행시 무조건 run() 이 실행되도록 하여 CacheManager를..
[springboot gradle 개발환경별 버저닝 빌드&배포] 개발환경 기준 : dev, stage, master(=live) 사용툴 : jenkins + s3 + codedeploy [빌드] 1. build.gradle에 저장될 jar이름 설정(안하면 jenkins item이름으로 기본정의됨) jar { archivesBaseName = "test" } 2. build 부분에서 Add build step -> Invoke Gradle script 선택 3. jekins item 설정에서 Build 부분에서 Use Gradle Wrapper 버튼 클릭하고 설정 - Make gradlew executable 체크 - Wrapper location: ${workspace} // ${workspace}는 ..
[SpringBoot & Handlebars로 화면 생성] Handlebars는 흔히 사용하는 Freemarker, Velocity와 같은 서버 템플릿 엔진이다. -> 현재 Freemarker, Velocity는 몇년동안 업데이트가 되지 않아서 사실상 springboot에서 권장하지 않는다. Freemarker는 프리뷰버전은 계속나오고 있지만 릴리즈가 2015년이다. 현재까지 꾸준하게 업데이트 되고있는 Handlebars나 Thymeleaf이다. spring에선 Thymeleaf를 밀고 있음. [Handlebars 특징] (1) 문법이 다른 템플릿엔진보다 간단하고 (2) 로직 코드를 사용할 수 없어 View의 역할과 서버의 역할을 명확하게 제한할 수 있으며 (3) Handlebars.js와 Handleb..
프로젝트 개발 환경은 다음과 같습니다. IDE : IntelliJ IDEA Ultimate Git Tools : Source Tree OS : Mac OS X SpringBoot 1.5.9 Java8 Gradle 가. springboot + gradle 프로젝트 생성 1. new project -> Spring Initializr -> project SDK에서 자바경로를 선택한 후 Next를 선택 2. Group: com.bk, Artifact: webservice 입력, Gradle Project로 선택 후 Next 선택 - 빌드툴은 아무거나 써도 무방하지만 Gradle이 4.x대로 업하면서 빌드속도가 대폭 개선되었다고 한다. 또한 다양한 Task를 쉽게 생성가능해서 많은 프로젝트에서 도입하려고 한다...
Teams Web Hook API를 이용한 Message Sending 처리 Teams 메신저를 사용할 경우 애플리케이션에 알람이 필요한 경우의 예제 코드이다. 메세지를 수신받을 Teams API 생성 (1) Teams 좌측 메뉴에서 "팀"을 클릭한다. (2) "채널 추가"를 클릭한다. (3) 입력란에 입력 후 "추가"를 클릭한다. (4) "커넥터"를 선택한다. (5) "Incoming Webhook" 우측의 "구성" 버튼을 클릭한다. (6) 이름을 입력하고 하단의 "만들기" 버튼 클릭. (7) 제공하는 URL을 복사한다. (반드시 기억하고 있어야 한다.) (8) 좌측 구성됨을 선택하여 확인할 수 있다. (9) "이 채널 팔로우"를 선택하면 팀즈 채널로 메세지가 전송될 때 마다 알림이 표시된다. (10)..
@NotNull과 BindingResult를 활용한 파라미터 예외처리 [Param.java] import javax.validation.constraints.NotNull; import lombok.Getter; import lombok.Setter; @Getter @Setter public class Param { @NotNull(message = "name 값을 입력하여 주시길 바랍니다.") private Integer name; @NotNull(message = "id 값을 입력하여 주시길 바랍니다.") private Integer id; } [Controller.java] @PostMapping("saveTest") public ApiResult setSaveTest( @ApiParam( valu..