Spring(9)
-
[Spring] DI(Dependency Injection) 스프링 의존성 주입
의존성 주입에는 대표적으로 두 가지 방식이 있습니다. 필드 주입과 생성자 주입입니다. Spring 4.3부터 생성자가 하나 뿐인 클래스는 생성자 주입을 사용할 때 @Autowired를 생략해줄 수 있습니다. 생성자 주입의 장점은 필드에 @Autowired를 쓸 경우 테스트 클래스에서 의존하고 있는 객체를 주입해주지 않아 NPE가 발생하는 케이스를 방지할 수 있습니다. 그리고 필드 주입은 주입된 인스턴스를 불변으로 만들지 못하지만, 생성자 주입은 가능합니다. 이는 필드 주입은 객체를 생성하고 의존성을 Reflection으로 주입 받기 때문입니다. @Service public class DatabaseAccountService implements AccountService { private final Ris..
2022.05.16 -
[Spring] Collection 타입을 생성자 방식으로 주입하기
클래스 인스턴스가 초기화 될 때, A 인터페이스를 구현하는 Bean들을 List로 받고 싶다면 아래와 같은 코드를 사용하시면 됩니다. public class CollectionInject { //생성자 주입 방식에서 생성자를 의존주입 생성자 하나만 사용한다면 @Autowired가 생략가능 합니다. 그렇지 않고 다른 새성자도 사용할거라면 @Autowired로 명시해줘야 Spring이 어떤 생성자가 의존주입 생성자를 인지합니다. @Autowired //Spring은 InterfaceA를 구현한 Bean들을 모두 listOfImplementationA 리스트에 add 해줍니다. public CollectionInject(List listOfImplementationA) { for (InterfaceA inte..
2022.01.05 -
[Spring] AOP ④ - (예제) HashMap으로 Cache 기능구현
AOP 시간 마무리로 HashMap을 이용한 Cache 기능 구현을 해보려 합니다. Factorial(팩토리얼) 메서드를 인터페이스에서 implements하여 클래스 두 가지로 나눠 담았습니다. ProceedingJoinPoint는 Java API JoinPoint Class인데 getArgs() 메서드는 execution 메서드. 즉 공통(횡단) 메서드의 매개변수를 배열로 반환해 줍니다. 메서드 return 값을 반환해주는 proceed() 메서드의 데이터 타입은 Object 이기 때문에 주의해야 합니다. 핵심은 cache 기능을 Map 인터페이스의 HashMap 클래스로 구현하는 부분입니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 2..
2020.09.30 -
[Spring 재수강] - Maven Project로 Member 관리 시스템 만들기 (1)
#Spring #Maven #관리시스템 1. Member 클래스 생성 코로나로 인해 대형 학원이 휴강에 들어가며 끊겼던 수업을 3주 뒤인 지금 비대면 강의로 듣고 있습니다. 바뀐 강사님은 선실습-후이론 방식의 수업을 하시는데 지난 강의와 달리 새로워 좋습니다. 첫 번째 실습 프로젝트인 Member 관리 시스템(회원 관리 시스템)입니다. 먼저 필요한 정보와 생성자를 만들어 줄 Java 클래스 name : Member를 만들어 줍니다. 필요한 정보는 id, email, password, name, date(Date 클래스 API) 입니다. private 변수 선언을 해줍니다. 그리고 생성자(constructor)를 만들어 주는데 빈(empty) 것 하나와 필드 변수가 내재되어 있는 것 두 개를 만들어줍니다...
2020.09.15 -
[Spring] - 요청 처리(@Request/Get/PostMapping)
#요청 처리방식 #@RequestMapping, @GetMapping, @PostMapping 1. RequestController를 만들어 클라이언트 요청 처리 1) Request 이동 경로 클라이언트의 요청이 들어오면 DispatcherServlet으로 도착한다. Handler Mapping이 컨트롤러를 검색하고, 찾은 Controller의 해당되는 메서드를 Handler Adapter가 URI를 기준으로 찾는다. Controller는 Service, DAO(개발자 작성)를 거쳐 DB에 접근해서 데이터를 가져오고 View까지 인도해준다. 2) RequestController 생성 Java 클래스는 src/main/java에 생성된다. 패키지명 com.spring.web GroupId와 Artifact..
2020.09.08 -
[Spring Boot] 주가 확인(Stock market) 웹사이트 만들기 (1)
#Spring Boot 비전공자가 정처기 자격증을 가진다고 전공자 만큼의 지식을 지녔음을 증명한다는 건 터무니 없다.(주관적인 의견) 학원 상담만 했을 땐 비전공자는 정처기가 필수래서 이렇게 믿었다 난. 대기업, 공기업을 위해 반드시 필요한 줄 알았다. 그러나 크게 플러스로 작용하지 않는다. 머기업, 공기업은 전공자들도 들어가기 힘든데 비전공자인 나는 내 기준에서 날고 기어야한다. 스타트업에서 경력을 쌓으며 코딩테스트를 준비해 대기업 입사가 현실적인 기준에 맞을수도 있다. 아무렴 스스로 Spring Boot를 이용해 웹사이트 정도는 만들줄 알아야 회사에서 써줄 것 같았다. 아침에 겁먹고 한동안 컴퓨터 근처에는 가지도 않다가 저녁이 돼서야 구글링 해가며 Spring Boot 설정과 DB 연동 맛보기까지 할..
2020.09.08