非常简易的SpringBoot后台项目
非常简易的SpringBoot后台项目
1. 创建项目
使用IDEA创建 Spring项目,或在 https://start.spring.io/ 、 https://start.aliyun.com/bootstrap.html上生成后端初始化项目
springboot 2.5.6 maven 选择插件:
spring boot devtools,
lombok,
spring configuration processor,
spring web,
spring data jpa ,
rest repositories,
mysql deriver
及其它需要的插件即可,初始化项目代码
2. 在MySQL中新建表
create DATABASE library;
CREATE TABLE `user` (
`id` int(100) NOT NULL AUTO_INCREMENT,
`username` datetime DEFAULT NULL COMMENT '用户名',
`password` datetime DEFAULT NULL COMMENT '密码',
PRIMARY KEY (`id`)
) COMMENT='用户表'
3. 创建package entity
import lombok.Data; import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table; @Data
@Entity
@Table(name = "user")
public class User { @Id
private int id;
private String username;
private String password;
private String borrowNo;
}
4. 创建package repository
import com.library.backend.entity.Manager;
import com.library.backend.entity.User;
import org.springframework.data.jpa.repository.JpaRepository; import javax.transaction.Transactional;
import java.util.List; public interface UserRepository extends JpaRepository<User, String> { User findByUsername(String name); @Transactional
void deleteById(int id); List<User> findAllByUsernameContaining(String name);
}
5. 创建package controller
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.DigestUtils;
import org.springframework.web.bind.annotation.*; import java.util.List; import static com.library.backend.utils.Constant.*; @RestController
@RequestMapping("/user")
public class UserController { @Autowired
private UserRepository userRepository; @GetMapping("/list")
public Result managerLogin(User user) {
if (user.getUsername() != null && !"".equals(user.getUsername())) {
List<User> users = userRepository.findAllByUsernameContaining(user.getUsername());
return new Result(SUCCESS_CODE, "", users);
} else {
List<User> users = userRepository.findAll();
return new Result(SUCCESS_CODE, "", users);
}
} @PostMapping("/add")
public Result add(@RequestBody User user) {
try {
User user1 = userRepository.findByUsername(user.getUsername());
if (user1 != null) {
return new Result(NAME_REPEAT, "名称重复");
}
user.setPassword(DigestUtils.md5DigestAsHex(user.getPassword().getBytes()));
userRepository.save(user);
return new Result(SUCCESS_CODE, "新增成功", user);
} catch (Exception e) {
return new Result(FAILE_CODE, e.toString(), user);
}
}
@PostMapping("/update")
public Result update(@RequestBody User user) {
try {
userRepository.save(user);
return new Result(SUCCESS_CODE, "修改成功", user);
} catch (Exception e) {
return new Result(FAILE_CODE, e.toString(), user);
}
} @DeleteMapping("/delete")
public Result delete(@RequestBody User user) {
try {
userRepository.deleteById(user.getId());
return new Result(SUCCESS_CODE, "删除成功", user);
} catch (Exception e) {
return new Result(FAILE_CODE, e.toString(), user);
}
}
}
6. 创建package config(跨域看需要配,测试时全开,正式时可设定By域名或IP开放)
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
import org.springframework.web.filter.CorsFilter; @Configuration
public class CorsConfig { @Bean
public CorsFilter corsFilter() {
UrlBasedCorsConfigurationSource urlBasedCorsConfigurationSource = new UrlBasedCorsConfigurationSource();
CorsConfiguration configuration = new CorsConfiguration();
configuration.addAllowedHeader("*");
configuration.addAllowedMethod("*");
configuration.addAllowedOrigin("*");
urlBasedCorsConfigurationSource.registerCorsConfiguration("/**", configuration);
return new CorsFilter(urlBasedCorsConfigurationSource);
}
}
7. Application类(一般会自动生成,看创建项目的方式)
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication
public class XXXApplication { public static void main(String[] args) {
SpringApplication.run(BackendApplication.class, args);
} }
8. application.properties配置
server.port=8080
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.password=123456
spring.datasource.username=root
spring.datasource.url=jdbc:mysql://localhost:3306/library?useSSL=false&useUnicode=true&serverTimezone=Asia/Shanghai
除上述之外的完整的代码地址:
https://gitee.com/zehongzhyuan/test-l-i-b-r-a-r-y/tree/dev
非常简易的SpringBoot后台项目的更多相关文章
- ElementUI项目请求SpringBoot后台项目时提示:Access to XMLHttpRequest at **from origin ** has been blocked by CORS policy
场景 搭建ElementUI前端项目后提示: Access to XMLHttpRequest at **from origin ** has been blocked by CORS policy ...
- Linux下 SpringBoot jar项目后台运行、查看、停用
运行java jar: nohup java -jar **-0.0.1-SNAPSHOT.jar & 查看进程: 采用top或者ps aux命令.一般 如果后台是springboot,jar ...
- 创建简易的SpringBoot项目
创建简易的SpringBoot项目 这两天在学习springboot,菜鸟刚刚知道这个东西,看着springboot项目下那一大堆目录都不知道从何下手,还是静下心来从最简单的创建一个项目入手,这路和大 ...
- 简易版CMS后台管理系统开发流程
目录 简易版CMS后台管理系统开发流程 MVC5+EF6 简易版CMS(非接口) 第一章:新建项目 MVC5+EF6 简易版CMS(非接口) 第二章:建数据模型 MVC5+EF6 简易版CMS(非接口 ...
- SpringBoot 试手(简易的SpringBoot搭建步骤)
SpringBoot 也算AI吧,它根据您架构中引用的依赖,自动化地按默认方案帮您完成了Spring那些复杂繁琐的配置工作.为了让您不会看低此 AI 水平,还特地喊出了“约定大于配置”的口号.从这个角 ...
- Github 上 10 个值得学习的 Springboot 开源项目
Spring Boot 几乎继承了所有 Spring 框架的优点,同时还可以让项目的配置更简化.编码更简化.部署更方便.近两年受到很多开发者的追捧,也是火热的不行! 下面给大家整理了 10 个 Git ...
- springboot web项目创建及自动配置分析(thymeleaf+flyway)
@ 目录 源码分析 webjars thymeleaf thymeleaf语法 springmvc 启动配置原理 集成flyway插件 springboot 创建web项目只需要引入对应的web-st ...
- Vue编写的页面部署到springboot网站项目中出现页面加载不全问题
问题描述: 在用Vue脚手架 编写出一个页面之后, 部署到后台项目中, 因为做的是一个页面 按理来说 怎么都能够在服务器上运行 , 我也在自己的node环境测试 , 在同学的springboot上运行 ...
- php大力力 [039节] 修改一下后台项目,同时启用印象笔记,要做的事情todo列表,记录在印象笔记,速度快一些
php大力力 [039节] 修改一下后台项目,同时启用印象笔记,要做的事情todo列表,记录在印象笔记,速度快一些
- 手把手教你从零开始搭建SpringBoot后端项目框架
原料 新鲜的IntelliJ IDEA.一双手.以及电脑一台. 搭建框架 新建项目 打开IDE,点击File -> New Project.在左侧的列表中的选择Maven项目,点击Next. 填 ...
随机推荐
- 贝塞尔曲线原理、推导及Matlab实现
贝塞尔曲线原理.推导及Matlab实现 贝塞尔曲线原理.推导及Matlab实现 一.简介 贝塞尔曲线提出 在数学的数值分析领域中,贝塞尔曲线(English:Bézier curve)是计算机图形学中 ...
- Centos7安装nacos详细步骤(配置开机自启)
Nacos 解压文件 创建数据库nacos,导入nacos的sql文件 创建数据库nacos,导入nacos的sql文件 修改启动文件(根据系统选择) [root@localhost bin]# cd ...
- CF414B
这道题dp状态表示需要一点思维,而且会卡到时间复杂度 之前题主用的是试除法,时间复杂度为n^2.5,然后被卡了,但是换一种写法就是对的 #include <iostream> #inclu ...
- FFmpeg开发笔记(三十七)分析SRS对HLS协议里TS包的插帧操作
<FFmpeg开发实战:从零基础到短视频上线>一书的"2.1.2 音视频文件的封装格式"介绍了视频流的PS格式和TS格式.由于TS包的长度固定,从TS流的任一片段开 ...
- 解决方案 | 外接键盘win+d失效,绿联键盘win+d,win+e失效
按下fn + 右边的win键 即可解决.如下图所示.
- Scratch全套Q版三国人物角色素材包免费下载
全新Q版三国人物角色素材包,内含142张细腻可爱的Q版风格图片,涵盖三国名将.士兵.场景等丰富元素,为scratch爱好者提供多样选择,适合各类三国主题创作. 免费下载:www.xiaohujing. ...
- 是否可以在线创建ios证书
生成苹果证书,假如使用官方的教程去生成,非常麻烦,因为它需要使用苹果mac电脑去生成,而且生成的流程还要对苹果电脑的证书导入和导出比较熟. 因此,生成苹果ios证书,不建议使用官方的方法去生成,少走弯 ...
- k8s(3) 集群运行
Master下面执行 mkdir -p $HOME/.kube 执行的脚本,需要读取的配置文件 cp -i /etc/kubernetes/admin.conf $HOME/.kube/config ...
- 一个基于 SourceGenerator 生成 从 dbReader转换为 class 数据的性能测试实验
好奇 SourceGenerator 出现开始,好几年了,虽然一直好奇用SourceGenerator 生成代码 与 emit 等动态生成的代码会有多少差距, 但是一直特别懒,不想搞 其实 dappe ...
- SQL连续查询问题拓展—记上海拼多多非技术岗面试真题
真巧,昨天刚写了关于数据库连续问题的解决方案,没想到今天下午两点就有朋友在上海拼多多面试非技术岗位中就遇到了相似的问题.下面是原题: 一个最大连续支付失败的次数 有一张支付流水表pay;字段如下 id ...