본문 바로가기

java

(21)
StringBuffer, StringBuilder 그리고 String 1. 세가지 공통점 - 문자열을 처리하는 Class 2. String 과 (StringBuffer, StringBuilder)의 차이점 - 메모리 상에서 처리방식에서 차이점이 있다. - String은 immutable(변경불가) 이고, StringBuffer는 mutable이다. 3. StringBuffer, StringBuilder 두개의 차이점 1) StringBuffer - append 메소드@Override public synchronized StringBuffer append(Object obj) { toStringCache = null; super.append(String.valueOf(obj)); return this; } 2) StringBuilder - append 메소드@Override..
spring-loaded 사용해보기. (작성일 기준으로 1.2.8 버전이 최신버전) 자바(with Spring)를 개발하다보면 Class를 추가/변경 하는 작업을 많이 한다. 그럴때마다 서버를 리스타트하는 일은 엄청나게 번거로운 일이다. 그래서 자동으로 reload 시켜주는 걸 찾아봤다. 1. 설치하기 - pom.xml org.springframework.boot spring-boot-maven-plugin org.springframework springloaded 1.2.8.RELEASE - jar 다운로드(이 경우에는 다운로드한 경로를 따로 복사해 놓으세요.)http://mvnrepository.com/artifact/org.springframework/springloaded/1.2.8.RELEASE 4. Spring Boot 1) ma..
[Apahce poi] 엑셀파일에 암호걸기 업무 중에 엑셀 다운로드 기능에 "암호 걸기"가 필요해짐. 1. pom.xml에 필요한 dependencyt 추가 org.apache.poi poi 3.16 2. 샘플 - 아래와 같이 설정해주면 잘 나온다.EncryptionInfo encryptionInfo = new EncryptionInfo(EncryptionMode.agile); Encryptor encryptor = encryptionInfo.getEncryptor(); encryptor.confirmPassword(password); - 결과 3. 전체소스import lombok.extern.slf4j.Slf4j; import org.apache.poi.openxml4j.exceptions.InvalidFormatException; import..
@PropertySource 사용시 한글 깨짐 1. 현상 - 아래와 같은 소스를 사용할 경우@PropertySource(value = {"classpath:common.properties"}) - 아래와 같이 호출할 경우,한글이 깨진다.@Autowired private Environment env; private void test(){ env.getRequiredProperty("test"); } 2. 해결법@PropertySource(value = {"classpath:common.properties"}, encoding = "UTF-8") 간단한 해결 법이지만 기억하기 위해 기록해 놓는다.
[LOMBOK] constructor ... is already defined in class ... (1.16.22) 1. 현상 - Spring boot 1.5.14 로 프로젝트를 세팅하는 중 에러 발생. - Lombok Annotation 적용해놓은 class에서 컴파일 에러 - Github 이슈함 검색... 버그... @Data @NoArgsConstructor @AllArgsConstructor public class Sample { private String test1; private String test2; } 2. 해결법 - @NoArgsConstructor 를 @Data 보다 위에 선언해야한다. @NoArgsConstructor @AllArgsConstructor @Data public class Sample { private String test1; private String test2; } * 관련 문서..
[Spring] Filter & Interceptor 1. Filterpublic interface Filter { void doFilter(ServletRequest request, ServletResponse response, FilterChain chain); } 1) Filter란? - J2EE 표준 스팩 2) init() - 필터 인스턴스 초기화 3) doFilter() - 전/후 처리 4) destroy() - 필터 인스턴스 종료 2. Interceptor - 소스public interface HandlerInterceptor { @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Except..
AWS s3 upload source Tip 1. Content Type - 파일명에 따라 ContentType을 설정한다. ObjectMetadata objMeta = new ObjectMetadata(); objMeta.setContentType(Mimetypes.getInstance().getMimetype(saveFileNm)); 2. Content Length - byte length를 추가한다.ObjectMetadata objMeta = new ObjectMetadata(); byte[] bytes = IOUtils.toByteArray(targetIS); objMeta.setContentLength(bytes.length); ByteArrayInputStream byteArrayIs = new ByteArrayInputStream(by..
json schema validator 사용하기 - 02 해당 내용은 https://github.com/java-json-tools/json-schema-validator 를 사용하면서 적은 내용입니다. 1. NodeType{.... "type": "string or array...."} - NodeType 목록 ARRAY("array"), BOOLEAN("boolean"), INTEGER("integer"), NULL("null"), NUMBER("number"), OBJECT("object"), STRING("string") - 해당 Library에서는 "com.github.fge.jackson.NodeType"를 참고하시면 편하게 코딩할 수 있다. 2. minItems, maxItems{.... "minItems":0, "maxItems":2....} -..