전체 글 87

JAVA 기본 함수형 인터페이스 정리

자바가 기본적으로 제공해주는 인터페이스 입출력 값의 유무, 사용기능등에 따라서 다양한 함수형 인터페이스들을 사용 할 수 있다. 기본적인 구현 import java.util.function.Function; public class Plus implements Function{ @Override public Integer apply(Integer t) { return t+1; } } 함수형 인터페이스를 사용 할 시 본래는 클래스를 함수형 인터페이스를 구현하는 형식으로 사용한다. 위의 예제는 Function이라는 기본제공 함수형 인터페이스를 사용하여 Plus라는 클래스를 생성하는 예제이다. 이는 메서드가 한개인 함수형 인터페이스이므로 람다식을 써서 구현 할 수 있다. 람다식을 통해 구현 할 시 클래스 파일을 ..

Elastic Search High Level Client JAVA API (Search API)

*Elastic Search 공식문서 참조 (https://www.elastic.co/guide/en/elasticsearch/client/java-rest/current/java-rest-high.html) * 현재 구동중인 Elastic Search에는 KOSPI 관련 인덱스(주가, 종목명 , 코드) "Stockinfo2"가 저장되어 있는 상태 1. Client initializing Maven 의존성 추가 org.elasticsearch.client elasticsearch-rest-high-level-client 7.6.2 접속하려는 Elastic search API와 동일한 버젼의 클라이언트를 추가하여야 한다 RestHighLevelClient client; public void init() {..

Tools/ELK 2020.08.16

함수형 인터페이스와 람다 표현식

함수형 인터페이스 package prac; @FunctionalInterface public interface AnyInterface { int method1(int a); static void print() { System.out.println("hi"); } default void print2() { System.out.println("hi2"); } } 함수형 인터페이스는 추상 메서드를 1개 가진 인터페이스로 정의 된다. 추상 메서드는 1개이며 Static 메서드 Defalt 메서드 등 다른 한정자 메서드들은 상관 없다. 추상 메서드가 2개 이상이면 @FunctionalInterface 어노테이션에 의해서 컴파일 오류가 발견된다. 함수형 인터페이스는 익명 내부 클래스를 구현하여 사용한다. 익명 내부..

Component와 Component Scan

Component Scan의 동작원리 스프링 프로젝트의 @SpringBootApplication 어노테이션이 존재하는곳에서 스프링 프로젝트가 시작됨 @SpringBootApplication 내부에는 String[] scanBasePackages() default {} 메서드가 존재하는데 이러한 메서드를 통해 @SpringBootApplication이 존재하는 클래스가 속해 있는 클래스를 basepackage로 설정된다. 이렇게 basepackage로 등록된 package 내부에서 빈으로 등록될 Component들을 검색한다. @Component 어노테이션을 기본으로 각각의 용도에 따라 @Repository, @Service, @Controller ,@Configuration으로 세분화 할 수 있으며 위의..

Tools/Spring 2020.08.09

ApplicationContext-2 (Autowired)

Autowired : 스프링의 의존성 주입 어노테이션 , 등록되어 있는 빈들을 명시된 객체에 주입한다. (생성자, 클래스 필드) 기본적인 사용법 - 1 (클래스 변수 주입) package main; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @Service public class repo2{ @Autowired repo1 rp1; public repo2(repo1 rp1) { this.rp1=rp1; } } 클래스 변수에 Autowired를 통한 의존성 주입 방식 기본적인 사용법 - 2 (생성자를 통한 주입) package main; import org..

Tools/Spring 2020.08.06

ApplicationContext-1 (Bean을 등록하는 방법)

ApplicationContext : BeanFactory를 상속받은 인터페이스 , 스프링에서 주로 사용 >ApplicationEventPublisher, BeanFactory, EnvironmentCapable, HierarchicalBeanFactory, ListableBeanFactory, MessageSource, ResourceLoader, ResourcePatternResolver 상속 1. 프로젝트 resources에 Spring XML Configuration file을 생성 후 Bean 등록 repo1 package main; public class repo1{ public repo3 giveA(repo3 repo) { return repo; } } repo2 package main; p..

Tools/Spring 2020.08.04

Spring Ioc 컨테이너와 Bean

Inversion of Control : 의존 관계 주입(Dependency Injection)이라고도 하며, 어떤 객체가 사용하는 의존 객체를 직접 만들어 사용하는게 아니라, 주입 받아 사용하는 방법 -> 개발자들의 의견을 받아 처음에는 xml 기반으로 객체를 빈으로 등록하였지만 현재는 구글 guice에서 사용한 어노테이션 기반의 Bean등록 방법이 선호됨 -> BeanFactory Interface가 등록된 빈들을 관리함 1. Spring Bean에 대한 구분 Bean으로 등록되지 않은 객체 package main; public class repo1 implements repo{ private int a; public int getA() { return a; } public void setA(int ..

Tools/Spring 2020.08.04