>> 프로젝트를 생성해 보자
>> Create new Spring Starter Project 를 눌러서 생성한다.

>> 생성 간에 여러 요소를 설정할 수 있다.
>> Name : 프로젝트 이름을 의미
>> Package : 기본 패키지
>> type: Maven Project // Gradle 프로젝트를 선택할 수 있다.
>> Java Version을 선택할 수 있따.
>> 그후에 프로젝트를 생성하면서 여러 Dependency 를 생성할 수 있따. 추가하고자 하는 Dependency를 눌러서 추가해주면된다.


>> Finish를 누르면 생성되는 프로젝트의 구조이다

>> 주의 깊게 봐야할것은 아래의 두가지이다.
>> src/main/java 하위의 DemoApplication.java
>> src/main/resources 하위의 application.properties
1. DemoApplication.java
>> 해당 클래스에 들어가면 @SpringBootApplication 이라는 어노테이션이 있는데.

>> 해당 어노테이션이 들어가보면
>> @ComponentScan 어노테이션이 추가되어 있는 것을 확인할 수 있다.
>> 이것은 해당 SpringBoot 프로젝트가 실행될때 @SpringBootApplication이 포함되어 있는 (즉 main함수가 있는) 패키지에 @Service , @Contoller, @Repository 등의 어노테이션이 있을 경우 자동으로 Bean으로 등록을 해준다는 것을 의미한다. 즉 DemoApplication.java가 포함되어 있는 com.starter.boot 하위의 폴더대상으로 ComponentScan이 진행된다.


2. application.properties
>> 두번쨰로 application.properties 는 처음 열어보면 비어있다.
>> application.properties는 스프링부트가 어플리케이션을 구동할 때 자동으로 로딩하는 파일입니다.
>> @Value("${key}") 등으로 controller 등의 JAVA 파일에서 application.properties에서 설정한 값을 사용할 수 있다.
>> 또한 해당 파일안에 DB연결등의 설정을 실시한다.


>> DB 연결시키기
>> 3,4 줄은 log4jdbc 사용하지 않고 DB를 연결시킬때 사용하는 3,4 번 라인을 사용하고,
>> log4jdbc 를 사용할경우는 6,7번을 사용한다.

설정을 추가하면
>> mybatis config 설정을 해줄수 있다.
>> mybatis.config-location: classpath:mybatis-config.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>
</configuration>
# database
#spring.datasource.driver-class-name: com.mysql.cj.jdbc.Driver
#spring.datasource.url: jdbc:mysql://localhost:3306/DB명?characterEncoding=utf8
spring.datasource.driver-class-name: net.sf.log4jdbc.sql.jdbcapi.DriverSpy
spring.datasource.url: jdbc:log4jdbc:mysql://localhost:3306/DB명?characterEncoding=utf8
spring.datasource.username: id
spring.datasource.password : pwd
# mybatis
mybatis.mapper-locations: classpath:mybatis/*.xml
>> 또한 log4jdbc 설정 파일을만들어준다


<log4jdbc.log4j2.properties>
log4jdbc.spylogdelegator.name=net.sf.log4jdbc.log.slf4j.Slf4jSpyLogDelegator
log4jdbc.dump.sql.maxlinelength=0
log4jdbc.drivers=com.mysql.cj.jdbc.Driver
log4jdbc.auto.load.popular.drivers=false
<logback-spring.xml>
<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="true">
<!-- Appenders -->
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<Pattern>%d %5p [%c] %m%n</Pattern>
</encoder>
</appender>
<appender name="console-infolog" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<Pattern>%d %5p %m%n</Pattern>
</encoder>
</appender>
<!-- 로거 -->
<logger name="jdbc.sqlonly" level="INFO" appender-ref="console-infolog"/>
<logger name="jdbc.resultsettable" level="INFO" appender-ref="console-infolog"/>
<!-- 루트 로거 -->
<root level="off">
<appender-ref ref="console"/>
</root>
</configuration>
>> Mybatis 연결은 잘됬는데 계속 log4JDBC 연결이 안되서 고초를 겪었는데 진짜 간단한 방법으로 해결이 되었다.
-- 보통 Dependency를 추가하거나, log4jdbc~.properties 파일에서 log4jdbc.driver 설정을 해주면된다고 했는데 내가 해결한 방법은..
-- 내부 톰캣 서버가 실행된 상태에서 log4jdbc 설정을 했었는데, 서버를 완전히 종료시켰다가 다시 실행하니까 정상적으로 적용이 되었다. restart가 아닌 종료 후에 start 했다.
-- 이게 맞는지 모르겠지만 서버가 실행중에 log4jdbc 설정을 할경우 적용이 안되고, 서버를 완전히 종료했다가 실행해야 적용이 되는것 같았다.
====================================================================================
Package 상태

>> pom.xml 설정 파일 Dependency 들
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.2.2</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.bgee.log4jdbc-log4j2</groupId>
<artifactId>log4jdbc-log4j2-jdbc4.1</artifactId>
<version>1.16</version>
</dependency>
</dependencies>
'dev > Spring-boot' 카테고리의 다른 글
[SpringBoot] JSP 파일 연동 (0) | 2022.06.29 |
---|---|
[SpringBoot] Tiles 설정 사용 (0) | 2022.06.29 |
[SpringBoot] 개발 환경에 따른 설정 변경 (0) | 2022.06.29 |
[SpringBoot] Spring boot Java Tools / SVN (0) | 2022.06.26 |
[SpringBoot] Spring boot 다운로드 및 lombok 설정 (0) | 2022.06.26 |