springboot+springmvc+mybatis 프로젝트 통합

소개:
전편 에 서 는 ssm 다 중 모듈 프로젝트 의 구축 을 소 개 했 습 니 다.구축 과정 에서 springmvc 와 my batis 를 통합 할 때 우리 가 설정 해 야 할 것 이 많 습 니 다.그러면 시간 을 낭비 할 뿐만 아니 라 오류 가 발생 하기 쉽 습 니 다.이러한 문제 로 인해 Pivotal 팀 은 새로운 프레임 워 크 를 제 공 했 습 니 다.이 프레임 워 크 는 특정한 방식 으로 설정 되 었 습 니 다.개발 자 들 이 더 이상 모델 화 된 설정 을 정의 할 필요 가 없 게 한다.이런 방식 을 통 해 스프링 부 트 는 왕성 하 게 발전 하 는 빠 른 응용 개발 분야(rapid application development)에서 리더 가 되 는 데 주력 하고 있다.
특징:
1.독립 된 Spring 프로그램 만 들 기
2.포 함 된 Tomcat,WAR 파일 배치 필요 없 음
3.Maven 설정 간소화
4.스프링 자동 설정
5.생산 준비 형 기능,예 를 들 어 지표,건강 검사 와 외부 배치 제공
6.코드 생 성 이나 XML 설정 을 요구 하지 않 음
(이상 대부분의 내용 은 바 이 두 백과 에서 발췌)
 ok,spring boot 에 대한 설명 은 여기까지 입 니 다.
springboot 프로젝트 를 만 드 는 것 을 추천 합 니 다.아이디어 나 sts(spring tool suite spring 회사 가 자체 개발 한 편집기)를 사용 하 는 것 을 추천 합 니 다.저 는 지금 아이디어 를 사용 하고 있 습 니 다.그래서 다음은 아이디어 로 프로젝트 를 만 들 겠 습 니 다.
 프로젝트 생 성

Group 과 Atrifact 를 작성 하고 다음 단 계 를 클릭 하 십시오.여기 서 제 가 선택 한 것 은 jar 입 니 다.공식 문 서 는 JAR 로 포장 하 는 것 을 추천 하기 때문에 여 기 는 더 이상 설명 할 수 없습니다.

여기 웹 체크

MySQL,JDBC,Mybatis 를 선택 하고 다음 단 계 를 누 르 십시오.

항목 이름과 항목 경 로 를 입력 하고 완 료 를 누 르 십시오.

이것 은 새로 만 든 프로젝트 구조 입 니 다.

 둘째,pom.xml 의존 추가
springboot 은 jsp 를 사용 하여 페이지 를 만 드 는 것 을 추천 하지 않 기 때문에 사용 하려 면 jsp 의존 도 를 추가 해 야 합 니 다.
 

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 <modelVersion>4.0.0</modelVersion>

 <groupId>com.chaoqi</groupId>
 <artifactId>springboot_demo2</artifactId>
 <version>0.0.1-SNAPSHOT</version>
 <packaging>jar</packaging>

 <name>springboot_demo2</name>
 <description>Demo project for Spring Boot</description>

 <parent>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-parent</artifactId>
  <version>2.0.0.RELEASE</version>
  <relativePath/>
 </parent>

 <properties>
  <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
  <java.version>1.8</java.version>
 </properties>

 <dependencies>
  <dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-jdbc</artifactId>
  </dependency>
  <dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-web</artifactId>
  </dependency>
  <dependency>
   <groupId>org.mybatis.spring.boot</groupId>
   <artifactId>mybatis-spring-boot-starter</artifactId>
   <version>1.3.2</version>
  </dependency>

  <dependency>
   <groupId>mysql</groupId>
   <artifactId>mysql-connector-java</artifactId>
   <scope>runtime</scope>
  </dependency>
  <dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-test</artifactId>
   <scope>test</scope>
  </dependency>
  <!--  jsp   -->
  <dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-tomcat</artifactId>
  </dependency>
  <dependency>
   <groupId>org.apache.tomcat.embed</groupId>
   <artifactId>tomcat-embed-jasper</artifactId>
  </dependency>
 </dependencies>

 <build>
  <plugins>
   <plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
   </plugin>
  </plugins>
 </build>


