随着技术框架的不断更新,一些公司摒弃了原先的技术框架模式。而springboot慢慢取代了原有的ssm框架开发。为什么选择springboot呢?

  1. 配置简单不需要编写太多的xml;
  2. 基于spring构建,容易上手;
  3. 独立运行不依赖于容器;
  4. 内置服务器tomcat不需要打war包;
  5. 提供maven极简配置;
  6. 对于各种框架有很好的集成;
  7. 为SpringCloud微服务奠定基础,使微服务构建变得简单;

下面让我们使用idea一起搭建完整版的SpringBoot项目:

一、创建SpringBoot项目

1、打开idea:File->New->Project:

Spring boot IDL语言 spring boot idea_mybatis

2、选择Spring Initializr,点击Next(注意:此处需要连接网络)(Initializr:初始化(计算机程序或系统);预置;格式化(磁盘);)

Spring boot IDL语言 spring boot idea_spring_02

3、修改项目信息:Group:组名可不做修改(可以根据自己项目情况修改) 例如:标识性 com.自己名字缩写;Artifact:此处修改关系着项目名,点击下一步Next

Spring boot IDL语言 spring boot idea_mybatis_03

4、这里可以选择也可以不选择;我在这里是先选择了,Web下勾选SpringWeb;Template Englines勾选Thymeleaf;SQL勾选MySQL Driver,JDBC API 和 MyBatis Framework;点击Next;

Spring boot IDL语言 spring boot idea_spring_04

5、选择项目存放路径,点击Finish,选择New Window打开项目

Spring boot IDL语言 spring boot idea_Spring boot IDL语言_05

Spring boot IDL语言 spring boot idea_spring boot_06

6、创建完成,项目结构如图:

Spring boot IDL语言 spring boot idea_spring boot_07

7、配置本地maven仓库(ps:可以使用idea自带meven仓库,也可配置自己的meven仓库),配置自己的需要下载maven仓库jar;

找到idea右侧maven,点击设置工具

maven官网:Maven – Download Apache Maven详细参考maven仓库配置Maven配置教程_huo920的博客-CSDN博客_maven配置

Spring boot IDL语言 spring boot idea_spring_08

8、选择Maven路径;勾选选择配置文件,会根据配置文件直接找到本地仓库位置;点击Apply应用

注:maven home directory可以选择 Use Maven wrapper

Spring boot IDL语言 spring boot idea_spring_09

Spring boot IDL语言 spring boot idea_Spring boot IDL语言_10

9、所有完成之后基本搭建已经完成下面开始测试能否访问页面,新建一个index.html主页面,名称为index。新建完成后,页面中随便写点内容

Spring boot IDL语言 spring boot idea_Spring boot IDL语言_11

10、在标记的文件夹下新建controller包,包名为controller

Spring boot IDL语言 spring boot idea_Spring boot IDL语言_12

Spring boot IDL语言 spring boot idea_Spring boot IDL语言_13

11、在controller文件夹包下新建类,名称为TestController,Controller类需要添加注解@Controller用于项目启动自动加载扫描Controller类

@RequestMapping用于映射请求地址。标记在类上相当于父路径,标记在方法上相当于子路径。例如访问要加上父路径

package com.sun.mall.controller;
 
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
 
/**
 * @author sunql
 * @description controller层
 * @date 2020/12/29 15:30
 */
@Controller
@RequestMapping(value = "/hello")
public class TestController {
 
    @RequestMapping(value = "/test")
    public String test(){
        return "index";
    }
}

12、在resources文件夹下application.properties配置中心,配置数据库连接

#数据库名称
spring.datasource.name=mall 
#数据库连接url
spring.datasource.url= jdbc:mysql://localhost:3306/mall?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true
#用户名
spring.datasource.username=root
#密码
spring.datasource.password=123qwe
#数据库驱动
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

13、启动项目

Spring boot IDL语言 spring boot idea_spring boot_14

14、访问项目地址:localhost:8080/hello/test,8080启动端口号 hello是上面@Requestmapping(value="/hello")父路径, test是上面@Requestmapping(value="/test")子路径

Spring boot IDL语言 spring boot idea_spring boot_15

15、大功告成,接下来进行连接数据库的基本curd

在mall数据库新建user表

Spring boot IDL语言 spring boot idea_Spring boot IDL语言_16

16、在com.sun.mall包下创建model层,mapper层,service层以及实现service的impl层,controller层。

Spring boot IDL语言 spring boot idea_Spring boot IDL语言_17

在各个包层下面创建响应的类以及接口

model层:生成getter setter方法

package com.sun.mall.model;
 
/**
 * @author sunql
 * @description
 * @date 2020/12/29 16:10
 */
