当前位置:首页>python>Java与Python生态对决:构建工具、框架与运行时深度对比

Java与Python生态对决:构建工具、框架与运行时深度对比

  • 2026-03-25 22:12:43
Java与Python生态对决:构建工具、框架与运行时深度对比

楼主作为一个Java开发在学习python之初总是对比Java和python,总想找下Java中工具或组件在python中有哪些对应的,今天正好总结下。

本文将从构建工具、Web框架、数据访问层、测试工具、性能分析以及AI/ML生态等多个维度,深入对比Java和Python的典型组件,帮助你在跨语言开发或技术选型时做出更明智的决策。


1. 生态定位与哲学差异

在深入工具之前,先理解两种语言的设计哲学如何影响了它们的工具生态:

维度

Java

Python

类型系统

静态强类型,编译时检查

动态强类型,运行时确定

核心哲学

"显式优于隐式",严谨的工程化

"简洁胜于复杂",开发效率优先

性能倾向

多线程、JIT编译,适合CPU密集型

GIL限制,但C扩展优化,适合I/O密集型

部署模型

编译为字节码,依赖JVM

解释执行(或预编译为字节码)

企业级特性

天生支持事务、高并发、集群

需第三方组件增强

这两种哲学导致Java生态倾向于标准化、集成化的工具套件(如Spring全家桶),而Python生态则呈现碎片化、专业化的特点(每个领域有专属库)。


2. 构建工具与依赖管理

2.1 Java:Maven vs Gradle

Java生态的构建工具经历了Ant→Maven→Gradle的演进,目前Maven和Gradle两分天下。

Maven(2004年发布):

  • 核心理念
    :约定优于配置,标准的项目结构
  • 配置文件
    :XML(pom.xml),声明式依赖管理
  • 生命周期
    :clean、compile、test、package、install、deploy
  • 依赖管理
    :中央仓库(Maven Central),传递性依赖自动解析
<!-- Maven pom.xml 示例 -->
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>my-app</artifactId>
<version>1.0.0</version>
<packaging>jar</packaging>

<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>3.1.5</version>
</dependency>
</dependencies>
</project>

Gradle(2012年崛起):

  • 核心理念
    :灵活性 + 性能,基于Groovy/Kotlin DSL
  • 配置文件
    :build.gradle(Groovy)或 build.gradle.kts(Kotlin)
  • 优势
    :增量构建、构建缓存、守护进程加速
// Gradle Kotlin DSL 示例
plugins {
    java
id("org.springframework.boot") version "3.1.5"
}

dependencies {
    implementation("org.springframework.boot:spring-boot-starter-web")
    testImplementation("org.junit.jupiter:junit-jupiter:5.9.2")
}

tasks.test {
    useJUnitPlatform()
}

2.2 Python:pip + requirements.txt vs Poetry/Pipenv

Python的构建工具长期处于“百家争鸣”状态,直到近年来才趋于规范化。

传统方式(pip + requirements.txt)

  • 简单直接
    :pip install package 安装到全局或虚拟环境
  • 依赖锁定
    :pip freeze > requirements.txt 生成依赖列表
  • 痛点
    :缺乏版本锁定与依赖解析的严格性,无依赖解析树
# requirements.txt 示例
django==4.2.7
requests==2.31.0
pandas>=2.0.0

现代方案(Poetry)

  • 依赖解析
    :类似Maven/Gradle的依赖解析器
  • 锁文件
    :poetry.lock 确保环境一致性
  • 项目打包
    :内置构建和发布功能
# pyproject.toml (Poetry)
[tool.poetry]
name = "my-project"
version = "0.1.0"

[tool.poetry.dependencies]

python = "^3.11"
fastapi = "^0.104.0"
uvicorn = {extras = ["standard"], version = "^0.24.0"}

[build-system]

requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"

关键对比

特性

Java (Maven/Gradle)

Python (传统)

Python (现代)

依赖解析

✅ 成熟完善

❌ 基本无

✅ Poetry/Pipenv

版本锁定

✅ (依赖树)

⚠️ (requirements.txt)

✅ (lock文件)

虚拟环境隔离

❌ (JVM自带)

✅ (venv)

✅ (内置)

