在开发的时候,我们为了快速开发可以使用springBoot,这样不需要配置xml,只需要注解。如果配合mybatis plus开发数据就更快了。下面我们将讲述如何快速的搭建一个springBoot+mybaits的架构。

第一步,准备工程。

在eclipse中,右键选择new 然后选择other,再选择Maven下的Maven Project.继续Next->Next.Group Id输入你的名称如:com.zhm,Article Id选择项目名称如:MyProject。

这样Maven工程就创建好了。

第二步,准备mybatis plus插件并且实现代码自动生成。

(1):在maven中配置需要的jar包

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


 <dependencies>
 <dependency>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter-web</artifactId>
 </dependency>


 <dependency>
 <groupId>org.apache.tomcat.embed</groupId>
 <artifactId>tomcat-embed-jasper</artifactId>
 <scope>provided</scope>
 </dependency>


 <dependency>
 <groupId>org.mybatis.spring.boot</groupId>
 <artifactId>mybatis-spring-boot-starter</artifactId>
 <version>1.1.1</version>
 </dependency>


 <dependency>
 <groupId>Mysql</groupId>
 <artifactId>mysql-connector-java</artifactId>
 <version>5.1.38</version>
 </dependency>


 <!-- mybatisPlus代码生成模板引擎 -->
 <dependency>
 <groupId>org.apache.velocity</groupId>
 <artifactId>velocity</artifactId>
 </dependency>


 <!-- druid阿里巴巴数据库连接池 -->
 <dependency>
 <groupId>com.alibaba</groupId>
 <artifactId>druid</artifactId>
 <version>1.0.26</version>
 </dependency>


 <dependency>
 <groupId>com.zaxxer</groupId>
 <artifactId>HikariCP</artifactId>
 </dependency>


 <!-- MP 核心库 -->
 <dependency>
 <groupId>com.baomidou</groupId>
 <artifactId>mybatis-plus</artifactId>
 <version>2.0.1</version>
 </dependency>


 <!-- JUnit test dependency -->
 <dependency>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter-test</artifactId>
 </dependency>
 <dependency>
 <groupId>com.jayway.restassured</groupId>
 <artifactId>rest-assured</artifactId>
 <version>2.3.3</version>
 <scope>test</scope>
 </dependency>
 <!-- fastjson阿里巴巴jSON处理器 -->
 <dependency>
 <groupId>com.alibaba</groupId>
 <artifactId>fastjson</artifactId>
 <version>1.2.13</version>
 </dependency>


 <dependency>
 <groupId>org.jsoup</groupId>
 <artifactId>jsoup</artifactId>
 <version>1.10.2</version>
 </dependency>
 </dependencies>


 <build>
 <plugins>
 <plugin>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-maven-plugin</artifactId>
 </plugin>
 <plugin>
 <groupId>cn.wanghaomiao</groupId>
 <artifactId>maven-seimicrawler-plugin</artifactId>
 <version>1.0.0</version>
 <executions>
 <execution>
 <phase>package</phase>
 <goals>
 <goal>build</goal>
 </goals>
 </execution>
 </executions>
 <!--<configuration> -->
 <!-- 默认target目录 -->
 <!--<outputDirectory>/some/path</outputDirectory> -->
 <!--</configuration> -->
 </plugin>
 </plugins> </build>
(2):准备application.properties文件
#view
spring.mvc.view.prefix=/WEB-INF/view/spring.mvc.view.suffix=.jsp

 
# jdbc_config
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/crawler?characterEncoding=utf8
spring.datasource.username=root
spring.datasource.password=
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource


#druid_config
spring.datasource.max-active: 20
spring.datasource.initial-size: 1
spring.datasource.min-idle: 3
spring.datasource.max-wait: 60000
spring.datasource.time-between-eviction-runs-millis: 60000
spring.datasource.min-evictable-idle-time-millis: 300000
spring.datasource.test-while-idle: true
spring.datasource.test-on-borrow: false
spring.datasource.test-on-return: false
spring.datasource.poolPreparedStatements: true






