BeanFactory스프링 컨테이너의 최상위 인터페이스스프링 빈을 관리하고 조회하는 역할을 담당getBean() 제공 ApplicationContext빈 관리기능 + 편리한 부가 기능 제공메시지소스를 활용한 국제화 기능환경변수애플리케이션 이벤트이벤트를 발행하고 구독하는 모델을 편리하게 지원편리한 리소스 조회 XML 설정 사용// xml // userRepository // discountPolicy// 여기를 고려 BeanDefinition빈 설정 메타정보라 함class, xml, xxx 등을 읽어서 BeanDefinition을 만들고스프링 컨테이너는 BeanDefinition만 알고자 함 BeanClassName: 생성할 빈의 클래스명factoryBeanName: 팩토리 역할의 빈을 사용할 경..
의존 관계public interface DiscountPolicy { int discount(Member member, int price);}public class FixDiscountPolicy implements DiscountPolicy { private int discountFixAmount = 1000; @Override int discount(Member member, int price) { if (member.getGrade() == Grade.VIP) { return discountFixAmount; } else { return 0; } }}public class RateDiscountPolicy implements ..
Controller 동작 관련@Controllerclass ~ { @GetMapping("test") public String ~ (@RequestParam("a") String a, Model model) { model.addAttribute("a", a); return "test_view"; }}// Controller로 등록하고// @GetMapping 안에 적어준 경로가 요청되면// ?a=test 이런식으로 @RequestParam에 들어갈 내용을 받아주고// model에 a라는 이름으로 받아온 값을 저장해서// test_view로 던져주면// test_view에서는 던져준 a를 view에 원하는 곳에 활용@Controller@ResponseBody // 얘 추가됌c..
Servlet 실행 안되거나jsp 실행이 안된다? maven, java17, tomact10.1.28 사용jakarta EE 10 사용 Tomcat 다운https://tomcat.apache.org/download-10.cgiEdit configuration 설정Edit Configuration => tomcatServer local => Server에 Configure 누르고 다운한 파일 경로 추가deployment + artifacts => application context "/"로 설정 Edit Configuration 설정 과정 중 Artifact가 없을 경우Project Structure => Artifacts => 왼쪽 위 "+" 버튼 => web Application: Exploded ..
웹 스코프웹 스코프는 웹 환경에서만 동작한다.웹 스코프는 프로토타입과 다르게 스프링이 해당 스코프의 종료시점까지 관리한다. 따라서 종료 메서드가 호출된다.requestHTTP 요청 하나가 들어오고 나갈 때 까지 유지되는 스코프각각의 HTTP 요청마다 별도의 빈 인스턴스가 생성되고 관리된다. sessionHTTP Session과 동일한 생명주기를 가지는 스코프application서블릿 컨텍스트( ServletContext )와 동일한 생명주기를 가지는 스코프websocket웹 소켓과 동일한 생명주기를 가지는 스코프 @Scope(value = "request")HTTP 요청 당 하나 씩 생성되고, HTTP 요청이 끝나는 시점에 소멸requestURL 은 이 빈이 생성되는 시점에는 알 수 없으므로, 외부에서 ..
스코프빈이 존재할 수 있는 범위싱글톤기본 스코프, 스프링 컨테이너의 시작과 종료까지 유지되는 가장 넓은 범위의 스코프이다.프로토타입스프링 컨테이너는 프로토타입 빈의 생성과 의존관계 주입까지만 관여하고 더는 관리하지 않는 매우 짧은 범위의 스코프이다.웹 관련 스코프request : 웹 요청이 들어오고 나갈때 까지 유지되는 스코프이다.session : 웹 세션이 생성되고 종료될 때 까지 유지되는 스코프이다.application : 웹의 서블릿 컨텍스트와 같은 범위로 유지되는 스코프이다. 컴포넌트 스캔 자동 / 수동 등록@Scope("prototype")@Componentpublic class HelloBean {}@Scope("prototype")@BeanPrototypeBean HelloBean() { r..