前端视角下的Spring-Boot语法学习:打印 hello-world

news2024/11/13 7:55:45

今日话题

基于 Spring Boot 打印输出 hello world

作者:云层上的光

时间:2024年6月20日 14时25分14秒

主线任务

一、打印 hello world

1、点击 “新建项目”用来演示 打印输出 “hello world”

2、填写项目配置:(详细版见:https://www.yuque.com/chuxin-cs/spring-boot-demo/dx1zlnxducmrtgih#ltUnP)

3、选择 3.2.7 项目版本作为演示,依赖选择 Spring Web,最后点击创建:

4、使用 System 类打印

System.out.println("Hello World!");

5、运行项目,成功打印 hello world!

支线任务

一、package 是干什么的?

在Java中,package主要用于:

  1. 组织代码:帮助分类和管理类。
  2. 命名空间:避免类名冲突。
  3. 访问控制:限制类及成员的可见性。
  4. 导入类:简化跨包类的引用。
  5. 目录结构:指导源文件的存放位置

白话:前端模块化,(所以作为前端去后端很多概念是一样的 只是在语法上不同,用概念套语法)

对比前端,以 Vue 项目举例,功能如下:

1、新建 utils/indexjs 文件

// 定义了add 函数 并且使用了esmodules 模块化导出
export function add(a,b){
    alert(a+b)
}

2、根目录 main.js 使用 utils 文件中 index.js

// 导入
import {add} from "./utils/index.js"

// 调用函数使用
console.log(add(1,2));

3、上面的功能用后端 package 来实现一遍,首先新建 utils 工具包:

4、再创建 common 文件

5、编写 add 方法:

代码如下:

使用 package 指明了当前在那个包下,也可以理解为在那个文件夹下

// 这里使用 package 指明了当前在那个包下,也可以理解为在那个文件夹下
package com.chuxin.demohelloworld.utils;

public class common {
    public int add(int num1, int num2) {
        return num1 + num2;
    }
}

6、主入口调用

代码如下:

package com.chuxin.demohelloworld;

import com.chuxin.demohelloworld.utils.common;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class DemoHelloWorldApplication {
    public static void main(String[] args) {
        // 打印 hello world
        System.out.println("Hello World!");

        // package 代码演示
        common Common = new common();
        System.out.println(Common.add(1,2));

        // spring boot 启动
        SpringApplication.run(DemoHelloWorldApplication.class, args);
    }
}

7、右键运行

8、成功运行

总结:前端编写的 utils 工具函数想要让外部访问,以 EsModules 的方式通过:

export default 或者 export 进行导出,外部使用 import 进行导入

Java 则是通过 package 进行导出,那么 导入也是 import 吗?

二、import 导入?

1、在 package 中我们演示了 package 的作用,用于定义包,那么包是怎么导入的呢?

通过 import :

2、不过我们发现 这里一截有点长,都有啥作用呢?

com.chuxin.demohelloworld.utils.common

拆分为3种演示:com.chuxin.demohelloworld.utils.common

其中(utils 和 common 对应的是创建的utils文件夹和common文件类)

3、com.chuxin.demohelloworld 在项目创建时填写的,创建一个新项目演示一下

4、思考一个问题,如果把“组”和“工件”还有“ 软件包名称”都修改不一样,最终验证是以“软件包名称”为准么?(删除刚刚创建的项目 重新来一遍)

5、最终验证是以“软件包名称”为准

6、只是在语法上 import 和前端不一样,不用赋值

// 前端
import {add} from "./utils/index.js"

7、而 Java 中

import com.chuxin1.demohelloworld1.utils.common;

8、那么 包内能存在两个 common 吗?

发现不能进行相同文件的创建,会提示无法创建:

三、System 作用

1、System 好比 utils 的工具包一样,它是 Java 的内置包提供基础API

2、类比前端的 window

3、前端输出打印

console.log("chuxin")

4、Java 输出打印

System.out.println("Hello World!");

四、文件大小写规范

1、utils/common 作为 package 演示时 故意创建的是小写的,但是 Java 一般规范是驼峰命令,且首字母大写

2、修改类名为大写

3、重命名文件名

4、调整主入口文件代码

代码如下:

package com.chuxin.demohelloworld;

import com.chuxin.demohelloworld.utils.Common;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class DemoHelloWorldApplication {

    public static void main(String[] args) {
        // 打印 hello world
        System.out.println("Hello World!");

        // package 代码演示
        Common common = new Common();
        System.out.println(common.add(1,2));

        // spring boot 启动
        SpringApplication.run(DemoHelloWorldApplication.class, args);
    }
}

5、运行代码,看是否报错:

6、输出结果

代码仓库

https://github.com/chuxin-cs/spring-boot-demo/tree/master/demo-hello-world

往期内容

点击链接查看:https://www.yuque.com/chuxin-cs/it/ge9wybczy0wsq1l1

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1908730.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MYSQL 四、mysql进阶 7(性能分析工具的使用)

一、数据库服务器的优化步骤 数据库调优流程图: 整个流程划分成了 观察(Show status) 和 行动(Action) 两个部分。字母 S 的部分代表观察(会使 用相应的分析工具),字母 A 代表的部分是行…

利用 Python 解析pcap文件

1、问题背景 当面对处理网络数据包分析时,pcap文件作为一个常见的文件格式存储了网络数据包的详细记录,它常常被用来进行网络故障排查或安全分析。为了充分利用这些数据,我们需要对其进行解析并提取出有价值的信息,例如数据包类型…

Git 查看、新建、删除、切换分支

Git 是一个版本控制系统,软件开发者用它来跟踪应用程序的变化并进行项目协作。 分支的诞生便于开发人员在彼此独立的环境中进行开发工作。主分支(通常是 main 或 master)可以保持稳定,而新的功能或修复可以在单独的分支中进行开发…

Angular进阶之九: JS code coverage是如何运作的

环境准备 需要用到的包 node 18.16.0# Javascript 代码编辑"babel/core": "^7.24.7","babel/preset-env": "^7.24.7","babel-loader": "^9.1.3",# 打包时使用的 module, 给代码中注入新的方法# http…

基于51单片机的四路抢答器Protues仿真设计

一、设计背景 近年来随着科技的飞速发展,单片机的应用正在不断的走向深入。本文阐述了基于51单片机的八路抢答器设计。本设计中,51单片机充当了核心控制器的角色,通过IO口与各个功能模块相连接。按键模块负责检测参与者的抢答动作&#xff0c…

js替换对象内部的对象名称或属性名称-(第二篇)递归

1.代码示例: function replaceKey(obj, oldKey, newKey) {// 如果不是对象或者oldKey不存在,直接返回原对象if (typeof obj ! object || !obj || !(oldKey in obj)) return obj;// 如果是数组,遍历数组每个元素if (Array.isArray(obj)) {obj…

python爬虫加入进度条

安装tqdm和requests库 pip install tqdm -i https://pypi.tuna.tsinghua.edu.cn/simplepip install requests -i https://pypi.tuna.tsinghua.edu.cn/simple带进度条下载 import time # 引入time模块,用于处理时间相关的功能 from tqdm import * # 从tqdm包中…

ESIX配置备份和恢复

ESIX虽然重装很快,但是原本配置就丢失了,在硬件不变的情况下,可以使用配置备份和配置恢复的方法。 1、备份配置 1.1、执行以下两条命令 vim-cmd hostsvc/firmware/sync_configvim-cmd hostsvc/firmware/backup_config如下图,只需…

LED灯的呼吸功能

"呼吸功能"通常是指 LED 灯的一种工作模式,它模拟人类的呼吸节奏,即 LED 灯的亮度会周期性地逐渐增强然后逐渐减弱,给人一种 LED 在"呼吸"的感觉。这种效果通常用于指示设备的状态或者简单地作为装饰效果。(就…

强化学习编程实战-2马尔可夫决策过程

2.1 从多臂赌博机到马尔可夫决策过程 如图2-1,图中A为多臂赌博机,B为一堆鸳鸯,其中左上角为雄性鸳鸯,右上角为雌性鸳鸯,B展示的任务是雄性鸳鸯绕过障碍物找到词性鸳鸯。跟多臂赌博机不同的是,雄性鸳鸯经过一…

vue移动端框架渲染标签出错是因为没有补全标签

文档地址 https://youzan.github.io/vant/v2/#/zh-CN/quickstart

LDR6020-VR串流线:开启虚拟现实新纪元的钥匙

随着科技的飞速发展,虚拟现实(VR)技术已经从科幻概念逐渐走进我们的生活,成为娱乐、教育、医疗等多个领域的热门话题。而VR串流线,作为这一技术的重要组成部分,正逐步成为连接用户与高质量VR体验的关键桥梁…

Redis的缓存雪崩,击穿,穿透的介绍

1.缓存雪崩 为保证缓存中的数据与数据库的数据一致,会给Redis里的数据设置一个过期时间,当缓存数据过期后,用户访问的数据如果不在缓存里,业务系统需要重新生成新的缓存,因为就会访问数据库,并将数据更新到Redis里,这样后续请求就可以直接命中缓存. 当大量缓存在同一时间过期或…

明明已经安装了python中的某个库,但是还是报错ModuleNotFoundError: No module named ‘sklearn‘

问题: 明明已经安装了python中的某个库,但是还是报错ModuleNotFoundError: No module named sklearn 解决方法: 卸载重新安装一下即可 pip uninstall scikit-learn pip install scikit-learn 成功解决!!&#xff…

DSSM双塔特征交互

传统的DSSM双塔无法在早期进行user和item侧的特征交互,这在一定程度上降低了模型性能。我们想要对双塔模型进行细粒度的特征交互,同时又不失双塔模型离线建向量索引的解耦性。下面介绍两篇这方面的工作。 美团-Dual Augmented Two-tower 在user和item的特…

Onekey正版steam分流下载工具

今天给大家介绍的是一款下载steam游戏的工具。Onekey工具,是一款游戏下载器,可以下载steam正版分流游戏。下载正版分流的网站很多,但是都是网盘或者迅雷下载,或者游戏盒子下载,速度都很慢。这款软件是用steam下载的&am…

安卓项目中so库选择

接上篇Android中常见SDK类型区别-CSDN博客 一些重要的加密算法或者核心协议一般都在C中编写,然后给java调用。这样可以避免反编译后查看到应用的源码。此时就需要了解一下NDK中的ABI(Application Binary Interface的缩写,也就是应用二进制接…

国产化框架PaddleClas结合Swanlab进行杂草分类

1. 项目介绍 杂草是农业中的主要问题之一,对作物生长和产量造成严重威胁。传统的手动识别和管理方式效率低下且不够精确,因此需要借助先进的计算机视觉技术来提升农业生产的效率和质量。ResNet作为一种深度学习模型,在处理复杂的图像分类任务…

视频压缩软件哪个压缩最小,视频用什么软件压缩最小

在数字媒体时代,视频内容的生产与分享已成为生活常态。但随之而来的问题就是,大视频文件占用过多存储空间,上传和分享也变得不便。本文将为你揭示如何将视频压缩到最小,同时保持画质清晰。让我们一起探索吧! 下载并文件…

第九篇——军形篇:先胜后战,赢了再打

目录 一、背景介绍二、思路&方案三、过程1.思维导图2.文章中经典的句子理解3.学习之后对于投资市场的理解4.通过这篇文章结合我知道的东西我能想到什么? 四、总结五、升华 一、背景介绍 微观层面的,洞察千里之外;提前预防以做到规避风险…