일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- springboot
- MySQL
- jenkins
- 맛집
- 요리
- Git
- javascript
- jsp
- Oracle
- Gradle
- ReactJS
- linux
- redis
- elasticsearch
- java
- it
- AWS
- Spring
- Spring Boot
- Spring Batch
- db
- php
- ubuntu
- JVM
- devops
- laravel
- tool
- Web Server
- Design Patterns
- Today
- Total
목록Java & Kotlin (250)
아무거나
리플렉션(Reflection) 정의: 구체적인 클래스 타입을 알지 못해도, 그 클래스의 메소드, 타입, 변수들을 접근할 수 있도록 해주는 자바 API 코드설명 public class Pizza { public void eat() { ... } } public class Main { public static void main(String[] args) { Object pizza = new Pizza(); pizza.eat(); // 컴파일 에러 } } 위의 코드에서 컴파일 에러가 나는 이유는 모든 클래스의 조상 클래스인 Object라는 타입으로 Pizza 클래스의 인스턴스를 담을 수는 있지만 사용 가능한 메소드는 Object의 메소드와 변수들 뿐이기 때문이다. 이와 같이 구체적인 타입의 클래스를 모를 때 ..
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를..
Entity Graph 쿼리 메서드마다 연관 관계의 fetch모드를 유연하게 설정할 수 있는 기능을 제공 EAGER: 끝이 One으로 끝나는 연관관계는 기본값이 EAGER 모드이다. 참조하고 있는 다른 Entity의 값도 가져온다. LAZY: 끝이 Many로 끝나는 연관관계는 기본값이 LAZY 모드이다. 자기 자신만 가져온 후 참조하고 있는 다른 Entity에 접근하면 그때야 다시 쿼리 실행 예제코드 기본은 EAGER지만 LAZY로 정보를 가져올 때 @Entity public class Reply { @Id @GeneratedValue private Long id; private String reply; /** @ManyToOne 은 참조하고 있는 다른 Entity의 값도 가져온다(Reply를 조회하였지..
소스: base-document/springsecurity.md at master · bkjeon1614/base-document (github.com) Spring Security + H2 DB + Swagger 연동시 페이지 접근 예외 처리 [SecurityConfig.java] import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; import org.springframework.security.config.annotation.web.configura..
maven 설치 https://maven.apache.org/download.cgi 접속하여 apache-maven-3.6.3-bin.tar.gz 다운로드 링크 복사 설치 $ cd /usr/local $ sudo wget https://downloads.apache.org/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz $ tar -xvf apache-maven-3.6.3-bin.tar.gz $ sudo rm -r apache-maven-3.6.3-bin.tar.gz $ sudo ln -s apache-maven-3.6.3 maven 환경변수 설정 $ vi ~/.bash_profile ... export MAVEN_HOME=/usr/local/ma..
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..
Build 할 때 java.lang.NoClassDefFoundError: org/gradle/wrapper/GradleWrapperMain 에러 해결 원인: gradle wrapper 실행파일(gradle-wrapper.jar)이 없어서 문제가 생김. (.gitignore 를 확인 커밋할때 제외될 가능성이 높음) 해결방법 gradle 설치 $ wget https://services.gradle.org/distributions/gradle-5.2.1-bin.zip $ mkdir /opt/gradle $ sudo mkdir /opt/gradle $ sudo unzip -d /opt/gradle gradle-5.2.1-bin.zip $ export PATH=$PATH:/opt/gradle/gradle-5.2..