일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- JPA
- Spring
- Spring Boot
- tool
- elasticsearch
- Design Patterns
- redis
- 요리
- MySQL
- ReactJS
- Web Server
- db
- javascript
- it
- java
- 맛집
- linux
- docker
- Gradle
- AWS
- jenkins
- php
- Git
- ubuntu
- devops
- laravel
- jsp
- IntelliJ
- Oracle
- springboot
- Today
- Total
목록Java/Spring (75)
아무거나
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를..
Library Document Jasypt를 활용한 Application Property 암호화 Application.yml 에다 보통 DB 접속정보등의 데이터가 기재되어있다. 이러한 내용을 외부에서 탈취해갈 위험성을 대비하여 jasypt를 활용하여 보안을 강화하자 http://www.jasypt.org/download.html 에서 jasypt 다운 (1.9.2 버전 기준) 압축 풀고 cmd에서 bin 폴더로 이동 (./file/jasypt-1.9.3/bin) encrypt input="bkjeontest!@" password="bkjeon!@" algorithm="PBEWITHMD5ANDDES" (온라인 암/복호화 사이트 https://www.devglan.com/online-tools/jasypt-..
Lombok 사용시 주의사항 (1.16 기준) lombok.config를 통하여 애노테이션 사용금지 및 각종 설정 config.stopBubbling = true lombok.data.flagUsage=error lombok.value.flagUsage=error lombok.val.flagUsage=error lombok.var.flagUsage=error lombok.nonNull.flagUsage=error lombok.allArgsConstructor.flagUsage=error lombok.requiredArgsConstructor.flagUsage=error lombok.cleanup.flagUsage=error lombok.sneakyThrows.flagUsage=error lombok.sy..
Intellij Lombok 사용 (Mac) Preference -> Plugins -> Browse Repositories 에서 Lombok Plugin 추가 Prepference -> Build, Execution, Deployment -> Compiler -> Annotation Processors "Enable Annotation Processors" 체크 Lombok Annotations @Getter @Setter Getter / Setter Method 생성(모든 필드의 타입에 맞추어 생성) Class에 적용하면 static을 제외한 모든 필드에 적용 AccessLevel 을 명시하지 않으면 public 종류: PUBLIC, PROTECTED, PACKAGE, PRIVATE, NONE 특정 ..
Field Injection이 아닌 Constructor Injection 사용하자 평소 개발시에 스프링쪽이라든지 타 포스팅을 참고하여 Field Injection이 아닌 Constructor Injection 을 지향하게 되었다. 하지만 그 당시 간략히 이해만하고 넘어간지라 최근에 해당 내용에 대해 설명을 해야할 일이 생겼을 때 간략한 내용만 전달하게 되어서 좀 더 자세한 내용을 다시 복습하고자 포스팅을 작성하게 된다. [의존성 주입의 종류] Setter Injection public class ExampleClass { @Autowired private ExampleService1 exampleService1; @Autowired private ExampleService2 exampleService2..
특정 패키지 내부의 원하는 클래스에 특정 메소드만 지정하여 Aspect 적용 의존성 추가 [build.gradle] ... implementation 'org.springframework.boot:spring-boot-starter-aop' ... Bean 등록 [Application.java] @Bean public SelectLogAspect selectLogAspect() { return new SelectLogAspect(); } Controller 생성 [CrudController.java] import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; import org.springframework.web.bind.a..
Spring Boot + Mybatis + Mysql 을 활용한 계층형(=hierarchy) 게시판 구현 테이블 설계 CREATE TABLE `tb_board` ( `BOARD_NO` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '게시판 고유 값', `GROUP_NO` int(11) unsigned NOT NULL COMMENT '게시판 그룹번호 (원글은 자신의 값)', `SORT_SEQ` int(2) unsigned NOT NULL COMMENT '게시글 정렬 순번', `BOARD_LVL` int(2) unsigned NOT NULL COMMENT '게시글 레벨(depth)', `BOARD_TITLE` varchar(45) NOT NULL COMMENT '게시..
* 참고로 해당 포스팅은 Aspect가 gradle 디펜던시에 추가되어있다는 가정하에 진행 원하는 패키지 경로 안에 그 하위에 *Service로 끝나는 파일들만 Aspect 적용 import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.aspectj.lang.JoinPoint; import org.aspectj.lang.Signature; import org.aspectj.lang.annotation.AfterReturning; import org.aspectj.lang.annotation.Aspect; import org.springframework.stereotype.Component; @Component @Aspec..
일반적으로 log4j를 사용하는 코드를 보자. log.debug("error message example") 위와 같은 방식으로 사용하는 경우가 있으며 아래 코드를 보자 if (log.isDebugEnabled()) { log.debug("error message example"); } 이렇게 되면 두번이나 체크하게 될텐데 효과적일까? 라는 의문을 갖게 된다. 예를 들어 log.debug("Entry Number: " + i + ", Value: " + String.valueOf(entry[i])) 이런식으로 디버깅을 사용한다고 하자. 이러면 메세지 파라미터를 생성할 때 String 연산들이 일어나게 되며 해당 작업은 메세지 로깅여부에 상관없이 항상 발생하게 되어 파라미터 생성 비용을 발생시킬 수 있다...
[spring] 트랜잭션(Transaction) - 2 PlatformTransactionManager 인터페이스 보다 더욱 많이 사용되는 TransactionTemplate에 대해 알아보자. TransactionTemplate은 PlatformTransactionManager보다 더 간편하게 사용할 수 있다. 1. dao에 트랜잭션 관련 내용 추가 [testDao.java] .... //PlatformTransactionManager transactionManager; TransactionTemplate transactionTemplate; // 트랜잭션 매니저 setter 추가 // public void setTransactionManager( PlatformTransactionManager tran..