当前位置: 首页 > news >正文

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

今日话题

基于 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 worldSystem.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 worldSystem.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

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 楼梯导航案例
  • 基于vue的引入登录界面
  • Vue-插值表达式
  • 跟《经济学人》学英文:2024年6月29日这期 A new lab and a new paper reignite an old AI debate
  • 光敏电阻,光敏三极管,光敏二极管的作用与区别
  • 第一章节:HTML 基础
  • 生物素结合金纳米粒子(Bt@Au-NPs ) biotin-conjugated Au-NPs
  • GNU/Linux - 如何编译kernel
  • 为什么要进行垃圾回收器的调优
  • ggplot2绘图点的形状不够用怎么办?
  • django基于个人BMI的健康饮食食谱推荐系统-计算机毕业设计源码26624
  • [Debugger]调试Arm设备
  • nginx配置代理
  • 基于FPGA的千兆以太网设计(1)----大白话解释什么是以太网
  • 每日新闻 7月9日 星期二
  • -------------------- 第二讲-------- 第一节------在此给出链表的基本操作
  • golang 发送GET和POST示例
  • HTTP 简介
  • JAVA SE 6 GC调优笔记
  • java 多线程基础, 我觉得还是有必要看看的
  • leetcode386. Lexicographical Numbers
  • node入门
  • npx命令介绍
  • 浮动相关
  • 给github项目添加CI badge
  • 构建二叉树进行数值数组的去重及优化
  • 前端面试之CSS3新特性
  • 深度学习之轻量级神经网络在TWS蓝牙音频处理器上的部署
  • # MySQL server 层和存储引擎层是怎么交互数据的?
  • #Datawhale X 李宏毅苹果书 AI夏令营#3.13.2局部极小值与鞍点批量和动量
  • #我与Java虚拟机的故事#连载04:一本让自己没面子的书
  • (1)SpringCloud 整合Python
  • (C++二叉树05) 合并二叉树 二叉搜索树中的搜索 验证二叉搜索树
  • (ISPRS,2023)深度语义-视觉对齐用于zero-shot遥感图像场景分类
  • (Matalb回归预测)PSO-BP粒子群算法优化BP神经网络的多维回归预测
  • (附源码)spring boot建达集团公司平台 毕业设计 141538
  • (三)Honghu Cloud云架构一定时调度平台
  • (学习日记)2024.01.09
  • (一)RocketMQ初步认识
  • (原創) 如何安裝Linux版本的Quartus II? (SOC) (Quartus II) (Linux) (RedHat) (VirtualBox)
  • (转)关于多人操作数据的处理策略
  • (转载)PyTorch代码规范最佳实践和样式指南
  • (轉貼) 資訊相關科系畢業的學生,未來會是什麼樣子?(Misc)
  • .net core 3.0 linux,.NET Core 3.0 的新增功能
  • .NET 设计模式—简单工厂(Simple Factory Pattern)
  • .net之微信企业号开发(一) 所使用的环境与工具以及准备工作
  • @Autowired 与@Resource的区别
  • @Data注解的作用
  • @PreAuthorize与@Secured注解的区别是什么?
  • [20181219]script使用小技巧.txt
  • [AIGC] SpringBoot的自动配置解析
  • [Bug]使用gradio创建应用提示AttributeError: module ‘gradio‘ has no attribute ‘inputs‘
  • [bzoj1912]异象石(set)
  • [C#][DevPress]事件委托的使用
  • [EFI]Atermiter X99 Turbo D4 E5-2630v3电脑 Hackintosh 黑苹果efi引导文件