document.write("");

非常简易的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中新建表

1
2
3
4
5
6
7
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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
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开放)

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
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类(一般会自动生成,看创建项目的方式)

1
2
3
4
5
6
7
8
9
10
11
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配置

1
2
3
4
5
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

posted @   人间春风意  阅读(489)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
点击右上角即可分享
微信分享提示

距今时间:
1018天1.00 小时 38.75 分钟

当前新增阅读数:139507