1.1.SpringBoot简介
SpringBoot是一个基于Spring框架的开发框架,它简化了Spring应用程序的构建和配置过程。SpringBoot的核心在于简化配置、提供快速开发的起步依赖、内置嵌入式Web容器、提供监控和管理功能等,使得开发人员可以更加专注于业务逻辑的开发。
自动配置:SpringBoot通过自动配置机制来简化应用程序的配置过程。它会根据应用程序的依赖关系自动配置相关的组件,避免了繁琐的手动配置过程。
起步依赖:SpringBoot提供了一系列的起步依赖,这些依赖包含了常用的功能和组件,比如Web应用程序、数据库访问、安全性等。使用起步依赖可以快速搭建一个基本的应用程序。
嵌入式Web容器:SpringBoot内置了多种嵌入式Web容器(如Tomcat、Jetty、Undertow等),可以直接运行打包好的应用程序,不需要额外安装Web服务器。
Actuator:SpringBoot提供了Actuator组件,用于监控和管理应用程序。Actuator可以提供应用程序的健康状态、性能指标、日志信息等。
外部化配置:SpringBoot支持将应用程序的配置文件外部化,可以在不修改代码的情况下修改应用程序的配置信息。同时,SpringBoot还支持多种配置格式,如YAML、JSON等
1.2maven简介
Maven是一个项目管理工具,它可以帮助开发人员自动化构建、依赖管理和项目报告的生成。以下是Maven的核心概念和功能:
项目对象模型(Project Object Model,POM):Maven使用POM文件来描述项目的结构和配置信息。POM文件是一个XML文件,包含了项目的依赖关系、构建配置、插件配置等。
依赖管理:Maven可以通过POM文件来管理项目的依赖关系。开发人员只需要在POM文件中声明所需的依赖项,Maven会自动下载并管理这些依赖项的版本和传递依赖关系。
构建生命周期:Maven定义了一套标准的构建生命周期,包括清理、编译、测试、打包、部署等阶段。开发人员可以通过执行不同的构建命令来触发相应的构建生命周期阶段。
插件系统:Maven支持插件机制,开发人员可以通过插件扩展Maven的功能。插件可以用于执行特定的任务或目标,比如代码编译、单元测试、静态分析等。
2.SpringBoot案例
新建一个项目,作为案例父工程
删除不需要文件
配置pom文件
完成上面的步骤后,新建一个模块,实体类模块,项目所有实体类都放该模块
配置实体类模块的pom文件,并继承父工程
完成上表面步骤后,再建一个模块作为项目业务模块,
勾选所需依赖
配置业务模块的pom文件
打开父工程的pom文件,将放入父工程统一管理
在业务模块下的resources目录下新建一个配置文件,application.yml并打开编辑
数据库连接地址3306后需要加上 /数据库名 截图的时候忘记加了
spring:
datasource:
# 数据库连接地址
url: jdbc:mysql://localhost:3306/waimai
# 数据库用户名
username: root
# 数据库连接密码
password: 123456
mybatis:
configuration:
# 开启下划线自动装驼峰命名 如:id_number -->idNumber
map-underscore-to-camel-case: true
# 将sql执行记录输出到控制台
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
完成上面步骤后,在实体类模块新建一个实体类 Employee
package com.lzzy.entity;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.time.LocalDateTime;
@Data //生成get和set方法 ,重写equals和hashCode方法
@Builder //构建器
@NoArgsConstructor //生成空参构造方法
@AllArgsConstructor //生成全参构造方法
public class Employee implements Serializable {
private static final long serialVersionUID = 1L;
private Long id;
private String username;
private String name;
private String password;
private String phone;
private String sex;
private String idNumber;
private Integer status;
//@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createTime;
//@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime updateTime;
private Long createUser;
private Long updateUser;
}
在业务模块下新建controller控制类,连包带类一起创建
package com.lzzy.controller;
import com.lzzy.entity.Employee;
import com.lzzy.service.EmployeeService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/employee")
public class EmployeeController {
@Autowired
private EmployeeService employeeService;
@GetMapping("/{id}")
public Employee getById(@PathVariable Long id) {
Employee employee = employeeService.getById(id);
return employee;
}
}
连包带类一起创建service业务接口,
package com.lzzy.service;
import com.lzzy.entity.Employee;
public interface EmployeeService {
Employee getById(Long id);
}
新建业务接口实现类
package com.lzzy.service.impl;
import com.lzzy.entity.Employee;
import com.lzzy.mapper.EmployeeMapper;
import com.lzzy.service.EmployeeService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class EmployeeServiceImpl implements EmployeeService {
@Autowired
private EmployeeMapper employeeMapper;
@Override
public Employee getById(Long id) {
return employeeMapper.getById(id);
}
}
dao层mapper接口
package com.lzzy.mapper;
import com.lzzy.entity.Employee;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
@Mapper
public interface EmployeeMapper {
@Select("select * from employee where id=#{id}")
Employee getById(Long id);
}
完成上面步骤后找到业务模块下包含main方法的启动类并启动,看到下面图片效果就代表启动成功了
在浏览器访问测试:请求地址为本地环回地址加默认端口加控制映射地址: 127.0.0.1:8080/employee/1
127.0.0.1->本地环回地址
8080 ->SpringBoot默认监听端口
employee ->控制类上@RequestMapping注解的值
1 ->路径参数,控制类EmployeeController类getById方法@GetMapping注解的值/{id},{}是占位符,id是该占位符名,@PathVariable注解会将占位符的值,也就是1赋值到getById方法的id
浏览器输入请求地址并访问,看到有响应就代表前边代码写得没有问题