Speing-Boot学习 搭建一个简单的Spring-boot + mybatis
首先先来认识一下Spring-boot框架,该框架是对Spring框架的进一步集成,设计目的就是简化Spring应用的搭建和开发过程。优点如下:
- 对第三方插件封装和整合,提供第三方接口
- 无需配置复杂的XML
- 提供安全等特性
- 核心功能-自动配置
- 内嵌式 web服务器(Tomcat、Jetty等)
- 提供POM,简化Maven配置
接下来,搭建一个最简单的spring-boot+mybatis,使用spring-boot 2.0.6版本,jdk必须是1.8
项目文件结构:
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>cn.wzl</groupId>
<artifactId>sb-study</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>sb-study</name>
<description>Demo project for Spring Boot</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.6.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.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!--tomcat-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--mysql-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!--配置文件处理器-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
<!--spring boot整合mybatis-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.2</version>
</dependency>
<!--jsonutils-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.10</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
配置文件:application.properties
#启动tomcat后的端口号
server.port=8080
#数据库的四大参数
spring.datasource.username=root
spring.datasource.password=bobo
spring.datasource.url=jdbc:mysql://localhost:3306/sb-study?useUnicode=true&characterEncoding=UTF-8
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
#扫描mapper文件的路劲
mybatis.mapper-locations=classpath:cn/wzl/sbstudy/dao/mapper/*.xml
实体类:User
public class User implements Serializable{
private Integer id;
private String userName;
private String password;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
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;
}
}
dao层
UserMapper.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.wzl.sbstudy.dao.UserMapper">
<resultMap id="BaseResultMap" type="cn.wzl.sbstudy.model.User">
<id column="ID" jdbcType="INTEGER" property="id" />
<result column="USER_NAME" jdbcType="VARCHAR" property="userName" />
<result column="PASSWORD" jdbcType="VARCHAR" property="password" />
</resultMap>
<select id="getOne" resultMap="BaseResultMap">
select * from user limit 0,1
</select>
</mapper>
UserMapper.java
//@Mapper的注解替换了原来的@Reposity
@Mapper
public interface UserMapper {
User getOne();
}
Service层
UserService接口类:
public interface UserService {
User getOne();
}
UserServiceImpl:实现类
@Service("userService")
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
@Override
public User getOne() {
User user = userMapper.getOne();
return user;
}
}
Controller层
UserController:
@RestController//该注解替换了原来的@Controller注解
@RequestMapping("User")
public class UserController {
@Autowired
private UserService userService;
@GetMapping("getOneUserName")
public String getOneUserName(){
return "张三";
}
@GetMapping("getOne")
public User getOne(){
User user = userService.getOne();
return user;
}
}
spring-boot启动类:
//这个注解,默认配置了扫描与该类处于同一层目录包下面的所有类,并加载所有被注解的bean。所以无需再通过配置文件配置扫描地址
@SpringBootApplication
public class SbStudyApplication {
public static void main(String[] args) {
SpringApplication.run(SbStudyApplication.class, args);
}
}
根据启动类,启动后,
直接在浏览器上访问http://localhost:8080/User/getOne,
会输出:
{"id":1,"userName":"123","password":"123"}
简单的Spring-boot就这么简单的实现了!