63일차 2023-06-07

2023. 6. 7. 19:27Spring Boot

Spring Boot

 

스프링의 아키텍처

스프링의 아키텍쳐

 

 

이어서 작성

1.

 

 

controller01 폴더에 Controller.jsp

 

Controller.jsp

페이지를 요청하면 컨트롤러에 요청

컨트롤러에게 전송
OneMethodParamController.java

이제 다시 controller01/Controller.jsp에 반환

 

클릭 시 출력

 

 

 

 

 

 

 

2.

 

Controller.jsp

페이지를 요청하면 컨트롤러에 요청

 

MultiMethodController.java

 

 

이제 다시 controller01/Controller.jsp에 반환

 

 

 

 

3.

 

 

index.jsp에 추가

추가

 

IndexController.java 추가

 

ReturnType.jsp

 

 

 

ModelAndView반환

 

출력

ModelAndView 방법

방법1

결과)

 

방법2

결과)

ModelAndView

혹은 리졸버뷰 객체로 뷰 정보 설정

 

뷰리졸버에 객체에 뷰정보 설정

결과)

ModelAndView

 

Stiring반환

 

 

 

결과)

 

 

void타입 반환

 

ReturnType.jsp

 

ReturnTypeController.java

 

브라우저에서 console)

 

 

 

 

 

자바스크립트 자동완성 플러그인- tern 설치

 

 

 

add

이름설정: tern

주소

:http://oss.opensagres.fr/tern.repository/1.2.1/

 

 

 

ajax를 하기 위해 tern 설치 -> 프로젝트 우클릭 ->Configure->Convert to Tern Project

이건 이미 Tern으로 변경시켜서 이렇게 나옴
이걸 눌러주면됨

 

ajax로 구현 결과는 브라우저에서 콘솔창 열어 확인

 

 

혹은 

(바닐라 자바스크립트로 구현)

 

 

 

ReturnType.jsp

 

 

 

ReturnTypeController.java

결과) 브라우저 console)

객체 타입반환

ReturnType.jsp

 

 

 

 

결과) 브라우저 console)

 

 

 Dependency Injection(DI)

- IOC(Inversion Of Control:역제어)의 한 형태
- 의존성 주입 또는 종속객체 주입이라고 한다.
- 의존성이란 객체와 객체사이에 존재하는 관계를 의미
- 하나의 객체 안에서 다른 객체를 new연산자를 이용해서 생성시 
  두 객체간에 결합도가 높아지고 
  독립성이 떨어지게 된다.
- 객체 스스로 new를 통해 필요한 객체를 생성하지 않고 스프링 컨테이너에
  등록된 빈을 주입을 받아, 낮은  결합도를 유지 하는게 목적이다
  
- 주입을 받으로려면 반드시 IOC컨테이너에 빈이 등록되어 있어여 한다
  
- DI에는 필드 인젝션,세터 인젝션 및 생성자 인젝션이 있다
  생성자 인젝션을 권장한다.

 

@controller가  생성자 부름

SpringApplication의 생성자

IndexController의 생성자

OneMethod의 생성자

 

 

 

 

 

index.jsp 위치

 

index.jsp에 추가

 

 

IndexController.java 위치

 

IndexController.java에 추가

 

WEB-INF폴더하위에 views폴더 하위에 injection03폴더 생성

Injection.jsp생성

 

 

 

 

Injection.jsp

Injection.jsp

 

Constructor.do를 받기 위해 생성자 컨트롤러 생성

basic패키지에 .injection 패키지 생성

 

Person.java

InjectionController.java

ConstrictorController.java

생성

 

Injection.jsp

(프로젝트 실행시 Spring의 console의 결과

 

3개의 컨트롤러 생성

 

ConstrictorController.java

 

person을 초기화 시켜줌

person을 초기화 시켜줌

가산동,

20,

가가가

 

Person.java

package com.kosmo.springapp.basic.injection;

import org.springframework.stereotype.Component;

@Component
public class Person {
	//[속성(필드)-멤버변수들]
	private String name;
	private String addr;
	private String age;
	
	//기본 생성자
	public Person() {
		System.out.println("Person의 기본 생성자");
	}
	
	//인자 생성자
	public Person(String name, String addr, String age) {
		this.name = name;
		this.addr = addr;
		this.age = age;
		System.out.println("Person의 인자 생성자");
	}
	
	//게터/세터
	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getAddr() {
		return addr;
	}

	public void setAddr(String addr) {
		this.addr = addr;
	}

	public String getAge() {
		return age;
	}

	public void setAge(String age) {
		this.age = age;
	}
	
	@Override
	public String toString() {
		return String.format("[이름:%s,주소:%s,나이:%s]",name,addr,age);
	}
}

'Spring Boot' 카테고리의 다른 글

67일차 2023-06-13  (0) 2023.06.13
66일차 2023-06-12  (0) 2023.06.12
65일차 2023-06-09  (0) 2023.06.09
64일차 2023-06-08  (0) 2023.06.08
62일차 2023-06-05  (0) 2023.06.05