(SpMVC_My_Memo)원격수업때 한 프로젝트 확인
appSvelt 폴더에서 만들어준다.
bean configuration 파일은 바로 finish를 누르면 안됌!
next를 눌러준다.
이 4개를 클릭해준다.
그리고 다시 클릭후 각 체크한 항목들마다 스크롤바를 맨 아래로 내린 후
제일 마지막 것을 체크해준다.
전부 제일 마지막 거를 체크해주면 된다.
그리고 finish를 눌러준다.
Namespaces에서 만들어줘도 되지만
자동완성할때 깨질 수 있기 때문에
파일 생성할때 해주는 것
mybatis-context에는
<!-- dataSource -->
<!-- sqlSessionFactory -->
<!-- sqlSessionTemplate -->
이 세가지가 들어가야 한다.
이 셋의 관계는 데이터 소스에서 설정된 bean이
팩토리로 주입이되고 팩토리에서 설정된 bean이
템플릿으로 주입이 되는 형태이다.
템플릿도 우리가 사용하는게 아니라
dao에 있는 mapper에 의해서만 자동으로 설정된다 하는 것
dataSource에 BasicData만 입력 한 후 ctrl + space bar를 하면 제일 첫번째 나오는 친구 클릭
SqlSessionFactory에서는 class 이름을 SqlSession으로 쓰고 ctrl + space bar를 해준다.
그리고 SqlSessionFactoryBean을 찾아 준다.
Template도 마찬가지로 SqlSession이라 적고 ctrl + space bar
그리고 SqlSession Temlate을 선택 해준다.
여기에서 id는 내가 마음대로 지정하는 것
템플릿은 지정안해줘도 된다.
데이터 소스를 주입해주기 위해 팩토리 안에다가 property라는 태그를 추가 해주었다.
data만 적고 ctrl + space bar를 눌러서 데이터 소스 선택 해준다.
ref사이에 아무것도 적지 않고 ctrl + space bar를 해주면 내가 만들어 놓은게 보인다!
이렇게 해놓으면 dataSource가 sqlSessionFactory에 자동으로 주입이 되는 것임
Template은 property라는 태그가아니라
constructor이라는 태그를 사용한다.
(construct까지 입력하고 ctrl + space bar를 해주면 생김)
그리고 ref를 클릭 해주고 한번 더 ctrl + space bar 해주면 sqlSessionFactory가 생김
가장 기본적인 구조 형태
이렇게 해주면 서로 연결 해주는 것
이런 형태가 Sp 프로젝트의 가장 큰 특징
서로 필요한 곳에 주입이 된다해서 DI라고 한다
Dependency Injection
전통적인 방법과 다르게 컨테이너가 만들어놓고 내가 필요한걸 불러 사용한다해서
IOC라고도 부른다.
property태그는 셀프 클로징
name안에 있는것들은 전부 ctrl+space bar 가 가능하다
나머지 value안에 있는 것들은 타이핑
driverClassName은 아래 사진 참조
OracleDriver를 작성 한 후 두번째 것 선택
<sqlSessionFactory>
property 두개 생성 후 셀프 클로징
mapper라 작성 한 후 ctrl + space bar
이렇게 생성 된다.
config 작성 후 configLocation 선택
<!-- mapperLocations : mapper.xml 파일이 있을 곳 지정(위치 지정) -->
<!-- configLocation : mybatis-config.xml 파일을 지정 -->
그리고 하나 더 해줄 건데 얘는 하나밖에 없어서
<mybatis하고 ctrl + space bar를 해주면 태그가 생긴다.
저기를 지정해주기 위해
spring폴더 아래에 mybatis라는 폴더를 생성 해주고
그 mybatis안에다가 mapper라는 폴더를 생성한다.
그리고 mapperLocations에 value를 또 적을 건데
방금 만든 폴더를 copy qulified name해서 가지고 온 후 /WEB-INF/앞에 있는 코드들은 지워준다.
mapper폴더 아래에 많은 mapper.xml파일을 만들 것을 생각해서
*-mapper.xml이라고 지정
mapper.xml파일을 일일이 지정하지 않아도 되고
파일이 하나도 없을 때도 그냥 무시하고 프로젝트를 실행하는 장점이 있다.
Dao인터페이스에 아무것도 적지 않을거지만 생성한 이유는
패키지를 지정하기 위함이다.
mybatis-config.xml파일은 mybatis 폴더 안에 생성
선생님의 깃허브 참조해서 가져옴
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<typeAliases>
<typeAlias
type="com.biz.dbms.persistence.BBsDTO"
alias="BBsDTO"/>
</typeAliases>
// type, alias는 변경 하는 것임
*-mapper.xml파일들은 mapper폴더 아래에 생성한다.
mapper파일 생성한 후 mybatis-context.xml 파일로 넘어와서 copy qualified 해준다
얘는 파일 지정이기 때문에 건들지 않는다.
>>SpringMVC_Example/SpMVC_My_Memo/
SqlSessionTemplate 대신에 사용 할 것
<tx:annotation-driven/>
<!-- 이 id는 규칙이 정해져있다! 마지막 뒤에 단어 두개 가져오고 앞단어 소문자로 변경
SqlSessionTemplate의 할일을 대신해주면서 트랜잭션 관리해줄 친구-->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="ds"/>
</bean>
'Java > Spring MVC' 카테고리의 다른 글
프로젝트 insert, update 만들 때 순서 (0) | 2020.09.11 |
---|---|
Controller들을 controller패키지에 모아놨을 때 변경 할 곳 (0) | 2020.09.08 |
2020.07.24 MyBatis 프레임워크, xml 팁 (0) | 2020.08.30 |
20.08.27 ShopV4 (0) | 2020.08.27 |
20.08.26 SpMVC_ShopV3 (0) | 2020.08.26 |