多模块管理

✅ 原生支持

❌ 需手动

⚠️ 有限支持


3. Web框架:企业级 vs 敏捷开发

3.1 Java:Spring Boot 生态系统

Spring Boot 已经成为Java企业级开发的事实标准,它通过自动配置和starter依赖大幅简化了Spring应用的搭建。

// Spring Boot REST Controller
@RestController
@RequestMapping("/api/users")
public class UserController {

@Autowired
    private UserService userService;

@GetMapping("/{id}")
    public ResponseEntity<UserDto> getUser(@PathVariable Long id) {
returnResponseEntity.ok(userService.findById(id));
    }

    @PostMapping
    @ResponseStatus(HttpStatus.CREATED)
publicUserDtocreateUser(@Valid@RequestBody UserCreateRequest request) {
returnuserService.create(request);
    }
}

Spring生态核心组件

  • Spring MVC
    :Web层框架
  • Spring Data
    :统一的数据访问抽象
  • Spring Security
    :认证授权
  • Spring Cloud
    :微服务全家桶
  • Spring Batch
    :批处理框架

3.2 Python:三驾马车

Python Web框架呈现分层化特点,开发者可以根据项目规模灵活选择。

Django(大而全):

  • 内置ORM、Admin后台、认证系统
  • 适合内容管理系统、电商平台
# Django ViewSet (使用DRF)
from rest_framework import viewsets
from .models import User
from .serializers import UserSerializer

classUserViewSet(viewsets.ModelViewSet):
    queryset = User.objects.all()
    serializer_class = UserSerializer
# 分页、过滤、认证几乎零配置

Flask(轻量灵活):

  • 微内核+扩展
  • 适合微服务、API原型
# Flask 应用
from flask import Flask, jsonify, request

app = Flask(__name__)

@app.route('/api/users/<int:user_id>', methods=['GET'])
defget_user(user_id):
    user = database.get_user(user_id)
return jsonify(user.to_dict())

FastAPI(现代异步):

  • 基于Starlette + Pydantic
  • 自动OpenAPI文档、类型提示驱动
  • 适合高并发API、AI模型服务
# FastAPI 应用
from fastapi import FastAPI, HTTPException
from pydantic import BaseModel

app = FastAPI()

classUserCreate(BaseModel):
    name: str
    email: str

@app.post("/users", response_model=UserResponse)
asyncdefcreate_user(user: UserCreate):
# 异步数据库操作
returnawait user_service.create(user)

3.3 框架对比

维度

Spring Boot

Django

Flask

FastAPI

设计理念

集成化、约定优先

全栈、内置一切

微核、扩展即用

现代、类型驱动

性能

高(线程模型)

高(异步)

学习曲线

中高

平缓

ORM

JPA/Hibernate

Django ORM

SQLAlchemy(可选)

SQLAlchemy/Tortoise

API文档

SpringDoc/SpringFox

Django REST Swagger

Flask-RESTX

自动生成

企业特性

极完善

较完善

需组装

快速发展中


4. 数据科学与AI/ML生态

这是Python的绝对主场,但Java在企业级部署中正在追赶。

4.1 Python:数据科学生态链

典型工作流示例

# 数据预处理 + 模型训练
import pandas as pd
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import train_test_split

# 加载数据
df = pd.read_csv('data.csv')
X = df.drop('target', axis=1)
y = df['target']

# 训练模型
X_train, X_test, y_train, y_test = train_test_split(X, y)
model = RandomForestClassifier()
model.fit(X_train, y_train)

# 评估
accuracy = model.score(X_test, y_test)

4.2 Java:企业级AI工具链

虽然Python主导模型训练,但Java在模型部署和生产环境中优势明显。

Java AI/ML框架

框架

定位

特点

DL4J (Deeplearning4j)

深度学习

支持分布式训练,与Spark集成

Weka

经典机器学习

100+算法,GUI工具,工业级稳定

Tribuo (Oracle)

企业级ML

类型安全API,模型解释性

Java-ML

算法集合

轻量级,易集成

Java调用深度学习模型

// 使用DL4J加载训练好的模型
MultiLayerNetwork model = MultiLayerNetwork.load(new File("model.zip"), true);