# mybatis_config
mybatis.mapper-locations=classpath:mapper/*Mapper.xml 
mybatis.typeAliasesPackage=io.z77z.entity


# log_config   DEBUG    ERROR    INFO    WARN  
logging.level.root=WARN
 
logging.file=./logs/spring-boot-logging.log

(3):准备编写mybatis Plus的配置java
import javax.sql.DataSource;
import org.apache.ibatis.mapping.DatabaseIdProvider;
import org.apache.ibatis.plugin.Interceptor;
import org.mybatis.spring.boot.autoconfigure.MybatisProperties;
import org.mybatis.spring.boot.autoconfigure.SpringBootVFS;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.io.DefaultResourceLoader;
import org.springframework.core.io.ResourceLoader;
import org.springframework.util.ObjectUtils;
import org.springframework.util.StringUtils;


import com.baomidou.mybatisplus.MybatisConfiguration;
import com.baomidou.mybatisplus.MybatisXMLLanguageDriver;
import com.baomidou.mybatisplus.entity.GlobalConfiguration;
import com.baomidou.mybatisplus.enums.DBType;
import com.baomidou.mybatisplus.plugins.PaginationInterceptor;
import com.baomidou.mybatisplus.spring.MybatisSqlSessionFactoryBean;
@Configuration
public class MybatisPlusConfig {
  @Autowired
     private DataSource dataSource;


     @Autowired
     private MybatisProperties properties;


     @Autowired
     private ResourceLoader resourceLoader = new DefaultResourceLoader();


     @Autowired(required = false)
     private Interceptor[] interceptors;


     @Autowired(required = false)
     private DatabaseIdProvider databaseIdProvider;
 @Bean
 public PaginationInterceptor paginationInterceptor() {
     PaginationInterceptor page = new PaginationInterceptor();
     page.setDialectType("mysql");
     return page;
 }
 /**
  * 这里全部使用mybatis-autoconfigure 已经自动加载的资源。不手动指定
  * 配置文件和mybatis-boot的配置文件同步
  * @return
  */
 @Bean
 public MybatisSqlSessionFactoryBean mybatisSqlSessionFactoryBean() {
     MybatisSqlSessionFactoryBean mybatisPlus = new MybatisSqlSessionFactoryBean();
     mybatisPlus.setDataSource(dataSource);
     mybatisPlus.setVfs(SpringBootVFS.class);
     if (StringUtils.hasText(this.properties.getConfigLocation())) {
         mybatisPlus.setConfigLocation(this.resourceLoader.getResource(this.properties.getConfigLocation()));
     }
     mybatisPlus.setConfiguration(properties.getConfiguration());
     if (!ObjectUtils.isEmpty(this.interceptors)) {
         mybatisPlus.setPlugins(this.interceptors);
     }
     // MP 全局配置,更多内容进入类看注释
     GlobalConfiguration globalConfig = new GlobalConfiguration();
     globalConfig.setDbType(DBType.MYSQL.name());
     // ID 策略 AUTO->`0`("数据库ID自增") INPUT->`1`(用户输入ID") ID_WORKER->`2`("全局唯一ID") UUID->`3`("全局唯一ID")
     globalConfig.setIdType(3);
     mybatisPlus.setGlobalConfig(globalConfig);
     MybatisConfiguration mc = new MybatisConfiguration();
     mc.setDefaultScriptingLanguage(MybatisXMLLanguageDriver.class);
     mybatisPlus.setConfiguration(mc);
     if (this.databaseIdProvider != null) {
         mybatisPlus.setDatabaseIdProvider(this.databaseIdProvider);
     }
     if (StringUtils.hasLength(this.properties.getTypeAliasesPackage())) {
         mybatisPlus.setTypeAliasesPackage(this.properties.getTypeAliasesPackage());
     }
     if (StringUtils.hasLength(this.properties.getTypeHandlersPackage())) {
         mybatisPlus.setTypeHandlersPackage(this.properties.getTypeHandlersPackage());
     }
     if (!ObjectUtils.isEmpty(this.properties.resolveMapperLocations())) {
         mybatisPlus.setMapperLocations(this.properties.resolveMapperLocations());
     }
     return mybatisPlus;
 }
} 
(4):准备mybatis plus的自动生成代码java。运行就可以自动生成好javabean ,dao,service,controller。代码如下:
 


