一、快速启动入门
Spring Boot 2.0.2.RELEASE需要Java 8或9以及maven需要3.2以上版本
(1).maven项目的pom.xml添加如下依赖
<!-- 继承Spring boot父类依赖 -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.2.RELEASE</version>
</parent>
<dependencies>
<!-- 添加Spring Boot web应用程序的依赖,版本自动与继承父类版本统一 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
加入依赖后,我的可能因为网络原因导致jar包下载错误,如项目左上角有感叹号,“Window—>Show View–>Other–>搜索Problems
–>Open”,查看错误原因,如下图
将下载到本地库中jar包删除,右键项目maven–>Update Project重新下载即可。
(2).resourses目录下创建文件名为"application
"的配置文件,后缀可以是properties或yml.
properties后缀配置格式:
server.port=80 #设置启动端口
yml后缀配置格式(注意::后必须有个空格,每个层级必须有两个tab键空格,否则无效
):
server:
port: 80 #设置启动端口
(3).创建类
控制器类
package com.mi.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HrEntryMainController {
@RequestMapping("/hello")
public String Hello() {
return "Hello World!";
}
}
启动类
package com.mi;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class ApplicationTest {
public static void main(String[] args) {
SpringApplication.run(ApplicationTest.class, args);
}
}
(4).运行启动类,出现下图即启动成功,浏览器输入"localhost/hello"访问。
后续Spring Boot的更高版本,没有了Jackson相关包,在测试接口时返回JSON格式对象时,提示报错信息:org.springframework.http.converter.HttpMessageNotWritableException: No converter found for return value of type: class com.*.*.*
,需要添加如下Jackson依赖
<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.9.5</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.9.5</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-annotations -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.9.5</version>
</dependency>
简化部署
<!-- 这个插件,可以将应用打包成一个可执行的jar包 -->
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<!-- 指定SpringBoot启动类 -->
<mainClass>com.mi.ApplicationTest</mainClass>
</configuration>
</plugin>
</plugins>
</build>
将这个应用打成jar包,cmd进入jar包目录下,直接使用java -jar jar包名
的命令进行执行。
热部署
开发者开发过程中,会频繁的改动代码,代码修改后又需重新启动才能使用,热部署则无需重新启动即可使用改动后的代码
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
二、整合Mybatis
(1).添加Mybatis整合Spring boot依赖
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.2</version>
</dependency>
(2).添加嵌入式数据库支持,可以使用spring-boot-starter-jdbc或spring-boot-starter-data-jpa依赖,jpa支持HQL查询,将自动获得依赖"HikariCP
"
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
或
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
(3).添加数据库驱动jar包,版本自行选择
添加Mysql驱动包依赖:
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.45</version>
</dependency>
或添加oracle驱动包依赖,可能由于oracle授权问题,maven不提供oracle的驱动包,官网下载网址:
https://www.oracle.com/technetwork/database/application-development/jdbc/downloads/index.html
本地oracle的版本可以通过:"SELECT * FROM v$version;
",将驱动包安装到本地maven仓库中,cmd命令行提示符执行如下命令:
mvn install:install-file -DgroupId=com.oracle -DartifactId=ojdbc6 -Dversion=11.2.0.4.0 -Dpackaging=jar -Dfile=本地路径\ojdbc6.jar
“****注意DartifactId和Dversion与使用的jar版本一致****
”
出现"BUILD SUCCESS
"即安装成功,项目再引入oracle依赖即可
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc6</artifactId>
<version>11.2.0.4.0</version>
</dependency>
(4)以yml为例,application.yml配置文件中添加配置:
spring:
datasource:
url: jdbc:oracle:thin:@localhost:1521:Test
username: ****
password: ****
driver-class-name: oracle.jdbc.driver.OracleDriver
(5).mapper层
添加的是spring-boot-starter-jdbc依赖,使用如下:
① mapper类上添加@org.apache.ibatis.annotations.Mapper注解。
② .xml映射文件与mapper类在同一包下 或 在resources目录新建一个mapper文件夹放置.xml文件,application.yml文件配置.xml文件位置如下:
mybatis:
mapperLocations: classpath:mapper/*Mapper.xml
注意:"IDEA开发工具中,.xml文件与mapper类在同一包下,不指定xml位置的是找不到的
"
③ 下一步即是Sql语句的编写。
添加的是spring-boot-starter-data-jpa依赖,使用如下:
① mapper类需继承org.springframework.data.repository.CrudRepository类,实现了大量的增删改查方法,需指定泛型T为实体类型,ID为主键类型。
② mapper类添加@org.springframework.stereotype.Repository注解。
③ 接口的方法上添加@org.springframework.data.jpa.repository.Query编写jpql语句,方法参数需添加@org.springframework.data.repository.query.Param注解指定参数名。
语法格式:from 实体类名 where 属性名=:参数名
如果希望使用原生sql,只需要@Query(nativeQuery=true)
标识即可.
④实体类上添加@javax.persistence.Entity和@javax.persistence.Table注解,Table注解name的值指定表名,实体类的属性添加@javax.persistence.Column,name的值指定表中的字段,主键额外添加@javax.persistence.Id注解。注解做好了实体类与数据表的对应,就无需繁杂的xml文件。
注:SpringDataJPA还有很多强大的功能,比如通过解析方法名创建查询等,可以参考这位博主关于jpa增删改查以及解析方法名创建查询的文章:https://blog.youkuaiyun.com/u012706811/article/details/53218083