Educoder Spring 初体验

这篇具有很好参考价值的文章主要介绍了Educoder Spring 初体验。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

第1关:创建博客系统中的对象

参考代码

第2关:Spring 框架创建对象

参考代码


第1关:创建博客系统中的对象

任务描述

本关任务:创建“博客系统”中的对象。

编程要求

在开始学习 Spring 框架之前我们先使用我们熟悉的方式(new对象的方式创建java对象)来创建“博客系统”中的所需对象并调用他们的方法,具体要求如下:

  • 三个实体类(用户User、博客Blog、评论Comment)已经创建完成,并且有相应方法,可在右侧文件夹中查看。

  • 在服务类Service中,集成了一些功能,需要你根据提示完成该类中的四个方法,在方法中创建对象并调用对象的相应方法。

  • 最后在客户端(Task类)中调用服务类的方法,首先注册,再登录,然后创建博客和发布评论。

完成任务后我们思考一下,使用 Java 的原生方法创建对象会出现什么问题?如果我们要更换博客类型( MarkDownBlog )又该如何修改代码?

测试说明

平台会对你编写的代码进行测试:

预期输出:

用户注册

用户登录

创建博客

发布评论


参考代码

Service.java

package com.educoder.step1;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import com.educoder.bean.Blog;
import com.educoder.bean.Comment;
import com.educoder.bean.User;

public class Service {

    /********** Begin **********/
    public void login() {
        // TODO 创建 user对象 调用登录方法
        User user = new User();
        user.login();
    }
    public void register() {
        // TODO 创建 user对象,调用注册方法
        User user = new User();
        user.register();
    }
    public void createBlog() {
        // TODO 创建博客对象,调用创建博客方法
        Blog blog = new Blog();
        blog.createBlog();
    }
    public void createComment() {
        // TODO 创建评论对象,调用创建评论方法
        Comment comment = new Comment();
        comment.createComment();
    }
    /********** End **********/
    
}

Task.java

package com.educoder.step1;

import com.educoder.bean.User;
import com.educoder.bean.Blog;
import com.educoder.bean.Comment;

public class Task {
    public static void main(String[] args) {
        /********** Begin **********/
        Service service = new Service();
        service.register();
        service.login();
        service.createBlog();
        service.createComment();
        /********** End **********/
    }
}

Educoder Spring 初体验

第2关:Spring 框架创建对象

任务描述

本关任务:使用 Spring 框架来创建“博客系统”中的对象。

相关知识

我们使用了传统的方式创建对象,本章节我们就来学习如何使用 Spring 创建对象.

使用Spring 的方式创建对象

在上一章节中我们思考了一些问题,那么相信同学们也都想到了直接使用 Java 原生方法创建对象时存在的一些问题:

  1. 每次都需要自己主动创建并销毁对象

  2. 更换博客类型的代价巨大(需要将服务类中的所有原博客对象都替换为MarkDownBlog 博客对象,代码的改动量非常大)

这说明我们编写的程序具有“高耦合性”,面对这类问题我们就可以通过 Spring 来进行改进。

首先,我们在Service类中定义好需要的类属性和方法:

public class Service {

private User user;

private Blog blog;

private Comment comment;

public void login() {}

public void register(){}

public void createBlog() {}

public void createComment(){}

}

现在和上一章节中一样,同样需要在方法里面调用类的方法。那我们使用 Spring 要怎么去实现呢?

我们只需要在Service类上加上一个@Component注解,在Service类属性上面添加@Autowired注解,最后在需要创建的相应对象上也添加@Component注解,就可以了。

下面我们以Blog类为例:

@Component //把对象注册到Spring容器中

public class Service {

   @Autowired

   private Blog blog;

   public void createBlog(){

      blog.createBlog();

   }

}

@Component

public class Blog {

public void createBlog() {System.out.println("创建博客");}

}

 最后我们在客户端调用Service中的方法:

