김영한 님의 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 강의를 보고 작성한 내용입니다.
https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%EC%9E%85%EB%AC%B8-%EC%8A%A4%ED%94%84%EB%A7%81%EB%B6%80%ED%8A%B8/dashboard
Controller 내부의 메서드에 url을 mapping
요청 받은 url과 일치하는 메서드가 실행
화면에 띄우고자 하는 데이터를 Model에 담아서 view의 이름을 return
viewResolver가 return한 view 이름을 resources/templates
에서 찾아서 처리
View에 필요한 데이터를 담는 역할
Controller에서 parameter에 적어준다
model.addAttribute('이름', '데이터')
형식으로 Model에 데이터를 추가한다
@RequestParam("parameter name") 데이터타입 이름
@PostMapping
을 통해 form 형식으로 데이터를 받는다
화면에 데이터를 띄울 때 MVC처럼 model에 데이터를 담아 view에 전달하는 것이 아니라 데이터 자체를 전달
Controller의 메서드에 @ResponseBody
어노테이션을 사용
viewResolver가 아닌 HttpMessageConverter
가 동작한다
기본 문자처리: StringHttpMessageConverter
기본 객체처리: MappingJackson2HttpMessageConverter
HTTP의 Body에 데이터를 담아 직접 반환한다
이 때, 반환하는 데이터가 객체라면 JSON 형식으로 반환된다
하나의 웹 어플리케이션에서 동일한 기능을 하는 객체를 계속 생성하는 것은 좋지 않음
그렇기 때문에 객체를 직접 생성하지 않고 객체를 외부에서 주입받는 DI를 사용
Spring이 Spring Container에 Spring Bean을 만들어 놓고, 이렇게 만들어진 Spring Bean을 주입받아서 사용한다
@Autowired
를 사용하면 Spring이 Spring Container에 있는 객체를 가져와 연결시켜준다
DI 방식에는 필드 주입, setter 주입, 생성자 주입 3가지 방법이 있다
Bean 설정을 담당하는 클래스를 생성하고 @Configuration
어노테이션을 붙인다
각각의 Bean에는 @Bean
어노테이션을 붙인다
https://velog.io/@hj_/SpringBoot-2-14.-%EC%8A%A4%ED%94%84%EB%A7%81-%EB%B9%88-%EB%93%B1%EB%A1%9D
@Component
, @Container
, @Controller
, @Service
, @Repository
위 어노테이션이 있으면 Spring Container에 객체를 생성한다
AOP: Aspect Oriented Programming ( 관점 지향 프로그래밍 )
공통 관심 사항 로직을 작성하고 원하는 곳에 적용한다
@Aspect
: 해당 클래스가 AOP를 나타내는 클래스임을 나타냄
@Around
: AOP를 어디에 적용할 것인지 타켓팅
https://velog.io/@hj_/Spring-Boot-30.-AOP-%EB%B6%80%EA%B0%80-%EA%B8%B0%EB%8A%A5-%EC%A3%BC%EC%9E%85