springboot 에서 Mybatis 구성 요 소 를 빠르게 통합 하 는 방법(추천)

스프링 부 트 안내
Spring Boot 는 Pivotal 팀 이 제공 하 는 새로운 프레임 워 크 로 새로운 Spring 응용의 초기 구축 과 개발 과정 을 간소화 하 는 데 목적 을 둔다.이 프레임 워 크 는 개발 자 들 이 더 이상 모델 화 된 설정 을 정의 할 필요 가 없 도록 특정한 방식 으로 배치 되 었 다.이런 방식 을 통 해 스프링 부 트 는 왕성 하 게 발전 하 는 빠 른 응용 개발 분야(rapid application development)에서 리더 가 되 는 데 주력 하고 있다.
기 존 Spring 장단 점 분석
Spring 의 장점 분석
Spring 은 Java 기업 판(Java Enterprise Edition,JEE,J2EE 라 고도 함)의 경량급 대용품 이다.헤비급 의 Enterprise JavaBean(EJB)을 개발 할 필요 없 이 Spring 은 기업 급 Java 개발 에 상대 적 으로 간단 한 방법 을 제공 하 며,주입 의존 및 절단면 프로 그래 밍 을 통 해 간단 한 Java 대상(Plain Old Java Object,POJO)으로 EJB 기능 을 구현 했다.
Spring 의 단점 분석
Spring 의 구성 요소 코드 는 경량급 이지 만 설정 은 중량급 입 니 다.처음에는 Spring 이 XML 로 설정 되 었 고 많은 XML 설정 이 었 습 니 다.Spring 2.5 는 주석 기반 구성 요소 스 캔 을 도입 하여 프로그램 자체 구성 요소 에 대한 명시 적 XML 설정 을 대량으로 제거 합 니 다.Spring 3.0 은 자바 기반 설정 을 도 입 했 습 니 다.이것 은 XML 을 대체 할 수 있 는 안전 한 재 구성 설정 방식 입 니 다.
모든 이 배치 들 은 개발 시의 손실 을 대표 한다.Spring 특성 설정 과 업무 문 제 를 해결 하 는 데 사고 전환 이 필요 하기 때문에 프로그램 논 리 를 작성 하 는 시간 을 차지 합 니 다.모든 프레임 워 크 와 마찬가지 로 Spring 은 실 용적 이지 만 동시에 요구 하 는 보답 도 적지 않다.
그 밖 에 프로젝트 의 의존 관리 도 시간 과 힘 을 소모 하 는 일이 다.환경 을 구축 할 때 어떤 라 이브 러 리 의 좌 표를 가 져 올 지 분석 해 야 하고 의존 관계 가 있 는 다른 라 이브 러 리 의 좌 표를 가 져 올 지 분석 해 야 한다.의존 하 는 버 전 을 잘못 선택 하면 그 에 따 른 불 균형 문 제 는 프로젝트 의 개발 진 도 를 심각하게 방해 할 수 있다.
MyBatis
@
간단 한 소개
장점.
가장 큰 장점 은 SQL 문장 이 유연 하고 상황 을 조정 하기에 적합 하 며 업무 가 복잡 한 상황 이다
열세
가장 큰 약점 은 서로 다른 데이터베이스 간 의 이전 이다.
mybatis 구성 요소 도입
pom.xml 에 추가

<dependency>
 <groupId>mysql</groupId>
 <artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
 <groupId>org.mybatis.spring.boot</groupId>
 <artifactId>mybatis-spring-boot-starter</artifactId>
 <version>2.1.1</version>
</dependency>
application.properties 에 가입

