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 가 아 닙 니 다.다음은 일부 매개 변수의 설명 이다.로 컬 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 구성 요 소 를 신속하게 통합 하 는 방법 입 니 다.여러분 에 게 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 메 시 지 를 남 겨 주세요.소 편 은 제때에 답 해 드 리 겠 습 니 다.여기 서도 저희 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!만약 당신 이 본문 이 당신 에 게 도움 이 된다 고 생각한다 면,전 재 를 환영 합 니 다.번 거 로 우 시 겠 지만 출처 를 밝 혀 주 십시오.감사합니다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
thymeleaf로 HTML 페이지를 동적으로 만듭니다 (spring + gradle)지난번에는 에서 화면에 HTML을 표시했습니다. 이번에는 화면을 동적으로 움직여보고 싶기 때문에 입력한 문자를 화면에 표시시키고 싶습니다. 초보자의 비망록이므로 이상한 점 등 있으면 지적 받을 수 있으면 기쁩니다! ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.