자바웹개발42 [Spring] 컴포넌트 스캔 내돈내고 내가 공부한것을 올리며, 중요한 단원은 저 자신도 곱씹어 볼겸 상세히 기록하고 얕은부분들은 가겹게 포스팅 하겠습니다. 1. 컴포넌트 스캔과 의존관계 자동 주입 시작하기 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 지금까지의 AppConfig를 생각하면, @Bean으로 생성할 빈 객체에 대한 정보를 적어줬었다. 하지만 컴포넌트 스캔을 이용하면 빈을 자동 등록할 수 있다. 이전까지의 예제에서는 등록한 스프링 빈이 적어서 수동으로 가능했지, 30개만 되도 수동으로 @Bean을 적어 등록하기는 힘들어진다... 따라서 보통 컴포넌트 스캔을 이용한다. 바뀐 AutoAppConfig는 다음과 같다. @Configuration @ComponentScan( excludeFil.. BackEnd/Spring 2022. 2. 4. [Spring] 싱글톤 컨테이너 내돈내고 내가 공부한것을 올리며, 중요한 단원은 저 자신도 곱씹어 볼겸 상세히 기록하고 얕은부분들은 가겹게 포스팅 하겠습니다. 1. 싱글톤 컨테이너 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 스프링 컨테이너는 싱글톤 패턴을 적용하지 않아도 객체 인스턴스를 싱글톤으로 관리한다. 이렇게 싱글톤 객체를 생성하고 관리하는 기능을 싱글톤 레지스트리 라고 한다. 이러한 기능 덕에 싱글톤을 위한 지저분한 코드가 들어갈 필요도 없으며, DIP, OCP, 테스트 등 의 제약사항이 없어진다 할 수 있다! 간단한 테스트 하나 해보자~ @Test @DisplayName("스프링 컨테이너와 싱글톤") void springContainer(){ ApplicationContext ac = ne.. BackEnd/Spring 2022. 2. 3. [Spring] 스프링 컨테이너와 스프링 빈 내돈내고 내가 공부한것을 올리며, 중요한 단원은 저 자신도 곱씹어 볼겸 상세히 기록하고 얕은부분들은 가겹게 포스팅 하겠습니다. 1. 스프링 컨테이너 생성 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 스프링 컨테이너가 생성되는 과정과 코드를 살펴보자! 다음 코드를 먼저 살펴보자. ApplicationContext applicationContext = new AnnotationConfigApplicationContext(AppConfig.class); 애노테이션 기반의 구성 정보를 담고 있는 AppConfig.class가 있다. 이를 사용하여 스프링 컨테이너를 생성할 수 있다. 위의 ApplicationContext는 인터페이스에 해당한다. 따라서 이를 구현한 여러 구현체.. BackEnd/Spring 2022. 2. 1. [Spring] 스프링 핵심 원리 이해2 - 객체 지향 원리 적용 내돈내고 내가 공부한것을 올리며, 중요한 단원은 저 자신도 곱씹어 볼겸 상세히 기록하고 얕은부분들은 가겹게 포스팅 하겠습니다. 1. 새로운 할인 정책 개발 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 우리의 기획자님 께서 기존에 1000원 씩 할인해주던 정책에서 10%를 할인해주는 정책으로 갑자기 바꾸고 싶다고 한다... 이에 대응한 정률할인정책 을 추가해보자. 구현체를 하나 새로 만들었다! package hello.core.discount; import hello.core.member.Grade; import hello.core.member.Member; public class RateDiscountPolicy implements DiscountPolicy{ priv.. BackEnd/Spring 2022. 2. 1. [Spring] 스프링 핵심 원리 이해1 - 예제 만들기 내돈내고 내가 공부한것을 올리며, 중요한 단원은 저 자신도 곱씹어 볼겸 상세히 기록하고 얕은부분들은 가겹게 포스팅 하겠습니다. 이번시간에는 Spring이 왜 나왔는지 를 이해하기 위해하는 단원으로 잘못된 코드로부터 시작하여 점점 유지 보수가 편한 코드로 바뀌어가는 과정을 확인하는 시간 이였다. 블로그에는 일부 코드들은 생략하여 올리지 않았습니다. 1. 회원 도메인 설계 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 먼저 회원 클래스를 통하여 설계할 구조를 파악하였다. 서비스 인터페이스를 구현한 impl 과 MemberRepository 인터페이스를 만든다. 구현체는 언제든 변경 가능하다. 다만 class 다이어그램만으로는 runtime때 동적으로 설정되는 관계를 알기 어.. BackEnd/Spring 2022. 1. 31. [Thymeleaf] 체크 박스 - 멀티 인프런 김영한님의 Spring강의에서 공부한것을 올리며, Thymeleaf의 경우 unit 단위로 공부후 각각 정리하는 글을 작성하겠습니다. 멀티 체크 박스 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 우선 모델에 데이터를 담는 컨트롤러를 확인해 봅시다. @ModelAttribute("regions") public Map regions(Model model) { Map regions = new LinkedHashMap(); regions.put("SEOUL", "서울"); regions.put("BUSAN", "부산"); regions.put("JEJU", "제주"); model.addAttribute("regions", regions); return regions; .. BackEnd/Thymeleaf 2022. 1. 30. [Thymeleaf] 레이아웃 인프런 김영한님의 Spring강의에서 공부한것을 올리며, Thymeleaf의 경우 unit 단위로 공부후 각각 정리하는 글을 작성하겠습니다. 레이아웃 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 이전 템플릿 조각에서는 코드 조각을 갖고와서 내가 원하는 부분에 추가하는 방식 이였다면 (내 코드 공통 부분) 예를 들어서 layoutMain(내 코드) 메인 컨텐츠 결과는 다음과 같습니다. 우선 http://localhost:8080/template/layout 에 접속하면 컨트롤러가 작동하여 "template/layout/layoutMain" 의 뷰로 이동하게 된다. layoutMain 에서는 로 인하여 head 부분을replace하기위해 공통부분인 base를 끌어온다. 이.. BackEnd/Thymeleaf 2022. 1. 30. [서평] 처음 해보는 Servlet & JSP 웹 프로그래밍 저의 돈으로 직접사서 직접 완독해본후 써보는 후기입니다. 따라서 장점은 장점대로 칭찬할것이며, 단점은 단점대로 언급할 것 입니다. 처음 해보는 Servlet & JSP 웹 프로그래밍 저자 : 오정임 출판 : 루비페이퍼 발매 : 2017.03.22. 2021/8/18 ~ 2021/09/03 1) 책의 표지 2) 단원별 구성 3) 읽은소감 우선 저의 글의 앞부분만 보는 분들을 위해 먼저 간단히 3가지에 대해 답해보겠습니다. Q 이 책을 읽기 전에 필요한 수준/ 지식은? => JAVA 언어정도는 어느정도 알아야 읽을 수 있습니다. 막 문법을 익히신 분들께 JAVA 복습겸 보면 좋은것 같습니다. Q 이 책을 읽어야 할 필요성, 어디에 도움이 될까? => 웹개발 에서 JAVA 하면 떠오르는 것이 S.. Life/Book Record 2022. 1. 28. [Thymeleaf] 블록 인프런 김영한님의 Spring강의에서 공부한것을 올리며, Thymeleaf의 경우 unit 단위로 공부후 각각 정리하는 글을 작성하겠습니다. 블록 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 블록은 HTML 태그가 아닌, 타임리프의 유일한 자체 태그이다. 블록은 each 문에서의 불편한점을 보완하는데, 어떤 부분을 보완하는지는 다음 코드를 살펴보자. 컨트롤러와 뷰 코드는 다음과 같다. @GetMapping("/block") public String block(Model model){ List list = new ArrayList(); list.add(new User("UserA", 10)); list.add(new User("UserB", 20)); list.add(n.. BackEnd/Thymeleaf 2022. 1. 28. [Thymeleaf] 조건부 평가 인프런 김영한님의 Spring강의에서 공부한것을 올리며, Thymeleaf의 경우 unit 단위로 공부후 각각 정리하는 글을 작성하겠습니다. 조건부 평가 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 조건부 평가는 말 그대로 if 문과 같이 어떤 문장이 참일경우 실행하는 것 이다. if, unless(if의 반대) 2가지 가 있다. 간단한 컨트롤러는 다음과 같다. @GetMapping("/condition") public String condition(Model model){ List list = new ArrayList(); list.add(new User("UserA", 10)); list.add(new User("UserB", 20)); list.add(new Us.. BackEnd/Thymeleaf 2022. 1. 27. [Thymeleaf] 속성 값 설정 인프런 김영한님의 Spring강의에서 공부한것을 올리며, Thymeleaf의 경우 unit 단위로 공부후 각각 정리하는 글을 작성하겠습니다. 속성 값 설정 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 타임리프에서 속성값을 지정할때는 th:* 와 같이 속성을 적용하면 기존 속성을 대체한다. 만약 기존 속성이 없다면 새로 만든다. 우선 컨트롤러부터 하나 만들어 봅시다. @GetMapping("/attribute") public String attribute() { return "basic/attribute"; } 아주 간단한 컨트롤러 입니다. 이제 이를 처리할 뷰는 다음과 같습니다. 속성 설정 속성 추가 - th:attrappend = - th:attrprepend = -.. BackEnd/Thymeleaf 2022. 1. 27. [Thymeleaf] 유틸리티 객체와 날짜 인프런 김영한님의 Spring강의에서 공부한것을 올리며, Thymeleaf의 경우 unit 단위로 공부후 각각 정리하는 글을 작성하겠습니다. 유틸리티 객체와 날짜 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 타임리프는 문자, 숫자, 날짜, URI등을 편리하게 다루기 위한 유틸리티 객체들을 제공한다. ● 타임리프 유틸리티 객체들 #message : 메시지, 국제화 처리 #uris : URI 이스케이프 지원 #dates : java.util.Date 서식 지원 #calendars : java.util.Calendar 서식 지원 #temporals : 자바8 날짜 서식 지원 #numbers : 숫자 서식 지원 #strings : 문자 관련 편의 기능 #objects : 객체.. BackEnd/Thymeleaf 2022. 1. 26. 이전 1 2 3 4 다음