为实现项目的快速高效地开发,采取合适的框架尤为重要。利用SpringBoot+Mybatis框架可以达到快速高效开发的目的。那么如何建立一个这样的项目呢?

现在就来看一下实际操作流程:

开发工具:Eclipse2018

框架:Spring Boot 、Mybatis 、Maven

数据库:Mysql5.1

项目demo地址:https://download.csdn.net/download/weixin_37545129/11051894

1、创建一个SpringBoot的maven项目并搭建合适的项目目录

SpringBoot+Mybatis+Maven项目搭建详解SpringBoot+Mybatis+Maven项目搭建详解

2、下面开始配置pom.xml 完整配置

<?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.api</groupId>
	<artifactId>Test</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<packaging>war</packaging>

	<name>Test</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/> <!-- lookup parent from repository -->
	</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-web</artifactId>
		</dependency>
		<dependency>
		    <groupId>org.springframework.boot</groupId>
		    <artifactId>spring-boot-starter</artifactId>
		    <exclusions>
		        <exclusion>
		            <groupId>org.springframework.boot</groupId>
		            <artifactId>spring-boot-starter-logging</artifactId>
		        </exclusion>
		    </exclusions>
		</dependency>
		<dependency>
		    <groupId>org.springframework.boot</groupId>
		    <artifactId>spring-boot-starter-log4j2</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>
		<dependency>  
			<groupId>org.springframework.boot</groupId>  
			<artifactId>spring-boot-starter-data-jpa</artifactId>  
			</dependency>  
			<dependency>  
			<groupId>mysql</groupId>  
			<artifactId>mysql-connector-java</artifactId>  
		</dependency>
		<dependency>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
		<!-- 页面 -->
		<dependency>
		    <groupId>org.springframework.boot</groupId>
		    <artifactId>spring-boot-starter-thymeleaf</artifactId>
		</dependency>
		
		<dependency>  
	      <groupId>commons-lang</groupId>  
	      <artifactId>commons-lang</artifactId>  
	      <version>2.6</version>  
	      <scope>provided</scope>  
	    </dependency>
	    <dependency>
		    <groupId>com.fasterxml.jackson.module</groupId>
		    <artifactId>jackson-module-jaxb-annotations</artifactId>
		    <version>2.2.3</version>
		</dependency>
		
		<!-- swagger2 依赖 -->
		<dependency>
		    <groupId>io.springfox</groupId>
		    <artifactId>springfox-swagger2</artifactId>
		    <version>2.4.0</version>
		</dependency>
		<!--  旧版的ui界面 -->
		<dependency>
		    <groupId>io.springfox</groupId>
		    <artifactId>springfox-swagger-ui</artifactId>
		    <version>2.4.0</version>
		</dependency>
		<dependency>  
		    <groupId>com.alibaba</groupId>  
		    <artifactId>fastjson</artifactId>  
		    <version>1.1.28</version>  
		</dependency>
		<!-- 新版的ui界面 -->
		<!--<dependency>
		   <groupId>com.drore.cloud</groupId>
		   <artifactId>swagger-bootstrap-ui</artifactId>
		   <version>1.4</version>
		</dependency>-->
		
		<dependency>
		   <groupId>org.codehaus.xfire</groupId>
		   <artifactId>xfire-core</artifactId>
		   <version>1.2.6</version>
		</dependency>
		<dependency>
		   <groupId>org.bouncycastle</groupId>
		   <artifactId>bcprov-jdk16</artifactId>
		   <version>1.46</version>
		</dependency>
		
		<dependency>
			<groupId>com.alibaba</groupId>
			<artifactId>fastjson</artifactId>
			<version>1.2.15</version>
		</dependency>
        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpclient</artifactId>
            <version>4.2.1</version>
        </dependency>
        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpcore</artifactId>
            <version>4.2.1</version>
        </dependency>
        <dependency>
            <groupId>commons-lang</groupId>
            <artifactId>commons-lang</artifactId>
            <version>2.6</version>
        </dependency>
        <dependency>
            <groupId>org.eclipse.jetty</groupId>
            <artifactId>jetty-util</artifactId>
            <version>9.3.7.v20160115</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.5</version>
            <scope>test</scope>
        </dependency>
        
        <!--jsp支持-->
        
		<dependency> 
		  <groupId>javax.servlet.jsp</groupId> 
	      <artifactId>jsp-api</artifactId> 
	      <version>2.1</version> 
	      <scope>provided</scope> <!-- 这里 -->
		</dependency> 

	    <!-- servlet 依赖. -->
	    <!-- <dependency>
	      <groupId>javax.servlet</groupId>
	      <artifactId>javax.servlet-api</artifactId>
	      <version>3.0.1</version>
	      <scope>provided</scope>
	    </dependency> -->
	    <dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>
	    <dependency>
	      <groupId>javax.servlet</groupId>
	      <artifactId>jstl</artifactId>
	    </dependency>
	    <!-- tomcat 的支持.-->
	    <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>
	      <scope>provided</scope>
	    </dependency>
	    
	 	<dependency>
            <groupId>org.quartz-scheduler</groupId>
            <artifactId>quartz</artifactId>
            <version>2.2.1</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context-support</artifactId>
        </dependency>
        <dependency>
			<groupId>org.mybatis.spring.boot</groupId>
			<artifactId>mybatis-spring-boot-starter</artifactId>
			<version>1.3.0</version>
		</dependency>
	</dependencies>
	<build>
	<finalName>Test</finalName>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
				 <configuration>
                <testFailureIgnore>true</testFailureIgnore>
           		 </configuration>
			</plugin>
		</plugins>
	</build>
