본문 바로가기
멀티캠퍼스/Spring

230906 (수)

by 세크레투스 2023. 9. 7.
반응형
SMALL

- 자바영역 : xxx.class 파일

- 리소스 파일 배치 : 설정, xml

- 웹 파일 : 루트 디렉토리

- resources : 정적 파일 배치

- spring : 스프링 설정, xml 기반 설정

- root-context.xml : DB 설정

- servlet-context.xml : 웹 설정

- views : jsp 파일만 모아서 관리해주는 디렉토리

 

xml 환경설정

- <dependencies> : 우리코드에서 사용할 라이브러리(lib)

- <plugin> : Maven 지정

- pom.xml 이 수정되면 메이븐 업데이트를 해주는 것이 좋다. (특히, 버전 변경시에는 반드시 해야 함)

- 업데이트 후에는 clean 도 함께 해주는 것이 좋다.

- 문법 에러는 안나는데, 동작이 제대로 안되는 경우가 발생 => 클래스파일과 라이브러리가 제대로 연동이 안된 경우이다.

 

@WebServlet(

@initParam = "~~~"

)

 

- <url-pattern> : 모든 url을 특정 url에서 (예 - / )처리해주겠다

-<annotation-driven> : @Controller, @Component, @Mapper, @Service ... 등의 어노테이션을 이용해서 maven 을 등록하겠다는 의미임.

 

- 첫 번째 : 테스트 폴더 안에있는 모든 jpg 파일...

- 두 번째 : 테스트 폴더의 모든 하위폴더 안에 있는 모든 jpg 파일...

 

 

- property : getter, setter 메서드로 접근 경로

- getName(), setName() : 프로퍼티 이름은 name 임.

- beans:bean -> @Component

- beans:property -> @Autowired

 

<MySQL Database 연동>

1. 프로젝트의 JDBC 연결

pom.xml의 <dependency> 태그로 설정하기

 

- persistence : 영속성 (RAM의 성질과 반대되는 성질이다.) (DB로 처리한다는 의미.)

 

<Connection Pool (DBCP)>

- Connection Pool : Data Source 라고도 부른다.

 

<MyBatis와 스프링 연동>

1. MyBatis

- https://mybatis.org/mybatis-3/ 

 

mybatis – MyBatis 3 | Introduction

What is MyBatis? MyBatis is a first class persistence framework with support for custom SQL, stored procedures and advanced mappings. MyBatis eliminates almost all of the JDBC code and manual setting of parameters and retrieval of results. MyBatis can use

mybatis.org

- SQL 매핑 프레임워크

2. MyBatis 관련 라이브러리 추가

package org.galapagos.config;

import javax.sql.DataSource;

import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.stereotype.Component;

import com.zaxxer.hikari.HikariConfig;
import com.zaxxer.hikari.HikariDataSource;

@Configuration
@ComponentScan(basePackages = {"org.galapagos.sample"})
public class RootConfig {
	@Bean //메소드의 리턴값(DataSource)가 빈으로 등록
	public DataSource dataSource() {
		HikariConfig config = new HikariConfig();
		config.setDriverClassName("com.mysql.cj.jdbc.Driver");
		config.setJdbcUrl("jdbc:mysql://localhost:3306/glory_db");
		config.setUsername("glory");
		config.setPassword("1234");
		
		HikariDataSource dataSource = new HikariDataSource(config);
		return dataSource;//빈 객체
	}
	
	//@Configuration @Bean 어노테이션이 붙은 메소드는
	//메소드를 호출한다고 해서 리턴값을 달라는 뜻이 아님.
	@Bean
	public SqlSessionFactory sqlSessionFactory() throws Exception {
		SqlSessionFactoryBean sqlSessionFactory = new SqlSessionFactoryBean();
		
		//dataSource() 메소드가 등록한 Bean을 달라는 뜻.
		sqlSessionFactory.setDataSource(dataSource()); //dataSource() 메서드 호출
		return (SqlSessionFactory) sqlSessionFactory.getObject();
	}
}
package org.galapagos.persistence;

import static org.junit.Assert.fail;

import java.sql.Connection;

import javax.sql.DataSource;

import org.apache.ibatis.session.SqlSessionFactory;
import org.galapagos.config.RootConfig;
import org.galapagos.sample.SampleTests;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

import lombok.extern.log4j.Log4j;

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = {RootConfig.class})//제일중요함
@Log4j
public class DataSourceTests {
	@Autowired
	private DataSource dataSource;
	
	@Autowired
	private SqlSessionFactory sqlSessionFactory;
	
	@Test
	public void testConnection() {
		try(Connection con = dataSource.getConnection()) {
			log.info(con);
		} catch (Exception e) {
			fail(e.getMessage());
		}
	}
}

- SqlSessionFactory를 import 하면 myBatis가 아니라 iBatis로 임포트 됨.

=> 왜냐하면, myBatis는 원래 Apache 재단에서 만든 iBatis였는데, 이게 Google로 넘어가면서 myBatis로 이름이 바뀐 것임.

 

<스프링과의 연동 처리>

1. Mapper

- SQL과 그에 대한 처리를 지정하는 역할

- XML과 인터페이스 + 어노테이션 형태로 작성

- MyBatis : XML Relation Mapping(XRM) -> JPA(ORM)를 다루는 양대산맥

 

<base 프로젝트 만드는 법>

maven project, create simple project, next, group id, artifact id, package - pom

=> 복습할때 다시 사용할 것!!!

 

 

반응형
LIST

'멀티캠퍼스 > Spring' 카테고리의 다른 글

230908 (금)  (0) 2023.09.08
230907 (목)  (0) 2023.09.07
230905 (화)  (0) 2023.09.05
230904 (월)  (0) 2023.09.04
230901 (금)  (0) 2023.09.01