DAY-72 Spring 수업 시작(기초)
💻2022-06-14
❗ 수업을 듣고, 개인이 공부한 내용을 적은 것 이기에 오류가 많을 수도 있음
1️⃣ 설정
- 인코딩 utf-8
- Eclipse Marketplace
- src/main/resources에 applicationContext.xml 파일 생성 (new → spring bean configuration file)
2️⃣ 스프링 시작
BeanFactory 클래스처럼 인스턴스를 찍어내는 작업을 클래스가 아닌 applicationContext.xml 에서 함
🔔 용어 및 작동원리
직접 등록(인스턴스, 클래스, 객체)
id : 생성하고자 하는 인스턴스의 이름
class : 생성하고자 하는 인스턴스 클래스의 경로값
스프링 컨테이너 : 프레임워크에서 관리하는 인스턴스, 리소스등을 담고 있는 바구니
GenericXmlApplicationContext : XML 파일로부터 정보를 읽어와 객체를 생성하고 초기화
Dependency Injection(DI) : 의존성 주입, constructor injection(생성자 주입) / setter injection(세터 주입) 존재
applicationContext.xml
<bean id="samsung" class="com.kh.intro.SamsungLaptop"/>
Laptop.java
Run
🔔 Dependency Injection(DI) : 의존성 주입
applicationContext.xml
- 방법1 - 생성자 주입
-
태그 사용 - index : 인자의 순서
- value : 인자로 들어갈 값
- 주입 대상이 생성자
- 방법2 - setter 주입
- setter를 이용한 의존 객체 주입
-
태그를 사용 - name : 변수이름
- value : 변수로 들어갈 값
- setter/getter 메소드 필요
- 주입 대상이 메서드
3️⃣ 프로젝트 생성시
- 프로젝트 우 클릭 후 → properties → facet 자바 / dynamic web module 버전 변경
- pom.xml 자바 / 스프링 버전 확인 → 11 / 5.3.20
- pom.xml logging 부분 바꿔주기
- HomeController 바꾸기
🔔 Mapping
component-scan : base-package 속성 안에 들어가있는 경로를 검사하면서 @annotation이 붙은 클래스들의 instance를 생성하는 역할
servlet-context
HomeController
- servlet-context의 viewResolver를 통해서 HomeController에서 return되는 값들을 home.jsp / test.jsp 이런식으로 안해도 되는것 → jsp의 이름만 붙여주면 된다
💡 만약 아래와 같이 views안에 바로 jsp 가 있는것이 아닌 temp 라는 폴더가 존재하고 그 안에 jsp 가 존재한다면
주소창에는 @RequestMapping의 주소인 localhost/test2 로 입력해야 페이지 이동
Leave a comment