使用IDEA搭建SpringBoot(详细版)

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

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

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

一.创建SpringBoot项目

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

2.选择Spring Intializr,点击Next(注意:此处需要连接网络)

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

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

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

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

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

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

maven官网:http://maven.apache.org/download.cgi详细参考maven仓库配置https://blog.csdn.net/huo920/article/details/82082403

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

9.所有完成之后基本搭建已经完成下面开始测试能否访问页面,新建一个index.html主页面,名称为index

新建完成后,页面中随便写点内容

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

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.启动项目

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

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

在mall数据库新建user表

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

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

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);
    }

}

16.在resources文件夹下新建mapper文件夹,在mapper文件夹下新建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="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

17.编写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";
        }
    }

}

18.编写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,大功告成

希望大家在编程道路上一路前行,畅通无阻。

  • 100
    点赞
  • 689
    收藏
    觉得还不错? 一键收藏
  • 41
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 41
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值