springboot + mybatis從環境搭建到打包發佈

1.配置pom.xml文件java

<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/maven-v4_0_0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>com.boot</groupId>
	<artifactId>demo</artifactId>
	<packaging>jar</packaging>
	<version>0.0.1-SNAPSHOT</version>
	<name>demo Maven Webapp</name>
	<url>http://maven.apache.org</url>

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

	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<java.version>1.7</java.version>
	</properties>

	<dependencies>
		<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>        
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>1.3.0</version>
        </dependency>
        <!-- mybatis -->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.4.0</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-web</artifactId>
		</dependency>
		<!-- mysql數據庫 -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.35</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-core</artifactId>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.datatype</groupId>
            <artifactId>jackson-datatype-joda</artifactId>
        </dependency>
        
        <!-- 分頁插件 -->
        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper-spring-boot-starter</artifactId>
            <version>1.1.2</version>
        </dependency>
        <!-- alibaba的druid數據庫鏈接池 -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>1.1.0</version>
        </dependency>
         <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.0.11</version>
        </dependency>
        
        

        
    </dependencies>

    <build>
    	<finalName>demo_boot</finalName>
        <plugins>
        	<!-- maven打包成jar插件 -->
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
            <!-- mybatis generator 自動生成代碼插件 -->
            <plugin>
				<groupId>org.mybatis.generator</groupId>
				<artifactId>mybatis-generator-maven-plugin</artifactId>
				<version>1.3.5</version>
                <!-- 若是不配置這段,在項目package或者install時會自動執行 mybatis-generator:generate 命令-->
                <executions>
				    <execution>
				        <id>Generate MyBatis Artifacts</id>
				        <phase>deploy</phase>
				        <goals>
				            <goal>generate</goal>
				        </goals>
				    </execution>
			    </executions>
				<dependencies>
					<!--配置這個依賴主要是爲了等下在配置mybatis-generator.xml的時候能夠不用配置classPathEntry這樣的一個屬性,避免代碼的耦合度過高 -->
					<dependency>
						<groupId>mysql</groupId>
						<artifactId>mysql-connector-java</artifactId>
						<version>5.1.44</version>
					</dependency>
					<dependency>
						<groupId>tk.mybatis</groupId>
						<artifactId>mapper</artifactId>
						<version>3.4.0</version>
					</dependency>
				</dependencies>
				<executions>
					<execution>
						<id>Generate MyBatis Artifacts</id>
						<phase>package</phase>
						<goals>
							<goal>generate</goal>
						</goals>
					</execution>
				</executions>
				<configuration>
					<!--容許移動生成的文件 -->
					<verbose>true</verbose>
					<!-- 是否覆蓋 -->
					<overwrite>true</overwrite>
					<!-- 自動生成的配置 -->
					<configurationFile>src/main/resources/generator/generatorConfig.xml</configurationFile>
				</configuration>
			</plugin>
        </plugins>
    </build>


</project>

2.配置generatorConfig.xml文件(與pom.xml中配置的mybatis-generator-maven-plugin插件configurationFile屬性路徑保持一致)mysql

注意:此配置文件中不能存在註釋,不然沒法正常解析git

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration
        PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
        "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
<generatorConfiguration>
    <!-- 數據庫驅動:選擇你的本地硬盤上面的數據庫驅動包 -->
     <!-- 在pom.xml plugin org.mybatis.generator 中配置了mysql-connector依賴 此處不須要配置驅動包 -->
    <!-- <classPathEntry  location="E:\developer\mybatis-generator-core-1.3.2\lib\mysql-connector-java-5.1.25-bin.jar"/> -->
    <context id="DB2Tables"  targetRuntime="MyBatis3">
        <commentGenerator>
            <property name="suppressDate" value="true"/>
            <!-- 是否去除自動生成的註釋 true:是 : false:否 -->
            <property name="suppressAllComments" value="true"/>
        </commentGenerator>
        <!--數據庫連接URL,用戶名、密碼 -->
        <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://127.0.0.1/test" userId="root" password="">
        </jdbcConnection>
        <javaTypeResolver>
            <property name="forceBigDecimals" value="false"/>
        </javaTypeResolver>
        <!-- 生成模型的包名和位置-->
        <javaModelGenerator targetPackage="com.antong.dao.model.permisson" targetProject="src/main/java">
            <property name="enableSubPackages" value="true"/>
            <property name="trimStrings" value="true"/>
        </javaModelGenerator>
        <!-- 生成XML映射文件的包名和位置-->
        <sqlMapGenerator targetPackage="mapping.permisson" targetProject="src/main/resources">
            <property name="enableSubPackages" value="true"/>
        </sqlMapGenerator>
        <!-- 生成DAO的包名和位置-->
        <javaClientGenerator targetPackage="com.antong.dao.mapper.permisson" targetProject="src/main/java" type="XMLMAPPER">
            <property name="enableSubPackages" value="true"/>
        </javaClientGenerator>
        <!-- 要生成的表 tableName是數據庫中的表名或視圖名 domainObjectName是實體類名-->
        <table tableName="t_user" domainObjectName="User" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table>
    </context>
