Today I Learned
web.xml 설정 변경, RedirectAttributes, 생성자활용하여 서비스,dao 연결 본문
web.xml 설정 변경
- 소스를 파악해야할 때 열어서 확인해야 하는 파일
- 초기설정이 다다르기때문에 web.xml 에 들어가서 읽기
- 이 안에 시작하자마자 읽는 파일, 요청이 오면 읽는 파일 설정을 볼 수 있음
- 시작하자마자 읽는 파일은 root폴더 밑에 *-context.xml로 끝나는 파일을 모두 읽는다 (spring 밑에 root 폴더 만들고 거기 Root-context.xml 넣어주기)
- 요청이 들어올 때 읽는 설정 파일은 appServlet폴더 밑에 *-context.xml로 끝나는 파일을 모두 읽는다
- 이 설정을 하기전엔 datasource.xml, mybatis.xml 따로 파일을 만들어주고, servlet-context.xml import해줬지
web.xml 설정 변경을 해줌! 그렇담 db관련 설정은 어디다하면 될까?
: 서버가 켜지자마자 준비하고있다가 요청할 때 일하는게 좋겠지? 그럼 root폴더 밑에 하는게좋을듯
datasource랑 mybatis 설정 둘 다 root에 넣기
어디에 설정을 해줘야할지 모르겠을땐 root에 넣고 뱉어내면 그땐 servlet.xml에 넣으면 돼!
* 설정관련 파일을 만들 때, web.xml에 설정한대로 뒤에 -context.xml 붙여주기
RedirectAttributes
RedirectAttributes : 리다이렉트에 속성을 주겠다
redirect를 써서 페이지 이동을 할 경우 response객체를 써서 msg를 못받음
세션에 저장했다가 뿌려주고 지워주기 등 방법이 있지만 이게 더 쉬운 방법
rAttr.addFlashAttribute()
: 속성을 잠깐 넣었다가 쓰고 나면 지워버리겠다
@autowired 의 문제점을 보완하고자 생성자를 사용하기
- autowired는 클래스를 가져오는 시점의 문제가 있다. (대규모 서비스의 경우)
: 객체화 한번하고 끌어쓰는거 였는데 사용량이 많은 상황엔 문제가 생긴다는걸 발견! - > 많은사람들이 사용하면 서비스 연결 전에 요청 이 들어와버림
다른 방법.1
- lombok의 @RequireArgConstructor를 사용해 준다.
: 변수를 선언하면 알아서 게터 세터 생성 / 필수적인 인자값을 생성자에 넣음 // @Autowired 와 같은거구나 생각하기
(우리는 lombok을 사용하지 않고 있기 때문에 직접 생성자에게 실행 해 준다. )
다른 방법.2 : 생성자
그럼 클래스가 생기자마자 연결하면 안돼??
-> 클래스가 생기자마자 생성자 하는거 처럼 클래스가 객체화 될 때 생성자가 실행됨
- 컨트롤러 생성 되는 시점에 서비스를 끌고 와서 시점의 문제가 생기지 않음
- 컨트롤러에 요청이 들어가면 서비스도 이미 동작할 준비가 되어있음
//여기서만 써야함 - private final
//빨간줄 생기는 이유 : 아무것도 안들어갔는데 괜찮아?
private final HomeService service;
// 스프링 ioc 알아서 넣어줌
public HomeController(HomeService service) {
this.service = service;
}
ex) 서비스에서 dao 연결
private final HomeDAO dao;
public HomeService(HomeDAO dao) {
this.dao = dao;
}
04_LoginService
+
- service를 액션이라고도 한다.
+
로그인 기능
- 예전에는 null로 있냐 없냐 했지만 nullpointexception이 일어날 수 있다
-> 예전에 한 방법 : String loginId = service.login(id,pw); / if(loginId != null)
cnt로 받아? 몇개있어? 로 물어보기 count
'Spring Framework' 카테고리의 다른 글
Properties 설정 (0) | 2022.07.11 |
---|---|
커넥션 풀 설정 (0) | 2022.07.11 |
Spring_aliase설정 (0) | 2022.07.11 |
Spring_transaction (0) | 2022.07.11 |
Spring_동적쿼리, ModelAndView (0) | 2022.07.10 |