之前使用springMVC+spring+mybatis,总是被一些繁琐的xml配置,有时候如果配置出错,还要检查各种xml配置,偶然接触到了spring boot 后发现搭建一个web项目真的是1分钟的事情,再也不用去管那么多xml配置,简直神清气爽,不用看那么多一坨xml,下面是我把以前的一些ssm项目改成了spring boot + mybatis,相对于来说优点太明显了

1. 创建独立的Spring应用程序
2. 嵌入的Tomcat,无需部署WAR文件
3. 简化Maven配置
4. 自动配置Spring
5. 提供生产就绪型功能,如指标,健康检查和外部配置
6. 绝对没有代码生成和对XML没有要求配置
这个是百度百科上面对spring boot 优点的描述,其实我感觉也是这样,大家可以试一下。
以下是具体的代码实现(github地址:https://github.com/yihec/spring-boot-mybatis)
首先是pom文件的一些依赖
<?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.example</groupId>   <artifactId>demo 2</artifactId>   <version>0.0.1-SNAPSHOT</version>   <packaging>jar</packaging>

   <name>demo 2</name>   <description>Demo project for Spring Boot</description>

   <parent>      <groupId>org.springframework.boot</groupId>      <artifactId>spring-boot-starter-parent</artifactId>      <version>1.5.1.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.7</java.version>   </properties>

   <dependencies>      <dependency>         <groupId>org.springframework.boot</groupId>         <artifactId>spring-boot-starter-aop</artifactId>      </dependency>      <!-- 移除内置的log的依赖使用log4j进行日志输出-->      <dependency>         <groupId>org.springframework.boot</groupId>         <artifactId>spring-boot-starter-web</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-jdbc</artifactId>      </dependency>      <dependency>         <groupId>com.oracle</groupId>         <artifactId>ojdbc14</artifactId>         <version>10.2.0.1.0</version>      </dependency>      <!-- redis -->      <dependency>         <groupId>org.springframework.boot</groupId>         <artifactId>spring-boot-starter-redis</artifactId>      </dependency>      <dependency>         <groupId>org.springframework.boot</groupId>         <artifactId>spring-boot-starter-test</artifactId>         <scope>test</scope>      </dependency>      <!--导入mybatis -->      <dependency>         <groupId>org.mybatis</groupId>         <artifactId>mybatis-spring</artifactId>         <version>1.2.2</version>      </dependency>      <dependency>         <groupId>org.mybatis</groupId>         <artifactId>mybatis</artifactId>         <version>3.2.8</version>      </dependency>      <dependency>         <groupId>org.apache.commons</groupId>         <artifactId>commons-lang3</artifactId>         <version>3.5</version>      </dependency>      <!--mybatis的分页插件 很好用的一个 具体使用方法可以去下面的网站 -->      <!-- https://mvnrepository.com/artifact/com.github.pagehelper/pagehelper -->      <dependency>         <groupId>com.github.pagehelper</groupId>         <artifactId>pagehelper</artifactId>         <version>4.1.6</version>      </dependency>

      <dependency>         <groupId>org.codehaus.jackson</groupId>         <artifactId>jackson-mapper-asl</artifactId>         <version>1.9.13</version>      </dependency>

      <!--swagger2 生成api文档 -->      <dependency>         <groupId>io.springfox</groupId>         <artifactId>springfox-swagger2</artifactId>         <version>2.2.2</version>      </dependency>      <dependency>         <groupId>io.springfox</groupId>         <artifactId>springfox-swagger-ui</artifactId>         <version>2.2.2</version>      </dependency>      <dependency>         <groupId>org.springframework.boot</groupId>         <artifactId>spring-boot-starter-thymeleaf</artifactId>      </dependency>      <dependency>         <groupId>org.springframework.boot</groupId>         <artifactId>spring-boot-starter-log4j</artifactId>      </dependency>      </dependencies>

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

      </plugins>   </build>

   <repositories>      <repository>         <id>spring-snapshots</id>         <name>Spring Snapshots</name>         <url>https://repo.spring.io/snapshot</url>         <snapshots>            <enabled>true</enabled>         </snapshots>      </repository>      <repository>         <id>spring-milestones</id>         <name>Spring Milestones</name>         <url>https://repo.spring.io/milestone</url>         <snapshots>            <enabled>false</enabled>         </snapshots>      </repository>   </repositories>

   <pluginRepositories>      <pluginRepository>         <id>spring-snapshots</id>         <name>Spring Snapshots</name>         <url>https://repo.spring.io/snapshot</url>         <snapshots>            <enabled>true</enabled>         </snapshots>      </pluginRepository>      <pluginRepository>         <id>spring-milestones</id>         <name>Spring Milestones</name>         <url>https://repo.spring.io/milestone</url>         <snapshots>            <enabled>false</enabled>         </snapshots>      </pluginRepository>   </pluginRepositories>

</project>

接着是application.yml数据库配置

spring:datasource:driver-class-name: oracle.jdbc.OracleDriver  url: jdbc:oracle:thin:localhost:1521:orclusername: orclpassword: orcl

然后是application.java

package com.example;import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
import org.springframework.transaction.PlatformTransactionManager;import javax.sql.DataSource;@SpringBootApplication
//@ComponentScan 注解自动收集所有的Spring组件,包括 @Configuration 类。
@ComponentScan
@MapperScan("com.example.mapper")
public class DemoApplication {@Bean@ConfigurationProperties(prefix="spring.datasource")public DataSource dataSource() {return new org.apache.tomcat.jdbc.pool.DataSource();}@Beanpublic SqlSessionFactory sqlSessionFactoryBean() throws Exception {SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();sqlSessionFactoryBean.setDataSource(dataSource());PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();//这里的话如果不用mybatis-config.xml 可以把下面那句给注释掉sqlSessionFactoryBean.setMapperLocations(resolver.getResources("classpath:/mybatis/*.xml"));sqlSessionFactoryBean.setConfigLocation(resolver.getResource("classpath:mybatis-config.xml"));return sqlSessionFactoryBean.getObject();}@Beanpublic PlatformTransactionManager transactionManager() {return new DataSourceTransactionManager(dataSource());}public static void main(String[] args) {SpringApplication.run(DemoApplication.class, args);}
}

最后就是swagger的配置了,

package com.example;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.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;/*** Created by lhm on 2015/8/27.*/
@Configuration
@EnableSwagger2
public class SwaggerConfig
{@Beanpublic Docket createRestApi() {return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).select().apis(RequestHandlerSelectors.basePackage("com.example.web")).paths(PathSelectors.any()).build();}private ApiInfo apiInfo() {return new ApiInfoBuilder().title("API").description("").termsOfServiceUrl("").contact("yihec").version("1.0").build();}}

最主要的代码就是这些了,然后大功告成,后面的都是个人的业务逻辑了。

github地址:https://github.com/yihec/spring-boot-mybatis

转载于:https://www.cnblogs.com/yihec/p/7268792.html

spring boot 整合mybatis + swagger2相关推荐

  1. Spring Boot 教程(三): Spring Boot 整合Mybatis

    教程简介 本项目内容为Spring Boot教程样例.目的是通过学习本系列教程,读者可以从0到1掌握spring boot的知识,并且可以运用到项目中.如您觉得该项目对您有用,欢迎点击收藏和点赞按钮, ...

  2. spring boot 整合mybatis 无法输出sql的问题

    使用spring boot整合mybatis,测试功能的时候,遇到到了sql问题,想要从日志上看哪里错了,但是怎么都无法输出执行的sql,我使用的是log4j2,百度了一下,很多博客都说,加上下面的日 ...

  3. Spring boot 整合 Mybatis 实现增删改查(MyEclipse版)

    1.首先搭建好一个Spring boot 程序,编写好启动类. 启动类代码如下: @SpringBootApplication public class Start {public static vo ...

  4. spring boot整合mybatis+通用mapper+pagehelper分页插件

    spring boot整合mybatis+通用mapper+pagehelper分页插件 pom依赖 <?xml version="1.0" encoding="U ...

  5. spring boot整合mybatis步骤

    spring boot整合mybatis步骤 官方说明:MyBatis-Spring-Boot-Starter will help you use MyBatis with Spring Boot 其 ...

  6. Spring Boot整合MyBatis

    最近项目原因可能会继续开始使用MyBatis,已经习惯于spring-data的风格,再回头看xml的映射配置总觉得不是特别舒服,接口定义与映射离散在不同文件中,使得阅读起来并不是特别方便. Spri ...

  7. Spring Boot基础学习笔记06:Spring Boot整合MyBatis

    文章目录 零.学习目标 1.了解Spring Boot数据访问概述 2.掌握使用注解的方式整合MyBatis 3.掌握使用配置文件的方式整合MyBatis 一.Spring Boot数据访问概述 二. ...

  8. Spring Boot 整合MyBatis(23)

    Spring Boot 整合MyBatis Spring Boot 整合 Druid 引入依赖 配置 application.yml pring Boot 整合 tk.mybatis 引入依赖 配置 ...

  9. Spring Boot 整合 MyBatis Plus实现多数据源的两种方式

    第一种:使用配置类的方式: 项目结构 xml依赖: <?xml version="1.0" encoding="UTF-8"?> <proje ...

  10. 干货必看|Spring Boot整合MyBatis框架详解

    在开发中,我们通常会对数据库的数据进行操作,Sprirng Boot对关系型数据库和非关系型数据库的访问操作都提供了非常好的整合支持.所以今天壹哥就给大家讲解一下,如何在SpringBoot环境中整合 ...

最新文章

  1. leetcode-225 队列实现栈
  2. 写得太好了!树莓派安装docker
  3. python菜鸟excel教程-Python菜鸟之路: 封装通用excel操作
  4. VTK修炼之道70:体绘制讨论_光照阴影、VTKLODProp3D
  5. android 手机命令大全,adb 命令大全
  6. C++False position求根的实现算法(附完整源码)
  7. zookeeper和etcd有状态服务部署
  8. chrome vue.js插件文档_神级宝库!GitHub 标星 1.2w+,Chrome 最天秀的插件都在这里啦!...
  9. WPF--TextBlock的ToolTip附加属性
  10. lzo的安装及在hadoop中的配置
  11. MapReduce编程实践之自定义数据类型
  12. 从对集合数据去重到Distinct源码分析
  13. android网页接口实现方法,Android 程序员搞 web 之 webApi (十 四)
  14. 动态数据的国际化、几种主要的国际化标签
  15. 14. Nginx 服务器架构
  16. 序列化和反序列化(JSON、protobuf)
  17. 查看服务器sftp用户信息,linux查看sftp服务器配置
  18. window下mysql免安装版教程大全
  19. Excel判断身份证号码数据的第17或15位数字的奇偶性决定男女性别
  20. bzoj4565 [Haoi2016]字符合并 (区间DP + 状压DP)

热门文章

  1. LVS负载均衡的几种模式和算法
  2. 【限时免费】云计算时代的安全和智能运维(11月18日周六|广州)
  3. 校门外的树和memset
  4. jQuery-对标签元素 文本操作-属性操作-文档的操作
  5. Python天天学_03_基础三
  6. 软件工程第四次作业——例行报告
  7. 图片循环滚动代码[转]
  8. Xcode 真机 iPhone is not available 及 is busy 解决
  9. 分布式服务防雪崩熔断器(Hystrix),实现服务降级
  10. MySql cmd下的学习笔记 —— 有关select的操作(order by,limit)