</project>

3.springboot 통합 springmvc
프로젝트 를 만 들 때 mybatis 와 jdbc 를 선 택 했 기 때문에 여기 서도 둘 다 설정 해 야 돼 요.
application.properties 편집
 

#         
spring.mvc.view.prefix=/WEB-INF/jsp/
#         
spring.mvc.view.suffix=.jsp

#    
spring.datasource.driverClassName = com.mysql.jdbc.Driver
spring.datasource.url = jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8
spring.datasource.username = root
spring.datasource.password = 123456

# mybatis      
mybatis.mapper-locations: classpath:mapper/*.xml
mybatis.type-aliases-package: com.chaoqi.springboot_demo2.domain

애플 리 케 이 션.yml 을 사용 하 는 것 에 익숙 하 다 면 사용 하 셔 도 됩 니 다.하지만 애플 리 케 이 션.yml 을 사용 하여 첫 번 째 프로젝트 를 시작 할 때 반드시 maven clean 을 사용 하 십시오.그렇지 않 으 면 잘못 보고 할 수 있 습 니 다.

server:
 port: 8080

spring:
 mvc:
 view:
  prefix: /WEB-INF/jsp/
  suffix: .jsp
 datasource:
 url: jdbc:mysql://localhost:3306/test?characterEncoding=UTF-8&useUnicode=true&useSSL=false
 username: root
 password: 123456
 driver-class-name: com.mysql.jdbc.Driver

mybatis:
 mapper-locations: classpath:mapping/*.xml
 type-aliases-package: com.chaoqi.springboot_demo2.domain

application.properties 를 편집 한 후 src/mian 에서 webapp 디 렉 터 리 를 만 듭 니 다.구 조 는 다음 과 같 습 니 다.

새 IndexController

package com.chaoqi.springboot_test.web;


import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class IndexController {
  private static final String INDEX = "index";
 @RequestMapping("/show")
 public String getIndex() {
  return INDEX;
 }
}


주 함수 실행

페이지 접근,성공

4.springboot 통합 my batis
데이터베이스 시트 만 들 기

-- ----------------------------
-- Table structure for music_info
-- ----------------------------
DROP TABLE IF EXISTS `music_info`;
CREATE TABLE `music_info` (
 `id` int(10) NOT NULL AUTO_INCREMENT COMMENT '  id',
 `singer_name` varchar(100) NOT NULL COMMENT '   ',
 `music_size` varchar(100) NOT NULL COMMENT '    ',
 `music_name` varchar(100) NOT NULL COMMENT '   ',
 PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;

-- ----------------------------
-- Records of music_info
-- ----------------------------
INSERT INTO `music_info` VALUES ('1', '  ', '3.2M', '   ');
INSERT INTO `music_info` VALUES ('2', '   ', '3.0M', '   ');
INSERT INTO `music_info` VALUES ('3', '   ', '5.0M', '       ');

pojo 만 들 기
 

package com.chaoqi.springboot_test.dao.domain;

public class MusicInfo {
 //   id
 private Integer id;

 //    
 private String singerName;

 //     
 private String musicSize;

 //    
 private String musicName;

 /**
  *      id music_info.id
  *
  * @return   id
  */
 public Integer getId() {
  return id;
 }

 /**
  *      id music_info.id
  *
  * @param id   id
  */
 public void setId(Integer id) {
  this.id = id;
 }

 /**
  *        music_info.singer_name
  *
  * @return    
  */
 public String getSingerName() {
  return singerName;
 }

 /**
  *        music_info.singer_name
  *
  * @param singerName    
  */
 public void setSingerName(String singerName) {
  this.singerName = singerName == null ? null : singerName.trim();
 }

 /**
  *         music_info.music_size
  *
  * @return     
  */
 public String getMusicSize() {
  return musicSize;
 }

 /**
  *         music_info.music_size
  *
  * @param musicSize     
  */
 public void setMusicSize(String musicSize) {
  this.musicSize = musicSize == null ? null : musicSize.trim();
 }

 /**
  *        music_info.music_name
  *
  * @return    
  */
 public String getMusicName() {
  return musicName;
 }

 /**
  *        music_info.music_name
  *
  * @param musicName    
  */
 public void setMusicName(String musicName) {
  this.musicName = musicName == null ? null : musicName.trim();
 }

 @Override
 public String toString() {
  return "MusicInfo{" +
    "id=" + id +
    ", singerName='" + singerName + '\'' +
    ", musicSize='" + musicSize + '\'' +
    ", musicName='" + musicName + '\'' +
    '}';
 }
}

