TIL (127) 썸네일형 리스트형 Service & Dao 객체 구현 # 웹 애플리케이션의 일반적인 프로그램 구조 # 한글 처리 # 서비스 객체 구현 # DAO 객체 구현 STS를 이용하지 않은 웹 프로젝트 설정하기 스프링 MVC 웹 애플리케이션 제작을 위한 폴더 생성 pom.xml 및 이클립스 import web.xml 작성 스프링 설정 파일(servlet-context.xml) 작성 root-context.xml 파일 작성 # 설정 끝난 후에는 컨트롤러와 뷰를 작성하기 시작하면 된다 MVC 웹 서비스 [ 프로젝트 전체 구조 ] # STS를 통해 간단하게 구현 가능한 구조 java파일 : java파일들이 위치한다. 주로 패키지로 묶어서 관리한다. 웹 애플리케이션에서 사용되는 Controller, Service, Dao객체들이 위치한다 webapp : 웹과 관련된 파일들(스프링 설정 파일, JSP파일, HTML 파일 등)이 위치한다 resources : JSP파일을 제외한 html, css, js 파일등이 위치한다 spring 폴더 : 스프링 컨테이너를 생성하기 위한 스프링 설정파일이 위치한다 views 폴더 : View로 사용될 JSP파일이 위치한다 pom.xml 파일 : 메인 레퍼지토리에서 프로젝트에 필요한 라이브러리를 내려받기 위한 메이븐 설정 파일 # web.xml 웹 애플리케이션에서 최초 사용자.. 웹 프로그래밍 설계 모델 # Model 1 하나의 문서에 모든 것을 다 넣기 때문에 개발 속도가 빠르지만 유지보수가 좋지 않다 # Model 2 ( 현재 가장 많이 사용하는 모델 ) Model 1을 보완하기 위해서 객체지향적으로 각각의 기능을 모듈화 시킨 모델 # 스프링 MVC플레임 워크 설계 구조 클라이언트로부터 요청이 들어오면 DispatcherServlet이 받는다 DispatcherServlet은 첫 번째로 HandlerMapping으로 보내 가장 적합한 Controller를 찾아준다 DispatcherServlet은 두번째로 HandlerAdapter로 보내 찾아본 Controller에서 가장 적합한 method를 찾아준다 DispatcherServlet은 세번째로 ViewResolver로 보내 가장 적합한 JSP를 찾.. 어노테이션을 이용한 스프링 설정 # XML 파일을 Java파일로 변경하기 @Configuration 클래스에 적용하기 생성자들에 @Bean 어노테이션 적용하기 public + 클래스명 + id return new + 클래스명 (참조해야 할 건 파라미터 안에 넣기) # property 있는 부분들은 set을 이용해서 적용시키기 # property가 list인 부분들 적용시키기 # property가 map인 부분들 적용시키기 # 어노테이션 방식으로 컨테이너 변경하기 # 자바 파일로 만든 스프링 컨테이너 분리하기 # 분리하는 이유 : 소스가 길어지면 유지보수가 어려워지고 개발자 편의상의 이유도 존재한다 (기능적으로 분리) # 파일이 달라도 컨테이너는 하나이기 때문에, 다른 클래스에서 만든 빈 객체들을 @Autowired로 끌어다가 쓸 수 있.. 생명주기(Life Cycle) # 스프링 컨테이너와 그 안의 Bean 객체들의 생성 시점은 동일하다 # 스프링 컨테이너를 close 하면 자동으로 Bean 객체들도 소멸된다 # Bean 객체의 생명주기는 스프링 컨테이너의 생명주기와 같다 1. 인터페이스를 이용한 생명주기(InitializingBean, DisposableBean) 2. init-method, destory-method 속성 의존객체 선택 # 타입이 같은 Bean들이 다수 존재할 때, 어떤 것을 선택할지 정해주어야 한다 @Qualifier 어노테이션을 이용해 우선순위를 정해줄 수 있다 [ @Inject ] @Autowired와 거의 비슷하게 @Inject 어노테이션을 이용해서 의존 객체를 자동으로 주입을 할 수 있다 @Autowired와 차이점은 @Autowired의 경우 required 속성을 이용해서 의존 대상 객체가 없어도 익셉션을 피할 수 있지만(대부분 required 속성 사용하지 않음) @Inject의 경우 required 속성을 지원하지 않는다 위에서 언급했듯이, required 속성을 사용하는 경우는 거의 없어서 @Autowired와 동일하다고 봐도 무방하다 @Autowired가 더 대중적으로 사용된다 @Autowired -.. 의존객체 자동 주입 # 의존 객체 자동 주입이란? 스프링 설정 파일에서 의존 객체를 주입할 때 || 태그로 의존 대상 객체를 명시하지 않아도 스프링 컨테이너가 자동으로 필요한 의존 대상 객체를 찾아서 의존 대상 객체가 필요한 객체에 주입해 주는 기능이다 구현 방법은 @Autowired와 @Resource 어노테이션을 이용해서 쉽게 구현할 수 있다 @Autowired : 주입하려고 하는 객체의 타입이 일치하는 객체를 자동으로 주입한다 @Resource : 주입하려고 하는 객체의 이름이 일치하는 객체를 자동으로 주입한다 # @Autowired는 constructor, property, method에 다 사용 가능하지만, @Resource는 counstructor에는 사용할 수 없다 이전 1 ··· 8 9 10 11 12 13 14 ··· 16 다음