전체보기(316)
-
스프링 부트 강의 정리 (6~7 : SpringApplication)
SpringApplication 클래스 public static void main(String[] args) { SpringApplication.run(MySpringConfiguration.class, args); } 스프링은 MainApplication 클래스 안의 main 메소드에서 SpringApplication.run() 을 이용하여 실행된다. info level 에서 logging 할 수 있도록 해준다. (application.properties 또는 application.yml를 이용하여 logging level을 바꿀 수도 있긴하다.) 참조 : https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#boot-feature..
2019.04.20 -
스프링 부트 강의 정리 (4~5 : Configuration, devtools)
스프링 부트에서도 설정 파일을 XML로도 불러들일 수 있는데, 자바 기반의 설정 파일을 사용하는 것을 권장한다. XML 을 가능하면 쓰지말자. XML을 사용하는 방식은 XML 파일을 만들고(ex. myConfiguration.xml) MainApplication에 @ImportResource("myConfiguration.xml") 을 해주면된다. 자바 기반의 설정 파일 등록은 MyConfiguration 클래스에 @Configuration 를 달아주고 MainApplication에 @EnableAutoConfiguration 또는 @SpringBootApplication을 달아주면 된다. * @EnableAutoConfiguration의 기능 exclude : 특정 configuration을 부르지 않..
2019.04.20 -
스프링 부트 강의 정리 (1~3 : 인트로, Jar, MainApplication)
강의 출처 : https://www.youtube.com/playlist?list=PLfI752FpVCS8tDT1QEYwcXmkKDz-_6nm3 스프링 부트 - YouTube www.youtube.com 스프링 릴리즈 버전 관리 방법 Snapshot - Daily M1, M2 Milestone 짧은 주기, 기능이 완성 되자마자 공개 RC Release Candiate 출시 직전, 마일 스톤 이후의 더 큰 주기 GA General Available 안정적인 버전, 시장에서 사용 될 수 있음 @EnableAutoConfiguration = class-path 에 존재하는 관련 라이브러리들을 읽어들임 Executable Jar 파일 의존성을 가지고 있는 클래스나 라이브러리도 가지고 있어서 실행가능한 jar 파..
2019.04.20 -
Bean Singleton or Prototype
* Elasticsearch 의 RestHighLevelClient는 Thread safe 하지 않다. * Elasticsearch 의 RestHighLevelClient는 사용하고 나면 close() 메소드를 호출해줘야 안전하다. @Bean public RestHighLevelClient restHighLevelClient(){ return new RestHighLevelClient(RestClient.builder(new HttpHost(host,port,"http"))); } Bean 은 기본적으로 싱글톤이기 때문에 Thread safe 하지 못한 클래스는 등록하면 안된다. 더불어 RestHighLevelClient는 사용하고 나면 close를 해줘야하기 때문에 일반 Bean으로 적합하지 못하다. ..
2019.04.18 -
Reactive connection with DB
Repository 가 Non reactive 일 경우 1. find @Autowired private MyRepository myRepository; public void test(){ MyEntity myEntity = myRepository.findById("test-key"); System.out.println(myEntity.getKey()); } 2. save and find @Autowired private MyRepository myRepository; public void test(){ myRepository.save(new MyEntity("test-key", "message")); MyEntity myEntity = myRepository.findById("test-key"); Sys..
2019.04.18 -
Lombok을 사용할 때 List 타입 멤버변수 오버라이딩
문제 상황 @Data public class ParentElement{ public String message; } @Data public class ChildElement extends ParentElement{ public String message; } @Data public class Parent{ public List elements; } @Data public class Child extends Parent{ public List elements; } Child 의 elements가 Parent의 elements를 오버라이딩 한 코드를 만들고 싶다. 문제 해석 1. lombok 은 Child의 elements에 대응하는 public List getElements() { return elemen..
2019.04.16