快速搭建SpringBoot+Mybatis的项目

开发环境: jdk1.8,maven3.6,MySQL5.6

开发工具: idea

前置条件:会搭建SSM框架

1、搭建项目:

步骤如下,不详细讲了,以截图的形式展示:

这之后直接next,fininsh就创建好了。

其次,在pom.xml里面配置依赖。

<?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>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.3.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.example</groupId>
    <artifactId>spitngboottest</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>war</packaging>
    <name>spitngboottest</name>
    <description>Demo project for Spring Boot</description>

    <properties>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <!--@Slf4j自动化日志对象-log-->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.16.16</version>
        </dependency>

        <!-- Druid连接池 -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.1.12</version>
        </dependency>


        <!-- web开发相关类 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <!--mybatis相关类 -->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>1.3.2</version>
        </dependency>

        <!--导入配置文件处理器,在编写配置文件时就会提示-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-configuration-processor</artifactId>
            <optional>true</optional>
        </dependency>

        <!-- mysql连接 -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>


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

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

2、SpringBoot的配置

在项目创建之后,可以发现基本的结构与ssm框架没啥区别,那区别到底在哪儿呢。

2.1 appellation配置文件

记得ssm框架整合时有各种application-xxx.xml,繁琐的配置让初学者头大好久。SpringBoot提倡“习惯优于配置”的理念,再也不会为了配置文件繁琐而头疼。此外,在项目中你可以发现没有了web.xml这个配置文件。那初始化的配置文件都在哪里配置呢?答案就在下面:

在我们创建完项目后,在/src/main/resources目录下有一个叫application.propertites的配置文件。然后我们不采用这种文件,而是采用application.yml这种格式的配置文件。两者的区别,不详细讲了,自行百度。(注意:SpringBoot项目默认会扫描/src/main/resources目录下名字叫application的配置文件,如果同时存在application.yml,application.properties,那么默认扫描application.properites)。SpringBoot项目的配置文件就是在这个东西下配置的。那么我现在配置一些基础的吧:

server:
  #端口号
  port: 8080
spring:
  #数据源配置
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    username: user
    password: 123
    url: jdbc:mysql://localhost:3306/db_springboot?serverTimezone=UTC&characterEncoding=utf-8&useUnicode=true
mybatis:
  #映射配置文件路径
  mapper-locations: classpath:mybatis/mapper/*.xml
  #核心配置文件路径
  config-location: classpath:mybatis/mybatis-config.xml

上面的默认配置基本是这样的一个格式,也就是yml格式。(也可以是yaml,自行百度yaml格式,口语读作丫妹儿,滑稽= =)。

2.2 Mybatis配置文件

我主要着重将SpringBoot,Mybatis就快速的过了。配置文件目录为/src/main/resources/mybatis/mybatis-config.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>

    <!-- 开启驼峰映射 ,为自定义的SQL语句服务-->
    <!--设置启用数据库字段下划线映射到java对象的驼峰式命名属性,默认为false-->
    <settings>
        <setting name="mapUnderscoreToCamelCase" value="true"/>
        <!-- 打印sql语句-->
        <setting name="logImpl" value="STDOUT_LOGGING"/>
    </settings>
</configuration>

3、项目的目录结构(以具体user例子讲述)

3.1 总体结构

3.2 UserController

package com.example.spitngboottest.controller;

import com.example.spitngboottest.model.UserDo;
import com.example.spitngboottest.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

/**
 * @Package com.example.spitngboottest.controller
 * @date: 2019-02-22
 */
@RestController
public class UserController {
    @Autowired
    private UserService userService;
    
    @GetMapping("/user/selectAll")
    public List<UserDo> selectAll() {
        return userService.selectAll();
    }
}

3.3 UserService & UserServiceImpl

package com.example.spitngboottest.service;

import com.example.spitngboottest.model.UserDo;

import java.util.List;

/**
 * @Package com.example.spitngboottest.service
 * @date: 2019-02-22
 */
public interface UserService {
    
    /**
     * 查询所有用户
     * @param 
     * @return List<UserDo>
     * @throws
     * @date 2019-02-22 
     */
    List<UserDo> selectAll();
}
package com.example.spitngboottest.service;

import com.example.spitngboottest.mapper.UserMapper;
import com.example.spitngboottest.model.UserDo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * @Package com.example.spitngboottest.service
 * @date: 2019-02-22
 */
@Service
public class UserServiceImpl implements UserService{
    @Autowired
    private UserMapper userMapper;

    @Override
    public List<UserDo> selectAll() {
        return userMapper.selectAll();
    }
}

3.4 UserMapper & UserMapper.xml

package com.example.spitngboottest.mapper;

import com.example.spitngboottest.model.UserDo;
import org.springframework.stereotype.Component;

import java.util.List;

/**
 * @Package com.example.spitngboottest.mapper
 * @date: 2019-02-22
 */
@Component
public interface UserMapper {
    
    /**
     * 查询所有用户
     * @param 
     * @return List<UserDo>
     * @throws       
     * @date 2019-02-22
     */
    List<UserDo> selectAll();
}
<?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="com.example.spitngboottest.mapper.UserMapper">
    <select id="selectAll" resultType="com.example.spitngboottest.model.UserDo">
        select id,name,age from user
    </select>
</mapper>

4、SpringBoot启动类(重点)

Springboot项目与spring项目不同之处,它有自己的启动类,不打包放在tomcat容器中也可以运行。可能会好奇,spring可以通过application-xxx.xml进行项目扫包,SpringBoot怎么扫包。

首先先将SpringBoot启动类有一个@SpringBootApplication注解。有了这个注解,SpringBoot项目就会默认去扫描当前包及其子包下的所有文件。注意,这里有个坑,mapper包扫不到。所以为了扫描mapper包,需要用到@MapperScan,并且在mapper接口上写上@Component。这是解决办法之一,还有别的方法,自行百度。

                   

 

5、运行截图

运行启动类,输入url,截图如下:

6、SpringBoot常用的注解

@SpringBootApplication:一般用于启动类,包含了@ComponentScan、@Configuration和@EnableAutoConfiguration注解。

@ComponentScan:组件扫描,可自动发现和装配一些Bean。可以扫描带有@Component 注解的类以及它的的子注解@Service、@Repository、@Controller的类。

@EnableAutoConfiguration:开启自动配置。

@Configuration:等同于spring的XML文件,进行配置。

@ImportResource:用来加载第三方xml配置文件。

@Value:注入properties配置的属性的值。

猜你喜欢

转载自blog.csdn.net/MaxwellQAQ/article/details/87862268