【Spring Boot】四种核心类的依赖关系:实体类、数据处理类、业务处理类、控制器类

这篇具有很好参考价值的文章主要介绍了【Spring Boot】四种核心类的依赖关系:实体类、数据处理类、业务处理类、控制器类。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

//1.配置项目环境,创建Spring Boot项目。
//2.数据库设置,配置数据库。
//3.创建实体类,映射到数据库。
//4.创建数据处理层类,Repository
//5.创建业务处理类,Service类
//6.创建控制器类,Controller类

Article.java

java
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;

@Entity
    public class Article{
    @Id
        @GeneratedValue(strategy = GenerationType.AOTU)
        private Long id;
        private String title;
        private String content;
        private String author;
    
      //省略构造函数、getter和setter方法
      //省略toString方法
      //一个实体类完成了!


ArticleRepository.java(数据访问层类)
    '''java
    import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import java.util.List;
public interface ArticleRepository extends JpaRepository<Article,Long>{
//可以在此自定义查询方法
//根据作者名查询文章
List<Article> findByAuthor(String author);
//根据标题和作者查询文章
List<Article> findByTitleAndAuthor(String title,String author);
//使用JPQL查询语句查询文章
@Query("Select a FROM Article a WHERE a.title LIKE %:keyword% OR a.content LIKE %:keyword%")
List<Article> fintByKeyword(String keyword);
}
    

ArticleService.Java(业务逻辑层):
    '''java
    import org.springframework.beans.factory. annotation.Autowired;
    import org.springframework.stereotype.Service;
    import java.util.List;
    import java.util.Optional;

@Service
    public class ArticleService{
    private final ArticleRepository articleRepository;
    
    @Autowired
    public ArticleService(ArticleRepository articleRepository){
    this.articleRepository = articleRepository;    
    }
    
    public List<Article>getAllArticles(){
    return articleRepository.findAll();
    }
    
    public Optional<Article>getArticleById(Long id){
        return articleRepository.findByID(id);
    }
    
    public Article createArticle(Article article){
    return articleRepository.save(article);
    }
    
    /**
    public void updateArticle(Long id, Article article) {
        Optional<Article> existingArticle = articleRepository.findById(id);
        if (existingArticle.isPresent()) {
            Article updatedArticle = existingArticle.get();
            updatedArticle.setTitle(article.getTitle());
            updatedArticle.setContent(article.getContent());
            updatedArticle.setAuthor(article.getAuthor());
            articleRepository.save(updatedArticle);
        }
    }
    
    **/
    
    public void deleteArticle(Long id){
        articleRepository.deleteById(id);
    }
    
}

ArticleController.java(控制器类):
    '''java
    import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;

import java.util.List;
import java.util.Optional;

@RestContrller
@RequestMapping("/articles")
public class ArticleController{
    private final ArticleService articleService;
    
    @Autowired
    public ArticleControler(
    ArticleService articleService
    ){
    tihs.articleService = articleService;
    }
    
    @GetMapping
        public ResponseEntity<List<Article>>getAllArticles(){
    List<Article>articles = articleService.getAllArticles;
    return new ResponseEntity<>(articles,HttpStatus.OK)
    }
 //以下为粘贴
        @GetMapping("/{id}")
    public ResponseEntity<Article> getArticleById(@PathVariable Long id) {
        Optional<Article> article = articleService.getArticleById(id);
        return article.map(value -> new ResponseEntity<>(value, HttpStatus.OK))
                      .orElseGet(() -> new ResponseEntity<>(HttpStatus.NOT_FOUND));
    }

    @PostMapping
    public ResponseEntity<Article> createArticle(@RequestBody Article article) {
        Article createdArticle = articleService.createArticle(article);
        return new ResponseEntity<>(createdArticle, HttpStatus.CREATED);
    }

    @PutMapping("/{id}")
    public ResponseEntity<Void> updateArticle(@PathVariable Long id, @RequestBody Article article) {
        articleService.updateArticle(id, article);
        return new ResponseEntity<>(HttpStatus.NO_CONTENT);
    }

    @DeleteMapping("/{id}")
    public ResponseEntity<Void> deleteArticle(@PathVariable Long id) {
        articleService.deleteArticle(id);
        return new ResponseEntity<>(HttpStatus.NO_CONTENT);
    }
}

}


 
 文章来源地址https://www.toymoban.com/news/detail-678071.html

到了这里,关于【Spring Boot】四种核心类的依赖关系:实体类、数据处理类、业务处理类、控制器类的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【SpringBoot】Spring Boot中类的实例化

    在Spring Boot中,类的实例化通常是由Spring框架处理的。Spring使用控制反转(IoC)和依赖注入(DI)的概念来管理类的实例化和依赖关系。 要在Spring Boot中实例化一个类,可以遵循以下几个步骤: 1. 在类上使用`@Component`、`@Service`、`@Repository`或`@Controller`等注解来标识这个类是一

    2024年02月10日
    浏览(24)
  • SSMP整合案例(2) Spring Boot整合Lombok简化实体类开发

    好啊 接着我们上文SSMP整合案例(1) 构建 Spring Boot Vue MySql项目环境 我们继续 接下来 我们要在java项目中 建立出数据库表对应的实体类 我们还是先看看自己上文中 创建的这个 book表 其中四个字段 主键id 数字枚举类型的type 字符串类型name 字符串类型 description 我们打开idea 找到上

    2024年02月09日
    浏览(37)
  • Spring Boot 统一数据返回格式 分析 和 处理

    目录 实现统一数据格式  测试   原因分析  解决方案 🎥 个人主页:Dikz12 📕格言:吾愚多不敏,而愿加学 欢迎大家👍点赞✍评论⭐收藏 统⼀的数据返回格式使⽤ @ControllerAdvice 和 ResponseBodyAdvice 的⽅式实现; @ControllerAdvice : 表⽰控制器通知类. 比如:添加类 ResponseAdvic

    2024年04月08日
    浏览(40)
  • 【Spring Boot 使用Filter统一处理请求数据转换】

    Spring Boot Filter 使用场景 身份验证和授权 场景描述: 在用户访问应用程序的敏感资源之前,需要验证用户的身份并授权用户访问特定的内容。 实现方式: 使用Filter拦截请求,检查HTTP请求中的身份验证令牌(如JWT),并确定用户是否具有执行操作的权限。 日志记录和审计 场景

    2024年02月21日
    浏览(34)
  • Flink与Spring Boot集成实践:搭建实时数据处理平台

    在当今数据风暴的时代,实时数据处理已经成为众多企业关注的热点。Apache Flink作为一个高性能、可扩展的实时计算框架,在实时数据处理领域占据着举足轻重的地位。Spring Boot则以其快速开发、简化配置而广受欢迎,将两者结合,我们可以快速地搭建起一个实时数据处理平

    2024年04月27日
    浏览(33)
  • Spring Boot 自动化单元测试类的编写过程

    前言 Web环境模拟测试 企业开发不仅要保障业务层与数据层的功能安全有效,也要保障表现层的功能正常。但是我们一般对表现层的测试都是通过postman手工测试的,并没有在打包过程中代码体现表现层功能被测试通过。那么能否在测试用例中对表现层进行功能测试呢?答案是

    2024年04月16日
    浏览(33)
  • Spring Boot 优雅实现统一数据返回格式+统一异常处理+统一日志处理

            在我们的项目开发中,我们都会对数据返回格式进行统一的处理,这样可以方便前端人员取数据,当然除了正常流程的数据返回格式需要统一以外,我们也需要对异常的情况进行统一的处理,以及项目必备的日志。         在项目开发中返回的是json格式的数据

    2024年01月19日
    浏览(32)
  • Spring Boot使用jasypt处理数据库账号密码等数据加密问题

    在我们业务场景中,项目中的application.yml 配置文件比如数据库账号密码,的各种链接的username,password的值都是明文的,存在一定的安全隐患,可以使用jasypt 加密框架的方式进行明文加密,进而使得我们项目更加安全 注意这里排除了mybatis-plus的包可能是项目中有冲突依赖,

    2024年02月06日
    浏览(42)
  • 在Spring Boot中使用Spark Streaming进行实时数据处理和流式计算

    引言: 在当今大数据时代,实时数据处理和流式计算变得越来越重要。Apache Spark作为一个强大的大数据处理框架,提供了Spark Streaming模块,使得实时数据处理变得更加简单和高效。本文将深入浅出地介绍如何在Spring Boot中使用Spark Streaming进行实时数据处理和流式计算,并提供

    2024年03月27日
    浏览(35)
  • Spring Boot中的Actuator是什么?Spring Boot中的Starter依赖是什么?

    在Spring Boot中,Actuator是一种用于监控和管理应用程序的工具。它提供了一些额外的端点和功能,使开发人员能够更好地了解和控制他们的应用程序。 Actuator提供了以下功能: 指标收集:Actuator可以收集并显示有关应用程序的指标,例如内存使用情况、线程数、请求处理时间等

    2024年02月09日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包