20231115
div를 폼으로 바꾸면
폼을 편지지 버튼은 편지의 발송버튼
폼안에 버튼
폼은 현재 받는이가 없다
발송하면 어디로 가냐?
주소창에 ? 추가된다
자기가 자기한테 보냄
버튼 타입 서브밋 인풋타입 서브밋 똑같은 거임
발송자가 없어서 스스로에게 보내진다
폼 온서브밋 리턴 폴스
폼 발송이 실행될때 실행되는 함수
디폴트로 하는 행동을 막게된다
사진으로는 네이버로 이동해야하지만 안간다
버튼 인풋 서브밋이 폼안에 잇어서 발송은 되지만 폼에서 막는다
로그인 할때 엔터를 친다!
div 일때는 엔터 안먹음
form만 먹는다
호오... 이걸 지금 아네.
div로 햇으면
폼안에 인풋요소는 name을 통해서 쉽게 접근할수 있다.
this사용해서
submit
폼액션에 주소넣어줘야한다
온서브밋이 없으면 무지성 발송
면밀히 체크하고 form.submit()
To : article/doWrite
title=제목
body=내용
localhost:8020/article/doWrite?title=제목&body내용 이 url이 발생한다
폼은 안쓰면 get방식이다
method="POST"로 하면
유알엘 안바뀌면 폼 액션 굳이 안써줘도 된다
폼에대해서 다배웠다.!
모든 요청은 겟
조회 목적이 아닌것은 포스트
//단 한번만 생성되고 그 이후에는 재사용되는 객체입니다
@Component
컨트롤러가 각각 객체를 만들지 않고 한번 등록하고 등록된걸 공유해서 쓴다.
= 공유 객체
@Autowired
private ArticleService articleService;
@Autowired // 필드 주입, final은 뺀다.
컴포넌트가 붙은 애만 @Autowired 할수 있다.
뉴를 안해도 된다! 싱기
아티클 레포지토리도 동일하게한다
서비스 어노테이션은
@component = @Service
@component = @Repository
가독성을 위해서...
생성자 만들때 바로 만든다
생성자가 하나면 오토와이어드 생략가능
final 필드만들
롬복
@RequiredArgsConstructor
필드 주입보다는 생성자 주입을 많이 쓰고 @RequiredArgsConstructor을 쓰면 final 생성자 주입시 생략가능하다.
위 사진에서는 필드 주입보다는 생성자 주입을 많이 쓰고 @RequiredArgsConstructor와 생성자 주입이 동시에 있어서 오류가 발생한 상황. AricleService 생성자를 지워주면 된다.
공유객체가 빈 입니다.
즉
@component 붙인 클래스의 객체 => 빈
빈은 스프링이 관리하는 객체!
컨트롤러 서비스 필요해서 컴포넌트 붙이고
서비스는 레포지토리 필요해서 컴포넌트 붙이고
어레이 리스트는 자바가 만들었다
자바에서 만들어놓은 기능은 어노테이션 못붙인다.
이럴때 어레이 리스트를 우리가 만든다
파이널 클래스면 상속도 불가능하다
빈을 생성하는 법은 다양한데
1. 컴포넌트 어노테이션 붙이면된다
2. 컴포넌트 붙이기 애매하면 아무클래스 만들어서 컴피규레이션에 빈컴포넌트 붙여준다..좀 복잡한 방법
객체 리모컨 창고인 컨텍스트가 있다.
컴포넌트 붙은거는 뉴를 하지않아도 객체가 등록이된다. 필요할때마다 공유한다.
사전등록
컴포넌트 리포지터리 서비스
컴피규레이션 붙은 클래스에 @Bean등록
스프링에 공유객체를 넣어두는 곳이 있다.
쓰레드에서
서블릿 객체가 만들어짐
수명
스프링 객체는 앱이 꺼질때가지
리퀘스트 리스폰스는 요청있을때 생기고 없어진다
어플리케이션 스코프
앱 꺼질때까지
리퀘스트 스코프
rq객체가
서블릿 필터
스프링에는 인터셉터라는 개념이 있다.
시작과 끝이 있다.
리퀘스트 받기전에 필터가 작동되고 스프링인터셉터
컨트롤러 타임리프
rq 빈을 불럿다
컴포넌트 명 안붙이면 클래스 명 소문자로 접근 가능하다
타임리프 골뱅이쓰고 빈이름 쓰면 접근 가능