import java.util.HashMap; 

import java.util.Map; 



import com.baomidou.mybatisplus.generator.AutoGenerator; 

import com.baomidou.mybatisplus.generator.InjectionConfig; 

import com.baomidou.mybatisplus.generator.config.DataSourceConfig; 

import com.baomidou.mybatisplus.generator.config.GlobalConfig; 

import com.baomidou.mybatisplus.generator.config.PackageConfig; 

import com.baomidou.mybatisplus.generator.config.StrategyConfig; 

import com.baomidou.mybatisplus.generator.config.rules.DbType; 

import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy; 



public class MpGenerator { 

 /** 

     * <p> 

     * MySQL 生成演示 

     * </p> 

     */ 

    public static void main(String[] args) { 

      

      AutoGenerator mpg = new AutoGenerator(); 

        // 全局配置 

        GlobalConfig gc = new GlobalConfig(); 

        gc.setOutputDir("C:\\workspace\\MPTest\\src\\main\\java"); 

        gc.setFileOverride(true); 

        gc.setActiveRecord(false);// 不需要ActiveRecord特性的请改为false 

        gc.setEnableCache(false);// XML 二级缓存 

        gc.setBaseResultMap(true);// XML ResultMap 

        gc.setBaseColumnList(false);// XML columList 

        gc.setAuthor("Walle");// 作者 



        // 自定义文件命名,注意 %s 会自动填充表实体属性! 

        gc.setControllerName("%sAction"); 

        gc.setServiceName("%sService"); 

        gc.setServiceImplName("%sServiceImpl"); 

        gc.setMapperName("%sMapper"); 

        gc.setXmlName("%sMapper"); 

        mpg.setGlobalConfig(gc); 



        // 数据源配置 

        DataSourceConfig dsc = new DataSourceConfig(); 

        dsc.setDbType(DbType.MYSQL); 

        dsc.setDriverName("com.mysql.jdbc.Driver"); 

        dsc.setUsername("root"); 

        dsc.setPassword(""); 

        dsc.setUrl("jdbc:mysql://127.0.0.1:3306/itcast"); 

        mpg.setDataSource(dsc); 



        // 策略配置 

        StrategyConfig strategy = new StrategyConfig(); 

        strategy.setTablePrefix(new String[] { "itcast_" });// 此处可以修改为您的表前缀 

        strategy.setNaming(NamingStrategy.underline_to_camel);// 表名生成策略 

        strategy.setInclude(new String[] { "itcast_user" }); // 需要生成的表 

        strategy.setInclude(new String[] { "itcast_topic" }); // 需要生成的表 

        strategy.setSuperServiceClass(null); 

        strategy.setSuperServiceImplClass(null); 

        strategy.setSuperMapperClass(null); 



        mpg.setStrategy(strategy); 



        // 包配置 

        PackageConfig pc = new PackageConfig(); 

        pc.setParent("com.zhm"); 

        pc.setController("action"); 

        pc.setService("service"); 

        pc.setServiceImpl("serviceImpl"); 

        pc.setMapper("mapper"); 

        pc.setEntity("entity"); 

        pc.setXml("xml"); 

        mpg.setPackageInfo(pc); 



        // 执行生成 

        mpg.execute(); 

    } 

} 
当我们点击运行的时候就自动生成好相应的代码了。特别方便。
第三步:准备启动的Application.java
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.support.SpringBootServletInitializer;


/**
 * Hello world!
 *
 */
@MapperScan("com.zhm.mapper")
@SpringBootApplication
public class App extends SpringBootServletInitializer   {
 


 // 入口
 public static void main(String[] args) {
 SpringApplication.run(App.class, args);
 }


 // Java EE应用服务器配置,
 // 如果要使用tomcat来加载jsp的话就必须继承SpringBootServletInitializer类并且重写其中configure方法
 @Override
 protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
 return application.sources(App.class);
 }}

这样启动后,就可以使用了。