非常简易的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
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析