ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [코드] 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

    댓글

Designed by Tistory.