// 预测
INDArray input = Nd4j.create(new double[]{1.23.45.6});
INDArray output = model.output(input);
System.out.println("预测结果: " + output);

4.3 跨语言协同:最佳实践

现代企业AI架构通常采用 "Python训练 + Java部署" 的混合模式。

方案一:PMML模型交换

# Python端导出PMML
from sklearn2pmml import sklearn2pmml
from sklearn.ensemble import RandomForestClassifier

model = RandomForestClassifier()
model.fit(X_train, y_train)
sklearn2pmml(model, "model.pmml", with_repr=True)
// Java端加载PMML
PMML pmml = PMMLUtil.unmarshal(new File("model.pmml"));
ModelEvaluator evaluator = ModelEvaluatorFactory.newInstance()
    .newModelEvaluator(pmml);
// 进行预测

方案二:gRPC微服务

//定义AI服务接口
serviceAIService {
rpcPredict (ImageRequest) returns (ClassificationResult);
}

messageImageRequest {
bytesimage_data = 1;
}
# Python实现模型服务
classAIServicer(aiservice_pb2_grpc.AIServiceServicer):
defPredict(self, request, context):
# 使用PyTorch进行预测
        result = pytorch_model.predict(request.image_data)
return ClassificationResult(label=result.label)
// Java客户端调用
AIServiceGrpc.AIServiceBlockingStub stub = ...;
ClassificationResult result = stub.predict(request);

根据Azul的调查,50%的Java开发者所在组织正在使用Java开发AI应用,这一趋势正在加速。


5. 数据库访问层

5.1 Java:JPA规范与Hibernate

Java通过**JPA(Jakarta Persistence)**规范统一了ORM标准,Hibernate是主流实现。

// JPA实体类
@Entity
@Table(name = "users")
publicclassUser{
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;

@Column(nullable = false)
private String username;

@OneToMany(mappedBy = "user", cascade = CascadeType.ALL)
private List<Order> orders = new ArrayList<>();

// getters/setters
}

// Spring Data JPA仓库
publicinterfaceUserRepositoryextendsJpaRepository<UserLong{
Optional<User> findByUsername(String username);

@Query("SELECT u FROM User u WHERE u.email = ?1")
User findByEmailAddress(String email);
}

5.2 Python:SQLAlchemy vs Django ORM

Python的ORM呈现两强并立格局:

SQLAlchemy(工业级ORM):

  • 提供Core(SQL抽象层)和ORM两层API
  • 支持异步(1.4+版本)
# SQLAlchemy 2.0 异步示例
from sqlalchemy.ext.asyncio import create_async_engine, AsyncSession
from sqlalchemy.orm import sessionmaker, declarative_base

engine = create_async_engine("sqlite+aiosqlite:///database.db")
AsyncSessionLocal = sessionmaker(engine, class_=AsyncSession)

# 定义模型
Base = declarative_base()
classUser(Base):
    __tablename__ = 'users'
    id = Column(Integer, primary_key=True)
    username = Column(String, nullable=False)

# 异步查询
asyncdefget_user(username: str):
asyncwith AsyncSessionLocal() as session:
        result = await session.execute(
            select(User).where(User.username == username)
        )
return result.scalar_one_or_none()

Django ORM(全栈集成):

  • 与Django框架深度集成
  • API设计简洁,类似Ruby on Rails
# Django模型
classUser(models.Model):
    username = models.CharField(max_length=100)
    email = models.EmailField(unique=True)
    created_at = models.DateTimeField(auto_now_add=True)

def__str__(self):
return self.username

# 查询API
users = User.objects.filter(email__contains="@gmail.com")
user = User.objects.get(username="admin")

5.3 对比总结

特性

JPA/Hibernate

SQLAlchemy

Django ORM

设计哲学

标准规范、企业级

灵活、SQL优先

简单、框架集成

学习曲线

陡峭

中等到陡峭

平缓

性能调优

一级/二级缓存

细粒度控制

有限控制

异步支持

需额外配置

✅ 原生异步

⚠️ 有限

复杂查询

JPQL/Criteria

SQL/ORM混合

ORM为主


6. 测试工具链

6.1 Java:JUnit + Mockito + 集成测试

