springMvc2_Login 스프링 MVC 2편 - 백엔드 웹 개발 활용 기술 - (로그인 처리) 쿠키는 브라우저에 담겨, 모든 요청이 있을 때마다 서버도 전달된다. 쿠카는 영속쿠키와 세션쿠키가 있다 영속 쿠키 : 만료 날짜를 입력하면 해당 날짜까지 유지된다. 세션 쿠키 : 만료 날짜를 생략하면 브라우저 종료시 까지만 유지된다. 브라우저 종료시 로그아웃이 되길 기대하므로, 우리에게 필요한 것은 세션 쿠키이다.?? 이상하네 우리는 요청 할 때마다 연장되는거였으니까 세션쿠키가 아니라 영속쿠키를 한거아냐??????? 그렇다면 로그인과 로그아웃 처리를 Cookie를 통해 해보자 LoginController.java // 로그인 Cookie idCookie = new Cookie("memberId", Strin..
springMvc2_validation 스프링 MVC 2편 - 백엔드 웹 개발 활용 기술 - Validation 4장 Validation V1 errors?.containsKey('itemName') 오류 메시지 V2 Java BindingResult addError FieldError ObjectError bindingResult.addError(new FieldError("item", "itemName", "상품 이름은 필수 입니다.")); bindingResult.addError(new ObjectError("item", "가격 * 수량의 합은 10,000원 이상이어야 합니다. 현재 값 = " + resultPrice)); bindingResult.hasErrors() Thymeleaf #fie..
ApplicationContext는 자바의 환경설정파일을 만들 때 다양한 방식으로 정보를 만들 수 있도록 도와준다. 아래 그림을 확인해보면 Annotation을 이용할 수 있도록 도와주는 AnnotationConfigApplicationContext XML파일로 환경설정 될 수 있도록 도와주는 GenericXmlApplicationContext 등이 있다. 우리는 보통 어노테이션을 활용한 AnnotationConfigApplicationContext를 사용한다. (스프링부트를 많이 사용하면서 XML기반은 잘 사용하지 않는다) 그래도 간단하게 예제로 알아보며 비교해보자 1. 어노테이션 이용하여 Bean등록하기 어노테이션을 이용하려면 AnnotationConfigApplicationContext을 사용한다...
BeanFactory와 ApplicationContext BeanFactory는 스프링 컨테이너를 만들어주는 가장 최 상위 인터페이스이다. 스프링 빈을 관리하고 조회하는 역할을 한다. 예시로 getBean 등 관련된 함수를 가지고있다. 우리는 보통 스프링컨테이너를 ApplicationContext라고 부른다. ApplicationContext는 BeanFactory를 모두 상속받아서 제공해준다. 그렇다면 BeanFactory를 직접 사용하면 되지않은가? 라는 의문이 들 수 있지만, ApplicationContext는 BeanFactory에서 상속받은 기능 말고도 다양한 기능을 한다. 아래 그림을 참고해보자 MessageSource 메시지소스를 활용한 국제화 기능 예를들어서 한국에서 들어오면 한국어로, 영..
import java.util.Map; public class ApplicationContextExtendsFindTest { AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(ConfigTest.class); @Test @DisplayName("부모타입으로 조회 시,자식이 둘 이상 있으면 중복오류가 발생한다.") void findBeanType() { Assertions.assertThrows(NoUniqueBeanDefinitionException.class, () -> ac.getBean(DiscountPolicy.class)); } @Test @DisplayName("둘 이상의 자식이 있는 경우, 빈 이름을..
@Configurable 어노테이션을 통해 스프링 컨텍스트에 빈을 등록한 후 확인하는 방법을 테스트 코드로 작성해보겠다. @Configurable public class AppConfig { @Bean public MemberService memberService(){ return new MemberServiceImpl(getMemberRepository()); } @Bean private MemberRepository getMemberRepository() { return new MemoryMemberRepository(); } @Bean public OrderService orderService(){ return new OrderServiceImpl(getMemberRepository(), getDi..
좋은 객체 지향 설계의 5가지 원칙(SOLID) SRP: 단일 책임 원칙(single responsibility principle) OCP: 개방-폐쇄 원칙(Open/closed principle) LSP: 리스코프 치환 원칙(Liskov substitution principle) ISP: 인터페이스 분리 원칙(Interface segregation principle) DIP: 의존관계 역전 원칙(Dependency inversion principle) 1. SRP: 단일 책임 원칙(single responsibility principle) 한 클래스는 하나의 책임만 가져야 한다. 하나의 책임이라는 것은 모호하다. 클 수 있고, 작을 수 있다. 문맥과 상황에 따라 다르다. 중요한 기준은 변경이다. 변경이..
- Total
- Today
- Yesterday
- 영속성 컨텍스트
- container
- 최종연산
- 자바8
- Intellij
- java
- docker
- install
- map
- ApplicationContext
- 차이
- 중간연산
- vscode
- JPA
- Vuex
- Vue
- NPM
- nginx
- 람다
- webpack
- lambda
- stream
- BeanFactory
- mvn
- elasticsearch
- 스트림
- MAC
- AnnotationConfigApplicationContext
- springboot
- ngnix
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |