3大主流语言web框架写hello world

发布于:2025-09-04 ⋅ 阅读:(26) ⋅ 点赞:(0)

摘要

在现代后端开发中,选择合适的Web框架对项目效率、性能和可维护性至关重要。本文将带你了解三大主流编程语言(Java、Go、Python)中最具代表性的Web框架:Spring Boot(Java)Gin(Go)Flask(Python)。从设计理念、性能特点、开发效率、适用场景等方面进行对比,并结合编写的daemon,展示它们的使用方式。

在众多Web框架中,以下框架分别代表了企业级稳健高性能简洁快速原型开发 三种风格,适合不同场景下的后端服务开发

  • Spring Boot:Java生态中事实上的企业级标准
  • Gin:Go语言中高性能、轻量级的HTTP框架
  • Flask:Python中最灵活、易上手的微框架
特性 Spring Boot (Java) Gin (Go) Flask (Python)
语言 Java Go Python
类型 全功能框架 轻量级框架 微框架
性能 中等(JVM启动较慢) 高(原生编译,低延迟) 一般(解释执行)
学习曲线 较陡峭 平缓 非常平缓
生态支持 极其丰富(Spring全家桶) 中等(Go生态较新) 丰富(PyPI包众多)
热重载 支持(需插件) 支持(配合air等工具) 原生支持
并发模型 线程池(Tomcat/Netty) Goroutine(高并发) 多线程/异步(需扩展)
部署方式 JAR包(JVM环境) 单二进制文件 脚本 + WSGI(如Gunicorn)
适合场景 企业级系统、微服务 高并发API、云原生服务 快速原型、数据服务、脚本化

java SpringBoot框架

1 Spring Boot介绍

Spring Boot 是基于 Spring 框架的快速开发工具,通过“约定优于配置”的理念,大大简化了Spring应用的搭建和部署。

核心优势:

  • 自动配置(Auto-Configuration)
  • 内嵌Tomcat/Jetty/Netty
  • 完整的生态:Spring Security、Spring Data、Spring Cloud
  • 强大的依赖注入(DI)和面向切面编程(AOP)

典型使用场景:

  • 企业级后台管理系统
  • 分布式微服务架构(结合Eureka、Nacos等)
  • 需要复杂事务、安全控制的系统

2 开发环境准备

准备以下开发环境:

在这里插入图片描述

C:\Users\wzy>java -version
java version "1.8.0_301"
Java(TM) SE Runtime Environment (build 1.8.0_301-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.301-b09, mixed mode)

C:\Users\wzy>mvn -version
Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)
Maven home: D:\App\PortableSoft\apache-maven-3.6.3\bin\..
Java version: 1.8.0_301, vendor: Oracle Corporation, runtime: C:\App\Java\jdk1.8.0_301\jre
Default locale: zh_CN, platform encoding: GBK
OS name: "windows 10", version: "10.0", arch: "amd64", family: "windows"

3 编写代码

daemon所有文件

spring-boot1/
├── pom.xml
└── src/
    └── main/
        ├── java/
        │   └── spring/
        │       ├── controller/
        │       │   └── HelloController.java
        │       └── HelloApplication.java
        └── resources/
            └── pplication.properties

pom.xml

本次使用的maven管理所需依赖,还有构建

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>org.example</groupId>
    <artifactId>spring-boot1</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.5.5</version>
    </parent>

    <dependencies>
        <!-- Web 依赖 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <!-- 测试 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

HelloController.java

package spring.controller;


import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HelloController {

    @GetMapping("/hello")
    public String hello() {
        return "hello world";
    }
}

HelloApplication.java

package spring;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class HelloApplication {
    public static void main(String[] args) {
        SpringApplication.run(HelloApplication.class, args);
    }
}

pplication.properties

server.port=8080

4 运行测试

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

在这里插入图片描述

可以看到springboot的启动速度还是需要一点时间的,构建后的.jar包只要在有jdk的环境,不管是windows还是Linux都能运行

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

GO gin框架

1 gin介绍

Gin 是一个用Go语言编写的HTTP Web框架,以高性能简洁API著称,底层基于net/http,但通过中间件机制和路由优化大幅提升效率。

核心优势:

  • 极快的路由匹配(Radix Tree)
  • 中间件支持完善(如日志、CORS、JWT)
  • 返回JSON极其方便(c.JSON()
  • 编译为单个二进制文件,部署极其简单,静态编译后几乎可以在任意环境运行

典型使用场景:

  • 高并发API网关
  • 微服务中的边缘服务
  • 云原生、Kubernetes环境下的轻量服务

2 开发环境准备

在这里插入图片描述

C:\Users\wzy>go version
go version go1.22.12 windows/amd64

3 编写代码

go.mod

module learn_gin

go 1.23

require github.com/gin-gonic/gin v1.10.0

main.go

package main

import (
	"github.com/gin-gonic/gin"
	"net/http"
)

func main() {
	// 创建默认路由引擎
	r := gin.Default()

	// 注册路由
	r.GET("/hello", func(c *gin.Context) {
		c.String(http.StatusOK, "hello world")
	})

	// 启动服务,默认监听 8080 端口
	r.Run(":8080")
}

4 运行代码

在这里插入图片描述

除了ide运行,还可以使用 go run main.go

在这里插入图片描述

go build -o learn_gin.exe main.go

在这里插入图片描述

Python Flask框架

1 Flask介绍

Flask 是一个轻量级的Python Web框架,强调“微核心 + 扩展”的设计哲学,适合快速搭建原型或小型服务。

核心优势:

  • 极简设计,学习成本低
  • 灵活性高,可自由选择组件(数据库、表单、认证等)
  • 与Python数据科学生态无缝集成(Pandas、NumPy、ML模型)
  • 支持装饰器路由,代码清晰

典型使用场景:

  • 快速验证业务逻辑
  • 数据可视化后端
  • 机器学习模型API化(如用Flask封装一个预测接口)
  • 运维开发api,接口执行运维操作

2 开发环境准备

安装python3.10,准备虚拟环境,安装Flask库3.1.0

在这里插入图片描述

3 编写代码

main.py

from flask import Flask
app = Flask(__name__)

@app.route('/hello')
def index():
    return 'Hello World!'

print("hello")

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=12345, debug=True)

4 运行代码

在这里插入图片描述


网站公告

今日签到

点亮在社区的每一天
去签到