</project>

3、配置解析路径和数据库application.properties 

spring.datasource.url = jdbc:mysql://localhost:3306/restaurant?useUnicode=true&characterEncoding=utf-8
spring.datasource.username = root
spring.datasource.password = root

#\u914D\u7F6E.xml\u6587\u4EF6\u8DEF\u5F84
mybatis.mapper-locations=classpath:mapper/*.xml
#\u914D\u7F6E\u6A21\u578B\u8DEF\u5F84
mybatis.type-aliases-package=com.api.entity

#spring.datasource.url = jdbc:mysql://localhost:3306/carpooling?useUnicode=true&characterEncoding=utf-8
#spring.datasource.username = root
#spring.datasource.password = PZFQXB5PrAXJpwCC

spring.datasource.driverClassName = com.mysql.jdbc.Driver
name=Isea533
server.port=8080

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

#\u5173\u95ED\u9ED8\u8BA4\u6A21\u677F\u5F15\u64CE
spring.thymeleaf.cache=false
spring.thymeleaf.enabled=false


spring.jpa.database = MYSQL
spring.jpa.show-sql = true
spring.jpa.hibernate.ddl-auto = update
spring.jpa.hibernate.naming-strategy = org.hibernate.cfg.ImprovedNamingStrategy
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect

4、在resources目录下新建 mapper文件夹 并创建文件UserMapper.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN" "http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd">
 
<mapper namespace="com.api.dao.UserDao">
 
	<select id="getNameById"  resultType="com.api.entity.User">
		SELECT * FROM user WHERE user_id = #{user_id}
	</select>
	
</mapper>

5、开始构建SpringBoot启动类BaskApplication.java

package com.api;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;

@SpringBootApplication
@EnableAutoConfiguration
public class BaskApplication extends SpringBootServletInitializer {
	/**
	 * main方法启动进入swagger-u
	 * @param args
	 */
	public static void main(String[] args) {
		SpringApplication.run(BaskApplication.class, args);
	}
	/**
	 * Tomcat部署后启动(二者选其一,多余的进行注释)
	 */
	@Override
    protected final SpringApplicationBuilder configure(final SpringApplicationBuilder application) {
        return application.sources(BaskApplication.class);
        
    }
}

6、构建swaggerui来做restful接口测试

package com.api;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
 
@Configuration
@EnableSwagger2
public class SwaggerConfiguration {
	//swagger2的配置文件,这里可以配置swagger2的一些基本的内容,比如扫描的包等等
    @Bean
    public Docket createRestApi() {
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.api")) //为当前包路径
                .paths(PathSelectors.any())
                .build();
    }
    
    /*@Bean
    public Docket createMonitorRestApi() {
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .groupName("carPooling")
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.gsww.api.entity"))
                .paths(PathSelectors.any())
                .build();
    }*/
    
    //构建 api文档的详细信息函数,注意这里的注解引用的是哪个
    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("Spring-Boot使用Swagger2构建RestFul-APIs") //页面标题
                .contact(new Contact("WuHao", "[email protected]", "")) //创建人
                .version("1.0") //版本号
                .description("描述:Spring-Boot集成Swagger2接口") //描述
                .build();
    }
}

7、然后编写实体类、Dao层以及Service层最后在控制器输出即可

package com.api.controller;

import java.util.List;
import java.util.Map;

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.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

import com.alibaba.fastjson.JSONObject;
import com.api.entity.User;
import com.api.service.InNumberService;

@Controller
@RequestMapping("/")
public class InNumberController {

	@Autowired
	InNumberService inNumberService;
	
	@RequestMapping(value="/index",method = RequestMethod.GET)
	@ResponseBody
    public List<User> index(@RequestParam(value = "user_id", required = false) String user_id) {
		
		return inNumberService.getNameById(user_id);
    }
}

8、开始测试结果

SpringBoot+Mybatis+Maven项目搭建详解SpringBoot+Mybatis+Maven项目搭建详解

 

相关文章: