Spring(8)
-
[Spring boot Maven] build 실패 (invalid target release: 17 -> [Help 1])
보호되어 있는 글입니다.
2022.04.22 -
7장. AOP 프로그래밍
교수님 요약 스프링 프로그래밍 주요 사항 제공 기능들을 빈 컨테이너로 구현 컨테이너의 내용은 설정클래스 혹은 설정파일로 기술 컨테이너 기능의 사용은 자바 어노테이션으로 기술 스프링 MVC 등 관련 프레임워크들을 제공 제작 어플리케이션의 골격(아키텍쳐) 코드 제공 객체 사이의 느슨한 결합 스프링 DI (외부 설정에 의한 의존 주입) 자바 : 접근제한자에 의한 캡슐화 달성 구현 코드의 높은 응집력 스프링 AOP (관점에 따른 구현 객체 분리) 자바 : 상속에 의한 중복코드 축소 및 응집력 강화 AOP : 관점지향 프로그래밍 구현 코드의 응집력을 높이기 위해 객체 구현시 공통기능 객체와 핵심기능 객체를 분리하여 제작하는 기술 즉 객체가 수행해야할 작업을 관점 중심으로 분리하여 별도로 객체로 구현한 후 런타임 ..
2021.10.06 -
6장. 빈 라이프사이클과 범위
1. 스프링 컨테이너의 라이프 사이클 스프링 컨테이너는 아래와 같은 라이프 사이클을 가짐. 초기화 → 사용 → 종료 // 1. 컨테이너 초기화 AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext(설정파일.class); // 2. 컨테이너에서 getBean() 메소드를 통해 빈 객체를구해서 사용 대상클래스 obj = ctx.getBean("객체명", 대상클래스명.class); // 3. 컨테이너 종료 ctx.close(); 컨테이너 초기화, 종료시 다음의 작업도 함께 수행됨. 컨테이너 초기화 → 빈 객체의 생성, 의존주입, 초기화 컨테이너 종료 → 빈 객체의 소멸 2. 스프링 빈 객체의 라이프 사이클 스프링 컨테이너..
2021.10.06 -
5장 컴포넌트 스캔 (자동 빈 등록)
5장 컴포넌트 스캔 (자동 빈 등록) 자동 주입과 함께 사용하는 추가 기능이 컴포넌트 스캔임. 컴포넌트 스캔은 스프링이 직접 클래스를 검색해서 빈으로 등록해주는 기능. ⇒ 개발자, 유지보수자 간에 신경써야 하는 객체는 자동등록 하지 말고 수동등록 사용. 1. @Component 어노테이션으로 스캔 대상 지정 스프링이 검색해서 빈으로 등록할 수 있으려면 클래스에 @Component 어노테이션을 붙여야 함. 어노테이션에 값을 주면 해당 이름으로 빈 등록. @Component("mDao") public class MemberDao{ ... }이때 값을 따로 지정하지 않으면 빈은 클래스 이름이 첫글자가 소문자인 형태로 등록. ex) MemberDao ⇒ memberDao 2. @ComponentScan 어노테이..
2021.09.20 -
4장. 의존 자동주입
3장에서 살펴본 DI를 설정코드에서 직접 주입하지 않고 스프링이 자동으로 의존하는 빈 객체를 주입해주는 기능을 의존자동주입 이라고 한다. 1. @Autowired 어노테이션을 이용한 의존 자동 주입. 자동 주입 기능을 사용하면 스프링이 알아서 의존 객체를 찾아서 주입한다. 자동 주입 기능을 사용하는 법은 의존을 주입할 대상에 @Autowired 어노테이션을 붙이기만 하면 된다. 1-1. setter 방식의 의존 자동주입 @Autowired 어노테이션을 필드에 붙이면 해당 필드의 타입에 해당하는 빈을, 메서드에 붙이면(보통 setter 메서드) 메서드의 매개변수의 타입에 해당하는 빈 객체를 자동으로 의존 주입을 한다. ⇒ 필드에 적용하면 생성자와 setter 모두 적용됨. 1-2. 생성자 방식의 의존 자동..
2021.08.11 -
3장. 스프링 DI
1. 의존이란? DI는 Dependency Injection의 약자로. 의존 주입이라고 번역됨. 여기서 의존이란 객체간의 의존을 의미함. ⇒ A 클래스가 B 클래스의 메서드를 실행할 때. 이를 A가 B에 의존한다고 표현함. 의존하는 대상이 있다면 그 대상을 구하는 방법도 필요. ⇒ 가장 간단한 방법은 의존 대상 객체를 직접 생성하는 것. ex) public class A{ // 의존 객체를 직접 생성 private B b = new B(); } 이렇게 코드를 짜면 A의 객체가 생성되는 순간 B의 객체도 함께 생성되지만 유지보수에서 문제가 있음. ⇒ 의존하는 객체가 변경되면 혹은 기능을 추가한 클래스를 만들었다면, 사용하는 코드 모두 변경해야함. → 이를 해결하기 위해 스프링 DI 사용. 2. DI를 통한..
2021.08.11