mapper.xml 만 들 기

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.chaoqi.springboot_test.dao.mapper.MusicInfoMapper">
 <resultMap id="BaseResultMap" type="com.chaoqi.springboot_test.dao.domain.MusicInfo">
 <id column="id" jdbcType="INTEGER" property="id" />
 <result column="singer_name" jdbcType="VARCHAR" property="singerName" />
 <result column="music_size" jdbcType="VARCHAR" property="musicSize" />
 <result column="music_name" jdbcType="VARCHAR" property="musicName" />
 </resultMap>
</mapper>
mapper 생 성

package com.chaoqi.springboot_test.dao.mapper;

import com.chaoqi.springboot_test.dao.domain.MusicInfo;
import org.apache.ibatis.annotations.ResultMap;
import org.apache.ibatis.annotations.Select;

import java.util.List;

public interface MusicInfoMapper {
 @ResultMap("BaseResultMap")
 @Select("select * from music_info")
 List<MusicInfo> selectAll(MusicInfo musicInfo);
}

서비스 인터페이스

package com.chaoqi.springboot_test.service;

import com.chaoqi.springboot_test.dao.domain.MusicInfo;
import java.util.List;
public interface MusicInfoService {

 public List<MusicInfo> getMusicInfo(MusicInfo musicInfo);
}

서비스 구현 클래스

package com.chaoqi.springboot_test.service.impl;

import com.chaoqi.springboot_test.dao.domain.MusicInfo;
import com.chaoqi.springboot_test.dao.mapper.MusicInfoMapper;
import com.chaoqi.springboot_test.service.MusicInfoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class MusicInfoServiceImpl implements MusicInfoService {

 @Autowired
 private MusicInfoMapper musicInfoMapper;

 @Override
 public List<MusicInfo> getMusicInfo(MusicInfo musicInfo) {
  List<MusicInfo> musicInfos = musicInfoMapper.selectAll(null);
  return musicInfos;
 }
}

생 성 완료 후 구 조 는 다음 과 같 습 니 다.

indexController 편집

package com.chaoqi.springboot_test.web;

import com.chaoqi.springboot_test.dao.domain.MusicInfo;
import com.chaoqi.springboot_test.service.MusicInfoService;
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 java.util.List;

@Controller
public class IndexController {

 private static final String INDEX = "index";
 @Autowired
 private MusicInfoService musicInfoService;

 @RequestMapping("/show")
 public String getIndex() {
  return INDEX;
 }

 @RequestMapping("/music")
 @ResponseBody
 public List<MusicInfo> getMusicInfo(MusicInfo musicInfo) {
  List<MusicInfo> musicInfoList = musicInfoService.getMusicInfo(null);
  return musicInfoList;
 }
}

SpringbootTestApplication 류 에 주석 을 달 아@MapperScan("com.chaoqi.springboottest.dao.mapper")

package com.chaoqi.springboot_test;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@SpringBootApplication
@MapperScan("com.chaoqi.springboot_test.dao.mapper")
public class SpringbootTestApplication {

 public static void main(String[] args) {
  SpringApplication.run(SpringbootTestApplication.class, args);
 }
}

프로젝트 실행,성공,springboot+springmvc+mybatis 통합 완료(원본 다운로드 주소)

이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기