public class Task {

   public static void main(String[] args) {

      ApplicationContext app = new ClassPathXmlApplicationContext("applicationContext.xml");      

      //通过Spring容器获取Service对象

      Service service = (Service) app.getBean("service");

   //调用方法

      service.createBlog();

   }

}

这样就完成了使用 Spring 框架来实现相同的功能。并且在这个过程中,我们没有使用new关键字来创建对象。那么这个工作由谁去实现了呢?

实际上是由Spring 容器来帮我们做了这个事情。(后续我们进一步了解)

然后我们再看看ServicecreateBlog()方法中也没有对象的创建,也就是说这个创建对象的过程和结束已经不需要我们来进行管理了,通通由 Spring 来管理。

回到更换博客类型上,这时,我们只需要修改Service中的对象就可以了:

@Component

public class Service {

   @Autowired

   private MarkDownBlog blog; //MarkDownBlog 类上也添加了@Component注解

   //private Blog blog;

   public void createBlog(){

      blog.createBlog();

   }

}

或者,如果你不想修改对象,也是可以的,但是需要你另外创建一个接口,让 Blog 和 MarkDownBlog 同时实现该接口,这样你使用任意对象都可以。

编程要求

在右侧编辑器补充代码,使用 Spring 框架的方式来完成上一关卡的相同任务。

  • Service类中补充相应注解,并在相应方法中调用对象的方法。

  • Task类中完成对服务类的方法调用,顺序仍为注册、登录、创建博客和发布评论。

测试说明

平台会对你编写的代码进行测试:

预期输出:

用户注册

用户登录

创建博客

发布评论


参考代码

Service.java

package com.educoder.step2;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import com.educoder.bean.Blog;
import com.educoder.bean.Comment;
import com.educoder.bean.User;

/********** Begin **********/
@Component
public class Service {

    @Autowired
	private User user;
	
    @Autowired
	private Blog blog;
	
    @Autowired
	private Comment comment;
	
	public void login() {
        user.login();

	}
	
	public void register() {
        user.register();

	}
	
	public void createBlog() {
        blog.createBlog();

	}
	
	public void createComment() {
        comment.createComment();

	}
}

/********** End **********/

Task.java

package com.educoder.step2;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.educoder.bean.User;

public class Task {
	
    public static void main(String[] args) {
    	ApplicationContext app = new ClassPathXmlApplicationContext("applicationContext.xml");
        //通过Spring容器获取Service对象
    	Service service = (Service) app.getBean("service");
    	/********** Begin **********/
        service.register();
    	service.login();
        service.createBlog();
        service.createComment();
        /********** End **********/
	}

}

Educoder Spring 初体验文章来源地址https://www.toymoban.com/news/detail-430395.html

