오랜만에 시간외 근무를 했다.
오늘 완료한 작업 목록
1. 시놀로지 나스에 도커를 이용한 SVN설치 및 환경설정
2. 스프링부트+마리아DB 연동
3. 작업한거 파이어베이스 호스팅에 배포
참고블로그1 : 시놀로지도커에 svn구축하기
참고 블로그1 : 스프링부트에 MVC모델 구현하기
1번과 3번은 크게 문제가 없었다.
2번에 마리아DB 연동 과정에서 많은 시행착오가 있었다.
뇌빼고하다보니 mapper과 mappers의 오타를 못찾고 있었다.
빌더에서 오류가 안나다보니 더더욱 찾기 힘들었다.
반드시 해야하는 내용들만 정리함
먼저 application.properties를 아래와 같이 작성
spring.datasource.driver-class-name=org.mariadb.jdbc.Driver
spring.datasource.url=jdbc:mariadb://주소:3306/디비명
spring.datasource.username=계정
spring.datasource.password=암호
mybatis.config-location=classpath:mybatis-config.xml
마리아DB에 맡게 작성해야함 mysql이나 다른 DB는 다르게 작성함
import javax.sql.DataSource;
import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
@Configuration
@MapperScan(basePackages = "맵퍼패키지")
public class MyBatisConfig {
@Bean
public SqlSessionFactory sqlSessionFactory(DataSource dataSource) throws Exception {
SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
sessionFactory.setDataSource(dataSource);
sessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver()
.getResources("classpath:mappers/*.xml"));
Resource configLocation = new ClassPathResource("mybatis-config.xml");
sessionFactory.setConfigLocation(configLocation);
return sessionFactory.getObject();
}
}
위와같이 MyBatisConfig 클래스를 작성함
여기서 SqlSessionFactoryBean 클래스와 @MapperScan 어노테이션 클래스를 못찾아서 삽질을 많이했다.
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.7</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.2.0</version> <!-- 최신 버전을 사용하세요 -->
</dependency>
pom.xml에 위 항목들을 필수로 넣도록 하자
기본적으로 들어가 있는 항목도 있는데, 없는항목들도 있다.
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<properties>
<property name="driverClassName" value="org.mariadb.jdbc.Driver"/>
</properties>
<settings>
<setting name="mapUnderscoreToCamelCase" value="true"/>
</settings>
</configuration>
mybatis-config.xml을 src/main/resources 아래 생성하고 위와같이 작성한다.
여기까지하면 마리아DB와 연결끝
파이어베이스호스팅에 배포하는 방법은
https://chea-young.tistory.com/1
firebase-win.exe 을 실행하고
firebase login으로 구글계정에 로그인 한 뒤
cd 프로젝트루트경로로 이동한다
firebase init
명령어를 실행하면
호스팅 : configure files for.... 항목을 스페이스바를 눌러 체크 후 엔터
그 다음 질문
- What do you want to use as your public directory? 동적항목이 있는 디렉토리, 스프링부트는 static 경로를 입력한다.
- Configure as a single-page app (rewrite all urls to /index.html)? 기존에 작성된 index.html을 사용할거라 no
- Set up automatic builds and deploys with GitHub? SVN을 사용할꺼라서 NO
그리고 사전에 파이어베이스 콘설에서 생성한 프로젝트 목록이 나오고
연결할 프로젝트 선택하면 배포 준비 끝
배포 명령어는
firebvase deploy
'Dev's > Web' 카테고리의 다른 글
스프링부트 입문 - 2 - (1) | 2023.10.16 |
---|---|
[Dev's] 중복 팝업 방지 - 새창/새탭 생성 시, "Scripts may close only the windows that were opened by them." 해결 (1) | 2022.09.30 |
[Dev's] VideoJs 영상 플레이어 Reset하기 (0) | 2022.05.10 |
[Dev's] Tiles 팝업에는 적용되지 않도록 설정하기 (0) | 2022.05.04 |
[Dev's] 스프링 스케쥴러 설정 시, 변수값 넣어서 동적생성하기 (0) | 2022.01.06 |