개인공부-11

박상훈·2023년 6월 1일
0

개인공부

목록 보기
11/16

1. 다시 보는 Spring MVC2편 공부

2. Thyleaf 기본객체

  • 여기서 요청 Param 즉 쿼리 Param을 View에 전달하기 위한 방법

1) Controller에서 HttpServletRequest에서 요청 파라미터를 Model에 담아 View로 랜더링 해준다.

  @GetMapping("/basic-objects")
    public String basicObjects(HttpSession httpSession, HttpServletRequest httpServletRequest, Model model){
        httpSession.setAttribute("sessionData","Hello Session");
        model.addAttribute("paramData",httpServletRequest.getParameter("paramData"));
        return "basic/basic-objects";
    }
<li> <span th:text="${paramData}"></span></li>

2) Thymleaf에서 제공하는 문법을 사용한다.

<li>request = <span th:text="${param.paramData}"></span></li>
<li>request = <span th:text="${session.sessionData}"></span></li>
<li>request = <span th:text="${@helloBean.hello}"></span></li>

-> Thymleaf에서는 쿼리파람을 자주 사용하기 때문에 Controller에서 랜더링 해주지 않아도 사용가능!

3. @Bean, @Configuration, @Component

  • 기본 MVC를 공부하다가 그냥 당연하게 등록하고 사용하던 Bean등록 방법에 대한 궁금증에 다시 정리.

@ Bean

  • 메소드 레벨에 작성이 가능하다 = 우리가 외부 라이브러리( 수정 불가한 만들어진 클레스 )를 사용한다면,
    싱글톤을 보장하면서 Bean으로 등록 할 수 있다는 말이다.
  • 메소드의 return new ~~ 로 생성한 객체를 빈으로 등록한다.
  • Spring Security에서 passwordEncoder를 사용한 예시
package com.sparta.soomtut.config;

import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Bean;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.security.crypto.password.PasswordEncoder;

@Configuration
public class PasswordEncoderBean {
    
    @Bean 
    public PasswordEncoder passwordEncoder() {
        return new BCryptPasswordEncoder();
    }
    
}

@Configuration

  • @Bean 어노테이션이 붙은 메소드를 통해 빈으로 등록할 때, 그걸 알려주는 부분이라고 생각하면 편함.

@Component

  • 위와 같이 수동으로 @Bean을 등록할 필요가 없을 때 = 개발자가 class수정이 가능한 경우
    클레스 레벨에 붙여줌으로써 Bean으로 등록하기 위함.
profile
기록하는 습관

0개의 댓글