ㅁ
- ~ 패키지 통으로 추가한다.
- 프로젝트 생성시 dependency를 추가할 수 있는 창이 떴었다.
그 창을 다시 띄운다.
- 패키지익스플로럴 우클릭 - spring - add starters 클릭
- mybatis 검색해서 나오는거 체크
- oracle 검색해서 sql안의 oracle driver 체크
-
- pom.xml 체크하고 finish.
ㅁ pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.2.11</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.br</groupId>
<artifactId>boot</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<name>boot</name>
<description>Demo project for Spring Boot</description>
<url/>
<licenses>
<license/>
</licenses>
<developers>
<developer/>
</developers>
<scm>
<connection/>
<developerConnection/>
<tag/>
<url/>
</scm>
<properties>
<java.version>17</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!-- jsp 사용을 위한 jasper 라이브러리 -->
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<!--<version>11.0.0</version>-->
</dependency>
<!-- jstl 사용을 위한 라이브러리들 -->
<dependency>
<groupId>jakarta.servlet</groupId>
<artifactId>jakarta.servlet-api</artifactId>
<!--<version>6.1.0</version>-->
<!--<scope>provided</scope>-->
</dependency>
<dependency>
<groupId>jakarta.servlet.jsp.jstl</groupId>
<artifactId>jakarta.servlet.jsp.jstl-api</artifactId>
<!--<version>3.0.2</version>-->
</dependency>
<dependency>
<groupId>org.glassfish.web</groupId>
<artifactId>jakarta.servlet.jsp.jstl</artifactId>
<!--<version>3.0.1</version>-->
</dependency>
<!-- BCryptPasswordEncoder 사용을 위한 라이브러리 -->
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-core</artifactId>
<!--<version>5.7.5</version>-->
</dependency>
<!-- MyBatis, Oralce 관련 라이브러리-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>3.0.3</version>
</dependency>
<dependency>
<groupId>com.oracle.database.jdbc</groupId>
<artifactId>ojdbc11</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter-test</artifactId>
<version>3.0.3</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<excludes>
<exclude>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>
</project>
starter가 붙은건 여러개가 모여있는 패키지 형태다.
src main resources에 mybatis 일반폴더 추가.
- 여기서 config는 필요없고 mappers 폴더만 가져온다.
ㅁ (스프링) root-context.xml
- root-context.xml에 마이바티스 사용을 위한 빈을 3개 등록했었다.
ㅁ application.properties
spring.application.name=boot
# contextPath 등록
# server.servlet.context-path=/boot
# 사용할 포트번호 수정
server.port=8888
# 응답뷰 관련한 prefix, suffix : servlet-context.xml의 ViewResolver 빈 등록 설정 대체
spring.mvc.view.prefix=/WEB-INF/views/
spring.mvc.view.suffix=.jsp
# 마이바티스, 연결 db 정보 관련 구문 등록
spring.datasource.driver-class-name=net.sf.log4jdbc.sql.jdbcapi.DriverSpy
spring.datasource.url=jdbc:log4jdbc:oracle:thin:@localhost:1521:xe
spring.datasource.username=spring
spring.datasource.password=spring
- 참고로 부트에서는 dbc2 커넥션 풀이 아니라 히카리를 쓴다. 이건 그냥 알고만 계세요.
- log4jdbc를 위한 설정도 해야 한다.
- 참고로 부트에서는 logback을 사용하겍므 등록이 되어 있따.
기존에 srpingweb할때는 ~를 ㅜ착했다.
- 근데 로그백은 부트에서 쓰게끔 이미 등록이 되어있다.
log4jdbc는 여러분이 별도로 추가해얗 나다.
ㅁ pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.2.11</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.br</groupId>
<artifactId>boot</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<name>boot</name>
<description>Demo project for Spring Boot</description>
<url/>
<licenses>
<license/>
</licenses>
<developers>
<developer/>
</developers>
<scm>
<connection/>
<developerConnection/>
<tag/>
<url/>
</scm>
<properties>
<java.version>17</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!-- jsp 사용을 위한 jasper 라이브러리 -->
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<!--<version>11.0.0</version>-->
</dependency>
<!-- jstl 사용을 위한 라이브러리들 -->
<dependency>
<groupId>jakarta.servlet</groupId>
<artifactId>jakarta.servlet-api</artifactId>
<!--<version>6.1.0</version>-->
<!--<scope>provided</scope>-->
</dependency>
<dependency>
<groupId>jakarta.servlet.jsp.jstl</groupId>
<artifactId>jakarta.servlet.jsp.jstl-api</artifactId>
<!--<version>3.0.2</version>-->
</dependency>
<dependency>
<groupId>org.glassfish.web</groupId>
<artifactId>jakarta.servlet.jsp.jstl</artifactId>
<!--<version>3.0.1</version>-->
</dependency>
<!-- BCryptPasswordEncoder 사용을 위한 라이브러리 -->
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-core</artifactId>
<!--<version>5.7.5</version>-->
</dependency>
<!-- MyBatis, Oralce 관련 라이브러리-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>3.0.3</version>
</dependency>
<dependency>
<groupId>com.oracle.database.jdbc</groupId>
<artifactId>ojdbc11</artifactId>
<scope>runtime</scope>
</dependency>
<!-- log4jdbc 라이브러리 -->
<dependency>
<groupId>org.bgee.log4jdbc-log4j2</groupId>
<artifactId>log4jdbc-log4j2-jdbc4.1</artifactId>
<version>1.16</version>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter-test</artifactId>
<version>3.0.3</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<excludes>
<exclude>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>
</project>
- log4jdbc 라이브러리를 작성한다.
자도완성이 안되면 mven가서 1.16버전으로 가져오면 된다.
ㅁ
- 저 두개를 resources에 복붙한다.
- 프로퍼티스 파일은 건들필요 없다. 그냥 있어야 하는 존재다.
- logback.xml은 수정해야 한다.
base패키지가 지금 com.br.spring으로 되어 있다.
com.br.boot로 바꾼다.
두개 바꿨다.
ㅁ 여기까지 연결할 디비관련 정보를 작성했다.
======================================================================
ㅁ 추가로 마이바티스 관련 환경설정 문서도 있었다.
- (스프링) mybatis-config.xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<settings>
<setting name="jdbcTypeForNull" value="NULL" />
</settings>
<typeAliases>
<typeAlias type="com.br.spring.dto.BoardDto" alias="BoardDto" />
<typeAlias type="com.br.spring.dto.AttachDto" alias="AttachDto" />
<typeAlias type="com.br.spring.dto.MemberDto" alias="MemberDto" />
<typeAlias type="com.br.spring.dto.NoticeDto" alias="NoticeDto" />
<typeAlias type="com.br.spring.dto.ReplyDto" alias="ReplyDto" />
</typeAliases>
<mappers>
<mapper resource="mappers/board-mapper.xml" />
<mapper resource="mappers/notice-mapper.xml" />
<mapper resource="mappers/member-mapper.xml" />
</mappers>
</configuration>
- 마이바티스 관련 세팅도 해야한다.
어던 패키지안의 클래스를 별칭을 ㅗ 부여할건지, 세팅을 어케할건지, 매퍼파일 경로는 뭔지를 다 작성해야 마이바티스가 작성한다.
ㅁ applicatio.preorpertis
spring.application.name=boot
# contextPath 등록
# server.servlet.context-path=/boot
# 사용할 포트번호 수정
server.port=8888
# 응답뷰 관련한 prefix, suffix : servlet-context.xml의 ViewResolver 빈 등록 설정 대체
spring.mvc.view.prefix=/WEB-INF/views/
spring.mvc.view.suffix=.jsp
# 마이바티스, 연결 db 정보 관련 구문 등록
spring.datasource.driver-class-name=net.sf.log4jdbc.sql.jdbcapi.DriverSpy
spring.datasource.url=jdbc:log4jdbc:oracle:thin:@localhost:1521:xe
spring.datasource.username=spring
spring.datasource.password=spring
# 마이바티스 관련 구문 등록 (기존의 mybatis-config.xml 파일 내용)
mybatis.mapper-locations=mybatis/mappers/*.xml
mybatis.type-aliases-package=com.br.boot.dto
mybatis.configuration.jdbc-type-for-null=NULL
- (첫번째 줄) *은 모든을 의미한다.
이 한줄이 기존의 마이바티스 컨피그 문서에 등록했던 mappers 태그 5줄이다.
- (두번째 줄) 이 한줄이 typeAliases 태그 7줄이다.
- (세번째 줄) 이 한줄이 저 위의 3줄 대체하는 구문이다.
ㅁ 서버 start
- 문제 없어야 한다.
- 기존에 서버 start할 때와 로그가 달라졌다. 로그백으로 바뀌었다.
- http://localhost:8888를 입력해서 메인페이지를 요청한다.
- db연동도 됐으니 db조회나 insert 왠만한건 이제 다 된다.
- 일반, 공지게시판가서 데이터 조회가 잘 되는지 확인.
- 로그인, 마이페이지 수정기능 잘 되는지 확인.
- 글 작성도 된다. 그런데 첨부파일 업로드는 안된다.
- 기존에 작성된 게시글의 첨부파일 다운은 된다.