-
[코드] 1/12 수 Spring Framework < root-context.xml >Spring 2022. 1. 12. 19:26
servlet-context.xmll / root-context.xmll : 스프링 설정파일!
<bean> : 객체를 생성하는 태그
<!-- DB연결 : API(HikariCP-히카리) --> <bean id="hikariConfig" class="com.zaxxer.hikari.HikariConfig"> <property name="driverClassName" value="com.mysql.jdbc.Driver"/> <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/bigdata"/> <property name="username" value="root"/> <property name="password" value="12345"/> </bean>
해당 DB에 맞는 드라이버클래스이름 / URL / ID / PW 입력
<bean id="dataSource" class="com.zaxxer.hikari.HikariDataSource" destroy-method="close"> <!-- HikariDataSource : DBCP를 만들어주는 역할 --> <constructor-arg ref="hikariConfig" /> <!--생성자메소드를 호출해라 / ref:a를 참조해라!--> </bean>
위의 hikariConfig를 참조해서 DataSource(DBCP)을 만들어줘라
/* 구현체 -> 설정파일에 만들어야함! root-context.xml에서!!! public class SqlSessionFactoryBean implements BoardMapper{ public List<Board> selectAll(){ } }*/ <!-- BoardMapper interface(Spring)의 구현클래스를 생성 (SqlSessionFactoryBean:mybatis) --> <!-- 메모리 어딘가에 객체생성 --> <!-- HikariDataSource와 연결해서 사용 --> <!-- Spring과 mybatis를 브릿지해준다 --> <bean class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource"/> <!-- name은 SqlSessionFactoryBean안에 들어있고 / ref는 위의 id=dataSource인 bean을 참조 --> </bean>
DB에 연결해서 값을 받아올려면 구현체(객체)가 필요하다!
객체선언 또한 root-context.xml에서 한다!
<beans ③ xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ② xmlns:mybatis-spring="http://mybatis.org/schema/mybatis-spring" ④ xsi:schemaLocation=" http://mybatis.org/schema/mybatis-spring http://mybatis.org/schema/mybatis-spring-1.2.xsd http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd"> <!-- Mapper interface들을 메모리에 올리는 방법(scan) --> ① <mybatis-spring:scan base-package="kr.smhrd.mapper"/> <!-- scan : 훑어봐라 , xml(DTD, schema)에는 없음.-->
구현체가 늘어나면 이 너무 많아질 수 있다.
Scan을 사용하면 여러 개의 mapper들을 한 번에 올릴 수 있다.(부모자식관계)* ① base-package설정 : mapper.xml(sql문들이 담긴 파일)들을 메모리에 올릴 때는 한꺼번에 올린다.
* ② xmlns:mybatis-spring="http://mybatis.org/schema/mybatis-spring" : scan태그를 사용하기위해
접두사(mybatis-spring)로 치환
ex) mybatis-spring:scan
* 접두사 안 붙여준게 두 개라면 충돌이 날 수 있음
* ③ xmlns에서 ns는 namespace를 뜻한다. namespace를 걸어주면 schema파일도 연결되어야한다.
④ 그래서 schemaLocation에 파일URL 추가 해줄 것!
( 위의 접두사에 써준 URL은 파일을 업로드를 해준게 아님 )
메모리 어딘가에 객체가 생성되었으므로
@Autowired : 생성된 객체(root-context.xml)를 자동으로 연결 시켜라
+ copy Qualified Name : 패키지 이름을 포함해서 전체 클래스를 복사해라
★ 톰캣서버 로딩시 - xml파일 검사 - xml오류있을시 톰캣서버 로딩 시 에러뜸
'Spring' 카테고리의 다른 글
[이론] 금 1/14 Spring Framework (0) 2022.01.15 [이론] 1/13 목 Spring Framework (0) 2022.01.14 [이론] 1/12 수 Spring Framework (0) 2022.01.12 [이론] 1/10 월 Spring Framework (0) 2022.01.11 [이론] 1/7 금 Spring Framework (0) 2022.01.11