▶Bean Configuration 이 무슨 뜻일까?
→설정을 구성한다는 뜻
[파이널 기획]
1. 부트스트랩 진행상황 확인
2. 금요일(18일) 데드라인 목표로 부트스트랩 분업 후 작업 들어가기
[오늘의 계획]
1. 수업내용 복습
2. 7시반 파이널프로젝트 회의
[오늘의 공부]
[컨텍스트 경로를 제공받아 표현하는 방법]
★ CSS, 이미지 파일들은 모두 절대경로로 표시해 주어야 한다.
1. 컨텍스트의 경로는 EL 표현식에서 pageContext 내장객체를 이용하여 표현 가능하다
<img src="${pageContext.request.contextPath}/images.01.png" width="200">
2. 컨텍스트 경로는 Core 태그 라이브러리의 url태그를 사용하여 표현이 가능하다.
->컨텍스트 경로가 자동으로 포함되어 표현된다.
3. Spring lib 추가 , Spring 태그 라이브러리의 url태그를 사용하여 표현 가능.
->컨텍스트 경로가 자동으로 포함되어 표현된다.
[tiles-extra]
- 템플릿 페이지를 이용한 사이트 구현 기능을 제공하는 라이브러리
- pom.xml 에 환경설정 해주어야 한다.
[Tiles]
- 템플릿 페이지를 이용한 사이트 구현 기능을 제공하는 프로그램
1. tiles 관련 라이브러리를 빌드 처리한다 - pom.xml
2. 요청 처리 메소드에서 반환받는 ViewName을 Tiles프로그램으로 응답되도록 ViewResolver를 설정
[servlet-context.xml 설정]
UrlBasedViewResolver
: 스프링에서 제공하는 viewResolver가 아닌 외부에서 제공하는 viewResolver를 이용하기 위해 응답처리하기 위한 기능을 제공하는 객체.
- viewClass 필드에 외부에서 제공하는 ViewResolver 클래스를 인젝션 처리한다.
- order 필드에는 ViewResolver 사용 우선순위를 정수값으로 인젝션 처리한다 , 정수값이 낮을수록 우선순위 높음.
<beans:bean class="org.springframework.web.servlet.view.UrlBasedViewResolver">
<beans:property name="viewClass" value="org.springframework.web.servlet.view.tiles3.TilesView"></beans:property>
<beans:property name="order" value="2"></beans:property>
</beans:bean>
TilesConfigurer
: tiles 프로그램에서 사용할 템플릿 페이지 정보가 저장된 xml 파일(Tiles Configuration File) 경로를 저장하기 위한 객체
- definitions 필드에 List 객체를 생성하여 인젝션 처리
- List 객체의 요소로 Tiles Configuration File의 경로를 추가
<beans:bean class="org.springframework.web.servlet.view.tiles3.TilesConfigurer">
<beans:property name="definitions">
<beans:list>
<beans:value>/WEB-INF/spring/appServlet/tiles.xml</beans:value>
</beans:list>
</beans:property>
</beans:bean>
[Tiles.xml 파일 설정]
<definition>
: 클라이언트 요청에 대한 응답 템플릿 페이지를 설정하기 위한 상위 엘리먼트
- name 속성 : 엘리먼트의 식별자 & ViewName 두가지의 역할을 한다.
└ name 속성값을 [*]로 설정한 경우 요청 처리 메소드에 의해 [ViewName] 형식의 ViewName 템플릿을 제공받아 응답처리할수있다.
└ name 속성값을 [*]로 설정한 경우 요청 처리 메소드에 의해 [값/값] 형식의 ViewName 템플릿을 제공받아 응답처리할수있다.
- template 속성 : 템플릿 페이지로 응답되기 위한 jsp 문서의 경로를 속성값으로 설정.
- extends 속성 : definition 엘리먼트의 식별자를 속성값으로 설정 , definition 엘리먼트의 템플릿 페이지 정보를 상속받아 사용한다.
<put-attribute>
: <definition>엘리먼트에 종속된 엘리먼트
- 템플릿 페이지를 구성하는 jsp 문서를 제공하기 위한 엘리먼트
- name 속성 : put-attribute 엘리먼트를 구분하기 위한 식별자를 속성값으로 설정
- value 속성 : 템플릿페이지에 포함될 jsp 문서의 경로를 속성값으로 설정
- 상속받은 definition 엘리먼트에서 put-attribute 엘리먼트의 식별자가 중복될 경우, 기존 jsp 문서 대신 새로운 JSP문서로 제공된다.
- definition 엘리먼트의 name속성값을 [*]로 설정한 경우, put-attribute 엘리먼트의 value속성값에서 제공되는 viewName을 {정수값} 으로 표현
[JSP 문서 파일 설정]
1. 위에 태그라이브러리 추가
2.
<tiles:insertAttribute>
: tiles configuration file의 put-attribute로 설정한 jsp문서의 실행결과를 삽입하는 태그
- name 속성 : put-attribute 엘리먼트의 식별자를 속성값으로 설정
<Mybatis 활용하기>
[Mybatis Library 환경설정 - pom.xml]
1. Mybatis Framwork를 제공하는 라이브러리
2. Spring Framework에서 Mybatis Framwork를 사용할 수 있는 기능을 제공하는 라이브러리
[클래스 만들기]
dto 만들기
dao 인터페이스 만들기
[daoImpl 만들기]
<Spring MVC에서 Mybatis Framework를 사용하여 DAO 클래스를 작성하는 방법>
1. DataSource 관련 라이브러리와 Mybatis 관련 라이브러리 빌드 처리 - pom.xml
ㅡ ojdbc, spring-jdbc(spring-tx), mybatis, mybatis-spring
2. Mybatis Framework의 환경설정파일 작성
[mybatis-config.xml]
3. SqlSessionFactory 관련 클래스와 SqlSession관련 클래스를 Spring bean으로 등록
ㅡ bean configuration file(root-context.xml)
[root-context.xml]
모든 Front Controller에서 사용할 수 있는 Spring Bean을 등록하기 위한 Bean Configuration File
ㅡ> DAO 클래스 작성에 필요한 클래스를 Spring Bean으로 등록한다.
ㅡ> DataSource, SqlSessionFactory, SqlSession, TransactionManager
1. DataSource 관련 클래스를 Spring Bean으로 등록
ㅡ Connection 객체를 생성하기 위한 값을 필드에 인젝션 처리
<bean class="org.springframework.jdbc.datasource.DriverManagerDataSource" id="dataSource">
<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/>
<property name="url" value="jdbc:oracle:thin:@localhost:1521:xe"/>
<property name="username" value="scott"/>
<property name="password" value="tiger"/>
</bean>
2. SqlSessionFactory 관련 클래스를 Spring Bean으로 등록
"configLocation"
ㅡ configLocation 필드에는 Mybatis 환경설정파일의 경로를 인젝션 처리
ㅡ SpringMVC 에서 사용하는 Spring Container(WebApplicationContext 객체)는 [src/main/webapp] 폴더(/)의 자원만 접근 가능
└ [src/main/java] 또는 [src/main/resources] 폴더에 작성된 자원에 접근하기 위해서는 classpath 접두사를 사용하여 자원의 경로를 표현한다.
"dataSource"
ㅡ dataSource 관련 Spring bean을 인젝션 처리
"typeAliasesPackage"
ㅡ dto 클래스를 작성하는 패키지를 인젝션 처리
"mapperLocations"
ㅡ xml 맵퍼 파일을 List 객체의 요소로 추가하여 인젝션 처리
└ mybatis 환경설정파일의 mappers 엘리먼트 생략 가능
└ [*] 패턴문자를 이용하여 다수의 xml 파일을 맵퍼 파일로 등록 가능(와일드카드)
3. SqlSession관련 클래스를 Spring Bean으로 등록
"constructor-arg"
ㅡ 생성자를 이용하여 sqlsessionfactory 관련 클래스의 spring bean을 인젝션 처리
ㅡ destroy-method 속성에 clearCache 메소드를 호출할 수 있도록
4. TransactionManager관련 클래스를 Spring Bean으로 등록
ㅡ id 속성을 무조건 "transactionManager" 로 설정해야 한다.
[service 클래스]
: 프로그램 실행에 필요한 기능을 제공하는 클래스
-> service 클래스의 메소드는 dao 클래스의 메소드를 호출하여 필요한 기능 구현
'일기장 > 하루 정리' 카테고리의 다른 글
220319 [토] 폴더,파일 정리 / 부트스트랩 마무리를 향해.. (2) | 2022.03.19 |
---|---|
220318 [금] Mybatis 환경설정 2 , JUnit (0) | 2022.03.18 |
220316 [수] OT , @ModelAttribute , @SessionAttribute (0) | 2022.03.16 |
220315 [화] Annotation MVC 설정 (0) | 2022.03.15 |
220314 [월] HTTP 상태코드 , SpringDAO, 동기 (0) | 2022.03.14 |