Boot - Board
                                            
                                                
                                                
                                                
                                                
                                                
                                                 21483 단어  Spring bootboardSpring boot
                    
1 개발환경
- 공통 폴더 생성
- JDK 설치
 https://www.oracle.com/java/technologies/downloads/#java8-demos-windows
- 이클립스 설치 (EClipse IDE for Java EE Developers)
 https://www.eclipse.org/downloads/
- 워크스페이스 생성
- JDK 추가, 힙 최소, 최대 메모리 수치 늘리기
# eclipse.ini
-vm jdk, -vargs -Xms1024m -Xms2048m - STS 플러그인 설치
  
- Gradle (Minimalist Gradle Editor) / Maven 설치
- 워크스페이스 구조
  
- General > Worspace 인코딩 UTF-8
  
2 프로젝트 생성
- File > New > Spring Starter Project
  


-Check if port in use
netstat -aof | findstr :8080
- HeyWorld 생성
  
HelloController.java
package com.example.demo.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HelloController {
	@RequestMapping("/")
	public String hello() {
		return "Hey World";
	}
}DemoApplication.java
package com.example.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
/*
 * @SpringBootApplication includes
 * @EnableAutoConfiguration
 * @ComponentScan
 * @Configuration
 */
@SpringBootApplication
public class DemoApplication {
	public static void main(String[] args) {
		SpringApplication.run(DemoApplication.class, args);
	}
}3 DB 연결
- MySQL 설치
 https://dev.mysql.com/downloads/installer/
- application.properties로 데이터 소스 생성
- @Bean으로 데이터 소스 설정
- 커넥션 풀 라이브러리는 HikariCP사용 (우수한 성능)
- board? =  DB이름
 application.properties
spring.datasource.hikari.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.hikari.jdbc-url=jdbc:mysql://localhost:3306/board?serverTimezone=UTC&useUnicode=true&characterEncoding=utf8&useSSL=false
spring.datasource.hikari.username=username
spring.datasource.hikari.password=password
spring.datasource.hikari.connection-test-query=SELECT NOW() FROM dual- MyBatis (SQL매퍼 프레임워크) 사용해서 쿼리와 코드 분리
 DBConfig.java
package board.configuration;
import javax.sql.DataSource;
import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
import com.zaxxer.hikari.HikariConfig;
import com.zaxxer.hikari.HikariDataSource;
@Configuration
@PropertySource("classpath:/application.properties")
public class DBConfig {
	
	// Add myBatis, 2021-10-02
	@Autowired
	private ApplicationContext appContext;
	
	// Add HikariCP
	@Bean
	@ConfigurationProperties(prefix="spring.datasource.hikari") //spring.datasource.hikari 로 시작하는 설정을 통해서 하카리CP 설정 만듬 
	public HikariConfig hikariConfig() {
		return new HikariConfig();
	}
	
	// Add HikariCP
	@Bean
	public DataSource dataSource() throws Exception{
		DataSource dataSource = new HikariDataSource(hikariConfig());
		System.out.println(dataSource.toString());
		return dataSource;
	}
	
	// Add myBatis, 2021-10-02
	@Bean
	public SqlSessionFactory sqlSessionFactory(DataSource dataSource) throws Exception{
		SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
		sqlSessionFactoryBean.setDataSource(dataSource);
		//mapper는 앱에서 사용할 SQL을 담은 XML 파일을 의미함. 
		sqlSessionFactoryBean.setMapperLocations(appContext.getResources("classpath:/mapper/**/sql-*.xml"));
		return sqlSessionFactoryBean.getObject();
	}
	
}4 유닛테스트
JUnit 테스트 실행
package board;
import org.junit.jupiter.api.Test;
import org.junit.runner.RunWith;
import org.mybatis.spring.SqlSessionTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
@RunWith(SpringRunner.class)
@SpringBootTest
public class BoardApplicationTest {
	
	@Autowired
	private SqlSessionTemplate sqlSession;
	
	@Test
	public void contextLoads() {
	}
	
	@Test 
	public void testSqlSession() throws Exception{
		System.out.println(sqlSession.toString());
		System.out.println("SUCCESS");
	}
}
여기까지하면 기본 설정 완료

4 Model 구성
- 룸북 (자주 사용하는 코드를 어노테이션으로 자동 생성해주는 라이브러리) 추가
- Use for DTO
REF
https://github.com/brettwooldridge/HikariCP#frequently-used
https://github.com/brettwooldridge/HikariCP/wiki/MySQL-Configuration
Author And Source
이 문제에 관하여(Boot - Board), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@csk917work/Spring-Boot-Board저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
                                
                                
                                
                                
                                
                                우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)