Java测试生态成熟且标准化:

@SpringBootTest
@AutoConfigureMockMvc
classUserControllerTest{

@Autowired
private MockMvc mockMvc;

@MockBean
private UserService userService;

@Test
voidshouldReturnUser()throws Exception {
// 准备测试数据
        User user = new User(1L"john");
        given(userService.findById(1L)).willReturn(user);

// 执行并验证
        mockMvc.perform(get("/api/users/1"))
            .andExpect(status().isOk())
            .andExpect(jsonPath("$.username").value("john"));

// 验证调用
        verify(userService, times(1)).findById(1L);
    }
}

工具链

  • JUnit 5
    :单元测试框架
  • Mockito
    :对象模拟
  • AssertJ
    :流畅断言
  • Testcontainers
    :真实依赖测试
  • JaCoCo
    :测试覆盖率

6.2 Python:pytest + unittest.mock

Python测试生态更灵活:

# pytest + mock 示例
import pytest
from unittest.mock import Mock, patch

deftest_get_user():
# 模拟服务层
    mock_service = Mock()
    mock_service.get_user.return_value = {"id"1"name""john"}

# 调用被测函数
    result = user_controller.get_user(1, mock_service)

# 断言
assert result["name"] == "john"
    mock_service.get_user.assert_called_once_with(1)

# 使用fixture管理依赖
@pytest.fixture
defdb_session():
    session = create_test_session()
yield session
    session.rollback()

deftest_database_query(db_session):
    result = db_session.query(User).all()
assert len(result) > 0

工具链

  • pytest
    :主力测试框架
  • unittest.mock
    :内置模拟库
  • factory_boy
    :测试数据生成
  • pytest-cov
    :覆盖率统计

7. 性能与并发模型

这是两种语言最本质的差异点

7.1 Java:多线程王者

Java从语言层面支持多线程,拥有强大的并发工具:

// Java 虚拟线程示例
ExecutorService executor = Executors.newVirtualThreadPerTaskExecutor();

List<Future<String>> futures = new ArrayList<>();
for (int i = 0; i < 1000; i++) {
int taskId = i;
    futures.add(executor.submit(() -> {
return processTask(taskId);  // 每个任务独立线程
    }));
}

// 收集结果
for (Future<String> future : futures) {
    results.add(future.get());
}

Java并发优势

  • 平台线程 vs 虚拟线程(Project Loom)
  • 丰富的并发集合(ConcurrentHashMap)
  • 锁机制(synchronized, ReentrantLock)
  • 无锁编程(Atomic类)

7.2 Python:GIL的约束与突破

Python的**全局解释器锁(GIL)**限制同一进程内多线程并行执行Python字节码。

# 多线程示例(受GIL限制)
importthreading

defcpu_intensive():
fori in range(1000000):
_ = i * i

# 多线程不会提升CPU密集型任务性能

threads = []
for_ in range(4):
t = threading.Thread(target=cpu_intensive)
threads.append(t)
t.start()

Python并发方案

  • 多进程
    :multiprocessing绕过GIL
  • 异步I/O
    :asyncio处理高并发I/O
  • C扩展
    :在C层释放GIL
# asyncio高并发示例
import asyncio
import aiohttp

asyncdeffetch_url(session, url):
asyncwith session.get(url) as response:
returnawait response.text()