#dateSource
spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/test?serverTimezone=UTC&useUnicode=true&characterEncoding=utf8&useSSL=false
spring.datasource.username=root
spring.datasource.password=root
# mybatis
#         
mybatis.configuration.map-underscore-to-camel-case=true
# mapper    
mybatis.mapper-locations=classpath:mapper/*.xml
설명 이 필요 한 것 은 제 가 도입 한 my sql 구동 은 com.my sql.cj.jdbc.Driver 입 니 다.com.my sql.jdbc.Driver 가 아 닙 니 다.다음은 일부 매개 변수의 설명 이다.
  • server Timezone:이 구동 은 특정한 시간 대 를 지정 해 야 합 니 다
  • useUnicode:지정 한 인 코딩 을 엽 니 다.
  • 4.567917.characterEncoding:데이터 베 이 스 를 읽 는 인 코딩 을 지정 합 니 다.프로젝트 는 UTF-8 을 사용 하여 데이터 베 이 스 를 액세스 할 때 일치 하기 때 문 입 니 다
  • useSSL:SSL 연결 을 만 들 지 여 부 를 표시 합 니 다.서버 인증서 인증 에 신뢰 라 이브 러 리 를 제공 해 야 하기 때문에 잠시 조건 이 없습니다
  • 코드 실전
    로 컬 mysql 버 전 은 5.7.20 입 니 다.
    건표문
    
    CREATE TABLE USER_INFO
    (
     user_id DECIMAL(10) PRIMARY KEY NOT NULL,
     user_name VARCHAR(20) DEFAULT "" NOT NULL
    );
    CREATE UNIQUE INDEX USER_INFO_user_id_uindex ON USER_INFO (user_id);
    ALTER TABLE USER_INFO COMMENT = '       ';
    데이터 삽입
    
    INSERT INTO test.user_info (user_id, user_name) VALUES (1, '   ');
    INSERT INTO test.user_info (user_id, user_name) VALUES (2, '   ');
    현재 항목 경로 는

    SpringBoot 의 입구 류 에@MapperScan 주 해 를 추가 하여 DAO 류 를 스 캔 합 니 다.각 dao 인터페이스 에@Mapper 주 해 를 추가 하지 않 아 도 됩 니 다.
    
    package com.example;
    
    import org.mybatis.spring.annotation.MapperScan;
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    
    @SpringBootApplication
    @MapperScan("com.example.dao")
    public class DemoApplication {
     public static void main(String[] args) {
      SpringApplication.run(DemoApplication.class, args);
     }
    }
    주:프로젝트 를 분리 하여 마이크로 서비스 구조 나 분포 식 구조 로 만 들 지 않 으 면 application 메 인 클래스 의@SpringBootApplication 은 이 가방 의@Controller,@Service,@Resource 등 을 자동 으로 스 캔 합 니 다.다른 줄 의@ComponentScan 주 해 를 낭비 하지 않 고 경 로 를 설정 합 니 다.
    UserController.java
    
    package com.example.controller;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.ResponseBody;
    import com.example.service.IUserService;
    @Controller
    @RequestMapping("user")
    public class UserController {
     @Autowired
     private IUserService userService;
     @RequestMapping("/queryUser")
     @ResponseBody
     void queryUser() {
      this.userService.queryUser();
     }
    }
    IUserService.java
    
    package com.example.service;
    
    public interface IUserService {
     void queryUser();
    }
    UserServiceIml.java
    
    package com.example.service;
    
    import com.example.dao.UserDao;
    import com.example.entity.UserEntity;
    import org.springframework.stereotype.Service;
    
    import javax.annotation.Resource;
    import java.util.List;
    
    @Service("userService")
    public class UserServiceIml implements IUserService {
    
     @Resource
     private UserDao userDao;
    
     @Override
     public void queryUser() {
      List<UserEntity> userList = this.userDao.queryUser();
      System.out.println("================");
      System.out.println(userList);
      System.out.println("================");
     }
    }
    주:SSM 구조 라면 이@Resource 주 해 는 낯 설 수 있 습 니 다.저 는 예전 과 똑 같이@Autowired 를 사용 할 것 이 라 고 생각 하지만 저 는 dao 층 에서@Repository 로 설명 하지 않 았 습 니 다.그 전에 주 류 는@MapperScan 으로 모든 dao 를 자동 으로 스 캔 하여 이전@Autowired 를 사용 할 수 없습니다.
    UserDao.java
    
    package com.example.dao;
    import com.example.entity.UserEntity;
    import java.util.List;
    public interface UserDao {
     List<UserEntity> queryUser();
    }
    UserEntity.java
    
    package com.example.entity;
    public class UserEntity {
     private long userId;
     private String userName;
    
     public long getUserId() {
      return userId;
     }
    
     public void setUserId(long userId) {
      this.userId = userId;
     }
    
     public String getUserName() {
      return userName;
     }
     public void setUserName(String userName) {
      this.userName = userName;
     }
     
     @Override
     public String toString() {
      return "UserEntity{" +
        "userId=" + userId +
        ", userName='" + userName + '\'' +
        '}';
     }
    }
    실행 에 성공 하지 못 하면 도 입 된 가방 의 버 전 을 비교 하 십시오.데이터베이스 설정 이 로 컬 에 따 른 것 인지,주석 이 글 과 같 는 지 확인 하 십시오.
    효과 도 는 다음 과 같다.

    주:본 튜 토리 얼 을 따라 왔 다 면 처음부터 spring security 를 도 입 했 기 때문에 새로 추 가 된 경 로 는 아까 권한 에 있 지 않 기 때문에 zs 사용자 에 게 user 에서 모두 접근 할 수 있 는 것 으로 바 꾸 었 습 니 다.이전 에 따라 spring security 를 설정 하지 않 았 다 면 다음 과 같은 내용 을 신경 쓸 필요 가 없습니다.
    
    //http.authorizeRequests().antMatchers("/user/addUser").hasRole("AAA") 
    http.authorizeRequests().antMatchers("/user/**").hasRole("AAA")
    총결산
    위 에서 말 한 것 은 소 편 이 소개 한 spring boot 가 Mybatis 구성 요 소 를 신속하게 통합 하 는 방법 입 니 다.여러분 에 게 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 메 시 지 를 남 겨 주세요.소 편 은 제때에 답 해 드 리 겠 습 니 다.여기 서도 저희 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!만약 당신 이 본문 이 당신 에 게 도움 이 된다 고 생각한다 면,전 재 를 환영 합 니 다.번 거 로 우 시 겠 지만 출처 를 밝 혀 주 십시오.감사합니다!

    좋은 웹페이지 즐겨찾기