Spring Boot集成Mybatis:
-
Spring Boot不是提供一种新的解决方案是在Spring框架基础之上实现快速开发应用
-
Spring Boot特点:
- 创建独立的Spring应用程序
- 嵌入的Tomcat,无需部署war文件
- 简化Maven配置
- 自动配置Spring
- 绝对没有代码生成和对XML没有要求配置
-
Spring Boot主要内容(一律采用Java注解配置)
- Spring Boot Beans和参数注入(IOC)
- Spring Boot数据访问
- Spring Boot WebMVC
- Spring Boot AOP/事务
- Spring Boot Servlet应用
-
Spring Boot环境的搭建
- pom.xml
<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>top.itdage</groupId> <artifactId>springboot01</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>war</packaging> <parent> <groupId>org.springframework.boot</groupId> <!-- 自动包含以下信息: --> <!-- 1.使用Java6编译级别 --> <!-- 2.使UTF-8编码 --> <!-- 3.实现了通用的测试框架 (JUnit, Hamcrest, Mockito). --> <!-- 4.智能资源过滤 --> <!-- 5.智能的插件配置(exec plugin, surefire, Git commit ID, shade). --> <artifactId>spring-boot-starter-parent</artifactId> <!-- spring boot 1.x最后稳定版本 --> <version>1.4.1.RELEASE</version> <!-- 表示父模块pom的相对路径,这里没有值 --> <relativePath /> </parent> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <java.version>1.8</java.version> </properties> <dependencies> <!-- web --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- 测试 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <!-- 只在test测试里面运行 --> <scope>test</scope> </dependency> <!-- Mybatis依赖 --> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.2.0</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.0.26</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> <!-- 热部署 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <optional>true</optional> <!-- optional=true,依赖不会传递,该项目依赖devtools;之后依赖myboot项目的项目如果想要使用devtools,需要重新引入 --> </dependency> <!-- 移除Tomcat模块 发布时需要永达 --> <!-- <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> </exclusion> </exclusions> </dependency> --> <!-- 添加servlet依赖 发布时用到--> <!-- <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <scope>provided</scope> </dependency> --> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> <finalName>springboot01</finalName> </build>
</project>
- application.properties
\#mysql连接 spring.datasource.url=jdbc:mysql://localhost:3306/blog?useUnicode=true&characterEncoding=UTF-8 spring.datasource.username=root spring.datasource.password=123456 spring.datasource.driver-class-name=com.mysql.jdbc.Driver \#修改Tomcat端口号 本地启动时能用到 server.port=8888 \#连接池 type: com.alibaba.druid.pool.DruidDataSource \#访问时的项目名字 server.context-path=/springboot01 #mybatis mapper文件位置 mybatis.mapper-locations=classpath:mapper/*.xml
- pom.xml
- 启动类:
package springboot01;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
@MapperScan(basePackages={“dao”})//mybatis.mapper-locations=classpath:cn/xdl/sql/*.xml
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
- 实体类:
package entity;
public class User {
private String username;
private String password;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public String toString() {
return “User [username=” + username + “, password=” + password + “]”;
}
}
- Controller层:
package springboot01;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import dao.UserMapper;
import entity.User;
@RestController
public class UserController {
@Autowired
private UserMapper userMapper;
@RequestMapping("/get")
public User get(){
System.out.println(“test”);
User user = userMapper.findUserByName(“1”);
System.out.println(user);
return user;
}
}
- Dao层:
package dao;
-
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; import entity.User; @Mapper public interface UserMapper { @Select("select * from a_user where username = #{username}") User findUserByName(@Param("username") String username); } </code></pre></li> </ul><br>
Spring Boot项目打成war包步骤
- 1. 修改pom.xml文件,将jar改为war。
<packaging>war</packaging>
- 2. 在pom.xml文件中将build节点中的finalName修改为server.context-path中的路径。就是项目名称。
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> <finalName>springboot01</finalName> </build>
- 3. 在spring-boot-starter-web依赖中移除tomcat模块。(上面pom.xml中有)
- 4.添加servlet依赖。(上面pom.xml中有)
- 5. 新建启动类。(需要和之前的启动类在同一级目录)
package springboot01;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.support.SpringBootServletInitializer;public class SpringBootStartApplication extends SpringBootServletInitializer {
@Override protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { // 注意这里要指向原先用main方法执行的Application启动类 return builder.sources(Application.class); }
}
- 1. 修改pom.xml文件,将jar改为war。
- 6. 使用mvn打包,mvn clean package -Dmaven.test.skip=true。
- 7. 部署到Tomcat的webapps下。