</generatorConfiguration>

3.配置application.yml文件github

 

<!-- alibaba的druid數據庫鏈接池  若是使用druid數據源,必須添加druid依賴,不然會提示異常 web

Property 'sqlSessionFactory' or 'sqlSessionTemplate' are required

  -->spring

<dependency>sql

<groupId>com.alibaba</groupId>數據庫

<artifactId>druid-spring-boot-starter</artifactId>apache

<version>1.1.0</version>springboot

</dependency>

<dependency>

<groupId>com.alibaba</groupId>

<artifactId>druid</artifactId>

<version>1.0.11</version>

</dependency>

 

server:
  #服務器端口
  port: 8080

spring:
    datasource:
        name: test
        # 數據庫鏈接串
        url: jdbc:mysql://dbip:3306/dbname
        # 數據庫用戶
        username: dbuser
        # 數據庫密碼
        password: dbpassword
        # 使用druid數據源
        type: com.alibaba.druid.pool.DruidDataSource
        # 數據庫驅動類
        driver-class-name: com.mysql.jdbc.Driver
        filters: stat
        maxActive: 20
        initialSize: 1
        maxWait: 60000
        minIdle: 1
        timeBetweenEvictionRunsMillis: 60000
        minEvictableIdleTimeMillis: 300000
        validationQuery: select 'x'
        testWhileIdle: true
        testOnBorrow: false
        testOnReturn: false
        poolPreparedStatements: true
        maxOpenPreparedStatements: 20
mybatis:
  #配置mapping.xml路徑
  mapper-locations: classpath:mapping/*.xml
  #配置model包路徑
  type-aliases-package: com.boot.model

#pagehelper分頁插件
pagehelper:
    helperDialect: mysql
    reasonable: true
    supportMethodsArguments: true
    params: count=countSql

4.工程啓動類

右鍵 run as > java application便可啓動工程

package com.boot;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;

/**   
* @Title: Application.java 
* @Package core 
* @Description: TODO(應用啓動類) 
* @author tuozq 
* @date 2017年11月22日 上午10:55:03 
* @version V1.0   
*/
@SpringBootApplication//即@Configuration,@EnableAutoConfiguration,@ComponentScan
@MapperScan("com.boot.mapper")//掃描mapper
public class Application {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		 SpringApplication.run(Application.class, args);
	}

}

Application須要放在根目錄下

5.經過mybatis generator 自動生成代碼插件生成**mapper.java、**mapper.xml、**model.java

  打開debug Configurations...,選擇Maven Build新增

  Golas : mybatis-generator:generate

 

  Dubug運行便可經過generatorConfig.xml的配置自動生成mapper文件。

  controller和service不作舉例。。。

   打包好的jar包,能夠直接雙擊啓動,或者經過命令 java -jar myproject.jar 啓動

6.打包成可執行的jar包

    pom.xml中packaging屬性設置爲jar,plugin節點添加以下配置:

<!-- maven打包成jar插件 -->
<plugin>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-maven-plugin</artifactId>
</plugin>

7.註解描述

     @RestController註解至關於@ResponseBody + @Controller合在一塊兒的做用。

    1)若是隻是使用@RestController註解Controller,則Controller中的方法沒法返回jsp頁面,配置的視 圖    解析器InternalResourceViewResolver不起做用,返回的內容就是Return 裏的內容。

    例如:原本應該到success.jsp頁面的,則其顯示success.

     2)若是須要返回到指定頁面,則須要用 @Controller配合視圖解析器InternalResourceViewResolver才行。
   3)若是須要返回JSON,XML或自定義mediaType內容到頁面,則須要在對應的方法上加上@ResponseBody註解。

 

    @SpringBootApplication註解,它包括三個註解:

    1)@Configuration:表示將該類做用springboot配置文件類。

    2)@EnableAutoConfiguration:表示程序啓動時,自動加載springboot默認的配置。

    3)@ComponentScan:表示程序啓動是,自動掃描當前包及子包下全部類。

相關文章
相關標籤/搜索