asyncdefmain():
asyncwith aiohttp.ClientSession() as session:
        tasks = [fetch_url(session, f"https://api.example.com/item/{i}"
for i in range(1000)]
        results = await asyncio.gather(*tasks)

7.3 并发模型对比

特性

Java

Python

线程模型

1:1 内核线程 + 虚拟线程

1:1 内核线程(GIL限制)

并行计算

原生支持

需多进程或C扩展

I/O密集型

线程池/虚拟线程

asyncio(最优)

CPU密集型

多线程并行

多进程(IPC开销)

内存占用

较高(JVM)

较低


8. 测试工具链深度对比

8.1 Java测试生态:严谨与集成

Spring Boot测试切片

@WebMvcTest(UserController.class)  // 只加载Web层
class ControllerTest {
// ...
}

@DataJpaTest// 只加载JPA组件
class RepositoryTest {
// ...
}

@SpringBootTest// 加载完整上下文
@AutoConfigureTestDatabase(replace = Replace.NONE)  // 使用真实数据库
class IntegrationTest {
// ...
}

8.2 Python测试生态:灵活与轻量

# pytest的高级特性:参数化测试
@pytest.mark.parametrize("input,expected", [
    ("hello"5),
    ("world"5),
    ("python"6),
])
deftest_string_length(input, expected):
assert len(input) == expected

# 使用fixture实现依赖注入
@pytest.fixture
defapi_client():
    client = TestClient(app)
yield client
# 清理代码

deftest_api_endpoint(api_client):
    response = api_client.get("/users/1")
assert response.status_code == 200

# mock外部服务
@patch("requests.get")
deftest_external_api(mock_get):
    mock_get.return_value.json.return_value = {"data""mocked"}
    result = call_external_api()
assert result["data"] == "mocked"

8.3 测试工具对比

维度

Java

Python

单元测试框架

JUnit 5(标准)

pytest(主流)/ unittest(内置)

模拟库

Mockito(成熟)

unittest.mock(内置)/ pytest-mock

断言风格

AssertJ/Hamcrest

pytest断言(简单)

集成测试

Testcontainers

pytest-docker

性能测试

JMeter/Gatling

locust

覆盖率

JaCoCo

pytest-cov


9. 生产环境工具链

9.1 Java:APM与可观测性

Java在生产环境有成熟的监控体系:

  • 指标收集
    :Micrometer + Prometheus
  • 链路追踪
    :OpenTelemetry + Jaeger
  • 日志聚合
    :SLF4J + Logback + ELK
  • 性能分析
    :JFR(Java Flight Recorder)+ Async Profiler
// Micrometer指标示例
@RestController
publicclassMetricController{
privatefinal Counter requestCounter;

public MetricController(MeterRegistry registry) {
this.requestCounter = Counter.builder("api.requests")
            .tag("endpoint""/users")
            .register(registry);
    }

@GetMapping("/users")
public List<User> getUsers() {
        requestCounter.increment();
return userService.findAll();
    }
}

9.2 Python:现代可观测性栈

Python同样有完善的观测工具:

  • 指标
    :prometheus_client
  • 追踪
    :OpenTelemetry Python
  • 日志
    :structlog + python-json-logger
  • 性能分析
    :py-spy + Scalene
# Prometheus指标示例
from prometheus_client import Counter, Histogram, generate_latest
from fastapi import FastAPI
import time

app = FastAPI()
REQUEST_COUNT = Counter("http_requests_total""Total HTTP requests")
REQUEST_TIME = Histogram("http_request_duration_seconds""Request duration")

@app.middleware("http")
asyncdefmetrics_middleware(request, call_next):
    REQUEST_COUNT.inc()
    start = time.time()
    response = await call_next(request)
    duration = time.time() - start
    REQUEST_TIME.observe(duration)
return response

@app.get("/metrics")
defget_metrics():
return Response(content=generate_latest(), media_type="text/plain")

10. 总结:如何选择?

10.1 场景化选型建议

项目类型

推荐语言

核心组件组合

理由

企业级后端

Java

Spring Boot + JPA + Kafka

稳定性、事务支持、生态成熟

快速原型/初创产品

Python

Django/Flask + PostgreSQL

开发效率高,快速验证

高并发API

Java/Go

Spring WebFlux / Vert.x

线程模型优秀

AI模型服务

Python

FastAPI + PyTorch/TF

直接加载模型,生态原生

数据中台

混合

Python训练 + Java部署

兼顾灵活与性能

微服务架构

混合

Spring Cloud + gRPC

服务治理完善

数据分析/ETL

Python

Pandas + Spark

数据处理生态强大

10.2 协同开发最佳实践

当团队同时使用Java和Python时,推荐以下模式:

10.3 最终建议

学习Java生态,如果你:

  • 需要构建大型、长期演进的系统
  • 追求类型安全和高可维护性
  • 面对高并发、分布式场景
  • 在金融、电信等企业级领域工作

深耕Python生态,如果你:

  • 专注数据科学、AI/ML领域
  • 需要快速迭代和原型验证
  • 处理文本、数据处理任务
  • 团队规模小,追求开发效率

成为双栖开发者,如果你:

  • 参与现代AI系统的全流程开发
  • 在大型组织中负责技术整合
  • 希望拥有更广阔的职业发展空间

技术选型不是非此即彼的对立,而是根据场景找到最合适的工具。Java提供了工程化的严谨与稳定,Python带来了敏捷与数据洞察力。在现代软件架构中,它们更像是互补的左右手,共同构建完整的技术解决方案。掌握两种生态的核心工具,将让你在面对复杂问题时拥有更全面的视角和更灵活的解决方案。

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-03-27 16:36:44 HTTP/2.0 GET : https://f.mffb.com.cn/a/480436.html
  2. 运行时间 : 0.083729s [ 吞吐率:11.94req/s ] 内存消耗:4,915.22kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=203fcc5a9d36e6a33684ca0aec4979f8
  1. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_static.php ( 4.90 KB )
  7. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  10. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  11. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  12. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  13. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  14. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  15. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  16. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  17. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  18. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  19. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  21. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  22. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/provider.php ( 0.19 KB )
  23. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  24. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  25. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  26. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/common.php ( 0.03 KB )
  27. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  28. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  29. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/app.php ( 0.95 KB )
  30. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cache.php ( 0.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/console.php ( 0.23 KB )
  32. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cookie.php ( 0.56 KB )
  33. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/database.php ( 2.48 KB )
  34. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  35. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/filesystem.php ( 0.61 KB )
  36. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/lang.php ( 0.91 KB )
  37. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/log.php ( 1.35 KB )
  38. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/middleware.php ( 0.19 KB )
  39. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/route.php ( 1.89 KB )
  40. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/session.php ( 0.57 KB )
  41. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/trace.php ( 0.34 KB )
  42. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/view.php ( 0.82 KB )
  43. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/event.php ( 0.25 KB )
  44. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  45. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/service.php ( 0.13 KB )
  46. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/AppService.php ( 0.26 KB )
  47. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  48. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  49. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  50. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  51. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  52. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/services.php ( 0.14 KB )
  53. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  54. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  55. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  56. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  57. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  58. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  59. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  60. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  61. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  62. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  63. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  64. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  65. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  66. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  67. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  68. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  69. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  70. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  71. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  72. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  73. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  74. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  75. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  76. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  77. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  78. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  79. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  80. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  81. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  82. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  83. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/Request.php ( 0.09 KB )
  84. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  85. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/middleware.php ( 0.25 KB )
  86. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  87. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  88. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  89. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  90. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  91. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  92. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  93. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  94. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  95. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  96. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  97. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  98. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  99. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/route/app.php ( 1.72 KB )
  100. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  101. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  102. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  103. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/controller/Index.php ( 4.81 KB )
  104. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/BaseController.php ( 2.05 KB )
  105. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  106. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  108. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  109. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  110. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  111. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  112. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  113. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  114. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  115. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  116. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  117. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  118. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  119. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  120. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  121. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  122. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  123. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  124. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  125. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  126. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  127. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  128. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  129. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  130. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  131. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  132. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  133. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  134. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  135. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  136. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  137. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  138. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  139. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/runtime/temp/067d451b9a0c665040f3f1bdd3293d68.php ( 11.98 KB )
  140. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000549s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000814s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000304s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000304s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000580s ]
  6. SELECT * FROM `set` [ RunTime:0.000199s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000520s ]
  8. SELECT * FROM `article` WHERE `id` = 480436 LIMIT 1 [ RunTime:0.000526s ]
  9. UPDATE `article` SET `lasttime` = 1774600604 WHERE `id` = 480436 [ RunTime:0.006023s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 66 LIMIT 1 [ RunTime:0.000244s ]
  11. SELECT * FROM `article` WHERE `id` < 480436 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000461s ]
  12. SELECT * FROM `article` WHERE `id` > 480436 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000391s ]
  13. SELECT * FROM `article` WHERE `id` < 480436 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.001056s ]
  14. SELECT * FROM `article` WHERE `id` < 480436 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.002684s ]
  15. SELECT * FROM `article` WHERE `id` < 480436 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.001067s ]
0.086198s