public class User {
    private int id;
    private String name;
    private int age;
 
    public int getId() {
        return id;
    }
 
    public void setId(int id) {
        this.id = id;
    }
 
    public String getName() {
        return name;
    }
 
    public void setName(String name) {
        this.name = name;
    }
 
    public int getAge() {
        return age;
    }
 
    public void setAge(int age) {
        this.age = age;
    }
}

mapper层:接口

package com.sun.mall.mapper;
 
import com.sun.mall.model.User;
 
/**
 * @author sunql
 * @description
 * @date 2020/12/29 16:15
 */
public interface UserMapper {
    /**
     * 根据id查询用户
     * @param id
     * @return
     */
    User selectUserById(Integer id);
}

service层:接口

package com.sun.mall.service;
 
import com.sun.mall.model.User;
 
/**
 * @author sunql
 * @description
 * @date 2020/12/29 16:18
 */
public interface UserService {
    /**
     * 根据id查询用户
     * @param id
     * @return
     */
    User selectUserById(Integer id);
}

service层业务实现需要添加注解@Service,注入Mapper:

package com.sun.mall.service.impl;
 
import com.sun.mall.mapper.UserMapper;
import com.sun.mall.model.User;
import com.sun.mall.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
 
/**
 * @author sunql
 * @description
 * @date 2020/12/29 16:20
 */
@Service
public class UserServiceImpl implements UserService {
    /**
     * 注入mapper到service层
     */
    @Autowired
    private UserMapper userMapper;
 
    @Override
    public User selectUserById(Integer id) {
        return userMapper.selectUserById(id);
    }
}

启动类添加注解@MapperScan("com.sun.mall.mapper"),否则mapper无法注入,启动项目会报错找不到mapper

package com.sun.mall;
 
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
 
/**
 * @author sunql
 */
@SpringBootApplication
@MapperScan("com.sun.mall.mapper")
public class MallApplication {
 
    public static void main(String[] args) {
        SpringApplication.run(MallApplication.class, args);
    }
 
}

17、在resources文件夹下新建mapper文件夹,在mapper文件夹下新建UserMapper.xml文件

Spring boot IDL语言 spring boot idea_intellij-idea_18

Spring boot IDL语言 spring boot idea_spring boot_19

代码:

<?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.sun.mall.mapper.UserMapper" >
  <select id="selectUserById" parameterType="int" resultType="com.sun.mall.model.User">
    select * from user where id=#{id}
  </select>
</mapper>

在application.properties中添加Mybatis配置:

#数据库名称
spring.datasource.name=mall 
#数据库连接url
spring.datasource.url= jdbc:mysql://localhost:3306/mall?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true
#用户名
spring.datasource.username=root
#密码
spring.datasource.password=123qwe
#数据库驱动
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
 
#mybatis配置
#配置映射文件
mybatis.mapper-locations=classpath:mapper/*.xml
#配置实体类
mybatis.type-aliases-package=com.sun.mall.model

18、编写contoller类,创建UserController,注入UserService,添加@Controller注解

package com.sun.mall.controller;
 
import com.sun.mall.model.User;
import com.sun.mall.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
 
/**
 * @author sunql
 * @description
 * @date 2020/12/29 16:45
 */
@Controller
@RequestMapping(value = "/user")
public class UserController {
 
    /**
     * 将UserService注入controller层
     */
    @Autowired
    private UserService userService;
 
    @RequestMapping(value = "/show")
    public String show(){
        //返回user页面显示内容
        return "user";
    }
 
    @PostMapping(value = "/getUser")
    public String getUser(Integer id, Model model) {
        User user = userService.selectUserById(id);
        model.addAttribute("users",user);
        if(user!=null){
            return "getUser";
        }else {
            return "error";
        }
    }
 
}

19、编写user.html页面。在resources文件夹下templates文件夹下新建user.html文件

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <form role="form" action = "/user/getUser" method="post">
        用户ID:<input type="text" id="id" name = "id"><br>
        <input type="submit" id = "show" value = "查询">
    </form>
</body>
</html>

新建getUser.html

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <table>
        <th>编号</th>
        <th>姓名</th>
        <th>年龄</th>
        <tr th:each="user : ${users}">
            <td th:text="${user.id}"></td>
            <td th:text="${user.name}"></td>
            <td th:text="${user.age}"></td>
        </tr>
    </table>
</body>
</html>

新建error.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    查无此人
</body>
</html>

最后启动项目访问loalhost:8080/user/show,大功告成

Spring boot IDL语言 spring boot idea_intellij-idea_20

 

Spring boot IDL语言 spring boot idea_mybatis_21

 

Spring boot IDL语言 spring boot idea_Spring boot IDL语言_22