到了这里,关于Educoder Spring 初体验的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 【腾讯云 TDSQL-C Serverless 产品体验】基于腾讯云轻量服务器以及 TDSQL-C 搭建 LNMP WordPress 博客系统

    在今天快速发展的数字化时代,数据库技术日新月异。本文将带领您追溯数据库的历程,探讨云原生数据库的概念,并重点关注腾讯云的创新力作—— TDSQL-C 数据库 。 我们将揭示传统 MySQL 架构的问题,探究 TDSQL-C 数据库的计算与存储分离架构所带来的优势。 通过实例,您将

    2024年02月11日
    浏览(42)
  • 博客系统(升级(Spring))(四)(完)基本功能(阅读,修改,添加,删除文章)

    博客系统是干什么的? CSDN就是一个典型的博客系统。而我在这里就是通过模拟实现一个博客系统,这是一个较为简单的博客系统,但是主要功能一个不缺,不过就是 UI 有些 low,我学习前端是为了写后端更加顺手。不至于前后端完全分离,但是有个问题设计的 web 页面不是很

    2024年02月09日
    浏览(42)
  • 手把手教你实现一个JavaWeb项目:创建一个自己的网页博客系统(前端+后端)(一)

    一篇博客带你实现一个真正的项目!  先来看看它是什么样式的: 目录: 1、大体步骤🦖:         1、创建Maven项目🦕         2、引入依赖🦕         3、创建必要的目录🦕         4、编写代码🦕         5、打包部署(基于SmartTomcat)🦕         

    2024年02月06日
    浏览(57)
  • 课程设计基于Spring Boot+Semantic ui的个人博客系统的设计与实现

    项目背景: 本项目是基于互联网软件开发技术搭建的一款个人博客系统,因为自己十分喜欢创作,比如写一些开源项目,写一些博客笔记,虽然网络上有许多大型博客系统,但是一直想写一个属于自己专有的博客系统,比如可以上传一些自己的知识笔记,上传一些自己的生活

    2024年02月04日
    浏览(41)
  • (附源码)基于Spring Boot的个人博客系统的设计与实现 毕业设计271611

    目 录 摘要 1 1 绪论 1 1.1研究意义 1 1.2开发背景 1 1.3系统开发技术的特色 1 1.4论文结构与章节安排 1 2 个人博客系统系统分析 3 2.1 可行性分析 3 2.2 系统流程分析 3 2.2.1数据增加流程 3 2.3.2数据修改流程 4 2.3.3数据删除流程 4 2.3 系统功能分析 4 2.3.1 功能性分析 4 2.3.2 非功能性分析

    2024年02月06日
    浏览(49)
  • 实验6-cp –r系统命令的实现--源路径(目录)中的所有文件和子目录,以及子目录中的所有内容,全部拷贝到目标路径(目录)中--操作系统实验

    掌握Linux目录操作方法,包括打开目录、关闭目录、读取目录文件 掌握Linux文件属性获取方法,包括三个获取Linux文件属性的函数、文件属性解析相关的宏 掌握POSIX与ANSI C文件I/O操作方法,包括打开文件、关闭文件、创建文件、读写文件、定位文件 利用POSIX API(文件操作也可

    2024年02月08日
    浏览(54)
  • 更新spring boot jar包中的BOOT-INF/lib目录下的jar包

    更新spring-boot jar包中的BOOT-INF/lib目录下的jar包 场景 需要更新lib目录下某个jar包的配置文件 失败的解决方法 用解压软件依次打开spring-boot jar包(设为a.jar)、BOOT-INF/lib目录下的jar包(设为b.jar),然后修改配置文件后保存回a.jar包中,这样操作在通过java -jar运行a.jar包时会导致

    2024年02月13日
    浏览(37)
  • 个人博客目录(持续更新中)

            博主是一个业余的matlab选手,平时会在博客上发一些matlab有关的学习资料和电气专业的论文复现。写这篇博客目录是为了方便大家检索。         博客中包括了免费博客和付费博客,不同之处如下:         免费博客主要是我自己学习过程中的我自己的整理总

    2024年02月14日
    浏览(39)
  • 我的博客目录

    二叉树遍历(前序、中序、后序、层次、广度优先、深度优先遍历) CRC校验原理 算法系列:日历算法 算法题库在线练习 ---- 洛谷网校 遗传算法的简单应用-巡回旅行商(TSP)问题的求解 遗传算法的简单应用-求解方程 初识遗传算法 位运算-实现加减乘除 图片嵌入隐藏-大容量的

    2024年02月08日
    浏览(75)
  • “layui助力博客管理升级!用增删改查功能打造优质博客体验“

    本文介绍如何使用 layui 实现一个简单的增删改查会议管理系统。 在开始之前,确保已经引入了以下必要的文件: 首先,我们需要准备一个用于 CRUD(增删改查)操作的后端接口 R工具类的使用 使用 layui 的样式和组件来构建博客管理页面。 创建一个 HTML 文件,并按如下结构编

    2024年02月16日
    浏览(41)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包