Supersett
개발자의 하루
Supersett
Blockchain Dev
전체 방문자
오늘
어제
  • 분류 전체보기
    • 프론트
    • 회사생활
    • 블록체인
    • 프로젝트
      • 창업 프로젝트 (DRF + AWS)
      • Spring 프로젝트
    • [중앙대]멋쟁이 사자처럼
    • 기술서적
    • Problem Solving
      • 알고리즘
    • 일기장
      • 하루 정리
      • 삽질 일기
      • 조급할 때 눌러보기

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • Near Scan
  • 프로젝트
  • 자바
  • 글리치해커톤
  • java
  • 초보개발자
  • 비트코인
  • 멋쟁이 사자처럼 서류
  • 멋쟁이 사자처럼
  • 멋쟁이 사자처럼 면접
  • 블록체인정보가공
  • 면접준비
  • DEPROMEET
  • Luniverse
  • 국비교육
  • 디프만16기
  • 멋사 중앙대
  • 멋쟁이사자처럼 중앙대
  • 해커톤
  • 국비지원
  • 취업준비
  • 국비
  • 신입개발자
  • 구글소셜로그인
  • 블록체인 서버설계
  • Near Explorer
  • Multichain API
  • 자바스크립트
  • 컴퓨터학원
  • 니어프로토콜

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Supersett

개발자의 하루

220317 [목] Tiles (Template Page), Mybatis 환경설정
일기장/하루 정리

220317 [목] Tiles (Template Page), Mybatis 환경설정

2022. 3. 17. 11:29

▶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
    '일기장/하루 정리' 카테고리의 다른 글
    • 220319 [토] 폴더,파일 정리 / 부트스트랩 마무리를 향해..
    • 220318 [금] Mybatis 환경설정 2 , JUnit
    • 220316 [수] OT , @ModelAttribute , @SessionAttribute
    • 220315 [화] Annotation MVC 설정
    Supersett
    Supersett
    하루를 돌아보고 공부한 티를 내기 위해 블로그를 만들었습니다.

    티스토리툴바