0

0

Solon 权限认证之 Sa-Token 的使用与详解

聖光之護

聖光之護

发布时间:2025-09-02 20:23:15

|

632人浏览过

|

来源于php中文网

原创

本文详细介绍了 sa-token 在 java 项目中的使用方法,包括 sa-token 的基本概念、与其他权限框架的比较、基本语法和高级用法,并通过实例讲解了如何在项目中集成和使用 sa-token 。

作为一款轻量级 Java 权限认证框架,Sa-Token 在简化权限管理、提高开发效率方面发挥了重要作用。本文还将深入探讨 Sa-Token 的核心原理,通过内部代码展示其工作机制。最后,总结了 Sa-Token 的优缺点及其在实际开发中的应用场景,为开发者提供全面的指导。

一、Sa-Token 介绍

1. Sa-Token 简介

Sa-Token 是一款轻量级 Java 权限认证框架,旨在解决 Java Web 系统中常见的登录认证、权限验证、Session 会话、单点登录等问题。其核心目标是以最简洁的方式,实现强大的权限控制功能,帮助开发者快速完成权限系统的搭建。

Sa-Token 具有如下优势:

优势 描述
简单易用 API设计简洁明了,易于集成和使用,上手快,学习成本低。
功能丰富 支持多种权限控制需求,满足复杂业务场景。支持登录认证、权限验证、角色验证、Session会话、多账号体系等功能。
高性能 轻量级设计,对系统性能影响小。
高度可扩展 提供丰富的扩展接口,与 Spring、SpringBoot、Solon 等常用框架高度兼容,支持自定义持久化、注解方式验证、单点登录等高级特性。
社区活跃 有良好的社区支持和文档资源。

2. Sa-Token原理解析

Sa-Token 的核心原理是通过 Token 机制实现用户的身份认证和权限校验。

其主要工作流程如下:

  • 登录认证:用户登录成功后,服务器生成一个全局唯一的 Token,并将其返回给客户端。
  • Token存储:Token 与用户身份信息的映射关系保存在服务器的会话中(如 Redis、内存等)。
  • 权限验证:客户端请求时携带 Token,服务器根据Token获取用户信息,验证其权限是否满足要求。
  • 会话管理:支持 Session 会话管理,可以获取和操作当前会话的属性。

流程图例如下:

Solon 权限认证之 Sa-Token 的使用与详解

3. Sa-Token 与其他权限框架比较

Sa-Token 与其他常见权限框架在学习成本、集成难度上有显著优势:

特性 Sa-Token Solon Auth
学习成本
功能丰富度
集成难度
性能表现
社区支持 活跃 一般
扩展性

二、Sa-Token的基本语法

在实际项目中,Sa-Token 通过简单的配置和API调用,即可实现完整的权限管理功能。以下将通过一个完整的 Solon 示例,演示如何集成和使用Sa-Token。

1. 创建 Solon Web 项目

首先,创建一个新的 Solon 项目,可以使用IDEA的项目向导或 Solon Initializr。

引入必要的依赖:

<span><<span style="color:#e45649">dependencies</span>></span>
    <em><!-- Solon  Web --></em>
    <span><<span style="color:#e45649">dependency</span>></span>
        <span><<span style="color:#e45649">groupId</span>></span>org.noear<span></<span style="color:#e45649">groupId</span>></span>
        <span><<span style="color:#e45649">artifactId</span>></span>solon-web<span></<span style="color:#e45649">artifactId</span>></span>
    <span></<span style="color:#e45649">dependency</span>></span>

    <em><!-- Sa-Token核心依赖 --></em>
    <span><<span style="color:#e45649">dependency</span>></span>
        <span><<span style="color:#e45649">groupId</span>></span>cn.dev33<span></<span style="color:#e45649">groupId</span>></span>
        <span><<span style="color:#e45649">artifactId</span>></span>sa-token-solon-plugin<span></<span style="color:#e45649">artifactId</span>></span>
        <span><<span style="color:#e45649">version</span>></span>1.44.0<span></<span style="color:#e45649">version</span>></span>
    <span></<span style="color:#e45649">dependency</span>></span>
<span></<span style="color:#e45649">dependencies</span>></span>

2. 配置 Sa-Token:app.yml

<em># Sa-Token配置,可根据需要进行调整</em>
<span style="color:#986801">sa-token:</span>
  <em># token有效期,单位秒,默认30天</em>
  <span style="color:#986801">timeout:</span> <span style="color:#986801">2592000</span>

  <em># 是否打开二级登录校验</em>
  <span style="color:#986801">open-safe:</span> <span style="color:#0184bb">false</span>

3. 配置拦截器

创建配置类,添加Sa-Token的拦截器,以拦截请求并进行权限验证。SaTokenConfig.java

<span style="color:#a626a4">import</span> cn.dev33.satoken.solon.integration.SaTokenInterceptor;
<span style="color:#a626a4">import</span> org.noear.solon.annotation.Configuration;
<span style="color:#a626a4">import</span> org.noear.solon.annotation.Managed;

<span style="color:#4078f2">@Configuration</span>
<span style="color:#a626a4">public</span> <span style="color:#a626a4">class</span> <span style="color:#c18401">SaTokenConfig</span> {
    <span style="color:#4078f2">@Managed(index = -100)</span> <em>//-100,是顺序位(低值优先)</em>
    <span style="color:#a626a4">public</span> SaTokenInterceptor <span style="color:#4078f2">saTokenInterceptor</span><span>()</span> {
        <span style="color:#a626a4">return</span> <span style="color:#a626a4">new</span> <span style="color:#c18401">SaTokenInterceptor</span>(); <em>//用于支持规划处理及注解处理</em>
    }
}

4. 登录认证

创建登录接口,实现用户登录功能。LoginController.java

<span style="color:#a626a4">import</span> cn.dev33.satoken.stp.StpUtil;
<span style="color:#a626a4">import</span> org.noear.solon.annotation.Controller;
<span style="color:#a626a4">import</span> org.noear.solon.annotation.Mapping;
<span style="color:#a626a4">import</span> org.noear.solon.annotation.Param;
<span style="color:#a626a4">import</span> org.noear.solon.annotation.Post;

<span style="color:#4078f2">@Controller</span>
<span style="color:#a626a4">public</span> <span style="color:#a626a4">class</span> <span style="color:#c18401">LoginController</span> {

    <span style="color:#4078f2">@Post</span>
    <span style="color:#4078f2">@Mapping("/login")</span>
    <span style="color:#a626a4">public</span> String <span style="color:#4078f2">login</span><span>(<span style="color:#4078f2">@Param</span> String username, <span style="color:#4078f2">@Param</span> String password)</span> {
        <em>// 1. 校验用户名和密码(这里模拟一个简单的校验)</em>
        <span style="color:#a626a4">if</span> (<span style="color:#50a14f">"admin"</span>.equals(username) && <span style="color:#50a14f">"123456"</span>.equals(password)) {
            <em>// 2. 登录,保存用户ID为10001</em>
            StpUtil.login(<span style="color:#986801">10001</span>);
            <span style="color:#a626a4">return</span> <span style="color:#50a14f">"登录成功,Token:"</span> + StpUtil.getTokenValue();
        }
        <span style="color:#a626a4">return</span> <span style="color:#50a14f">"用户名或密码错误"</span>;
    }
}

说明:

  • 调用 
    StpUtil.login(10001)
     方法,实现登录操作,参数为用户的唯一标识 ID。
  • 登录成功后,可以通过 
    StpUtil.getTokenValue()
     获取当前会话的 Token。

5. 权限验证

创建需要权限验证的接口,例如获取用户信息的接口。UserController.java

<span style="color:#a626a4">import</span> cn.dev33.satoken.annotation.SaCheckPermission;
<span style="color:#a626a4">import</span> cn.dev33.satoken.stp.StpUtil;
<span style="color:#a626a4">import</span> org.noear.solon.annotation.Controller;
<span style="color:#a626a4">import</span> org.noear.solon.annotation.Get;
<span style="color:#a626a4">import</span> org.noear.solon.annotation.Mapping;
<span style="color:#a626a4">import</span> org.noear.solon.annotation.Post;

<span style="color:#4078f2">@Controller</span>
<span style="color:#4078f2">@Mapping("/user")</span>
<span style="color:#a626a4">public</span> <span style="color:#a626a4">class</span> <span style="color:#c18401">UserController</span> {

    <em>// 查询用户信息,需登录</em>
    <span style="color:#4078f2">@Get</span>
    <span style="color:#4078f2">@Mapping("/info")</span>
    <span style="color:#a626a4">public</span> String <span style="color:#4078f2">getUserInfo</span><span>()</span> {
        <em>// 校验是否登录</em>
        StpUtil.checkLogin();
        <em>// 获取用户ID</em>
        <span style="color:#986801">int</span> <span style="color:#986801">userId</span> <span>=</span> StpUtil.getLoginIdAsInt();
        <span style="color:#a626a4">return</span> <span style="color:#50a14f">"当前用户信息,ID:"</span> + userId;
    }

    <em>// 修改用户信息,需有权限"user:update"</em>
    <span style="color:#4078f2">@SaCheckPermission("user:update")</span>
    <span style="color:#4078f2">@Post</span>
    <span style="color:#4078f2">@Mapping("/update")</span>
    <span style="color:#a626a4">public</span> String <span style="color:#4078f2">updateUser</span><span>()</span> {
        <span style="color:#a626a4">return</span> <span style="color:#50a14f">"用户信息更新成功"</span>;
    }
}

说明:

  • 使用 
    StpUtil.checkLogin()
     方法手动校验登录状态。
  • 使用 
    @SaCheckPermission("user:update")
     注解,声明该接口需要权限user:update。

6. 角色验证

如果需要基于角色进行权限控制,可以使用 

@SaCheckRole
 注解。

<span style="color:#a626a4">import</span> cn.dev33.satoken.annotation.SaCheckRole;
<span style="color:#a626a4">import</span> org.noear.solon.annotation.Controller;
<span style="color:#a626a4">import</span> org.noear.solon.annotation.Get;
<span style="color:#a626a4">import</span> org.noear.solon.annotation.Mapping;

<span style="color:#4078f2">@Controller</span>
<span style="color:#4078f2">@Mapping("/admin")</span>
<span style="color:#a626a4">public</span> <span style="color:#a626a4">class</span> <span style="color:#c18401">AdminController</span> {

    <em>// 仅管理员角色可访问</em>
    <span style="color:#4078f2">@SaCheckRole("admin")</span>
    <span style="color:#4078f2">@Get</span>
    <span style="color:#4078f2">@Mapping("/dashboard")</span>
    <span style="color:#a626a4">public</span> String <span style="color:#4078f2">adminDashboard</span><span>()</span> {
        <span style="color:#a626a4">return</span> <span style="color:#50a14f">"欢迎进入管理员控制台"</span>;
    }
}

7. 自定义权限验证逻辑

需要自定义获取用户权限和角色的逻辑,可以实现 

StpInterface
 接口。StpInterfaceImpl.java

<span style="color:#a626a4">import</span> cn.dev33.satoken.stp.StpInterface;
<span style="color:#a626a4">import</span> org.noear.solon.annotation.Managed;

<span style="color:#a626a4">import</span> java.util.ArrayList;
<span style="color:#a626a4">import</span> java.util.List;

<span style="color:#4078f2">@Managed</span>
<span style="color:#a626a4">public</span> <span style="color:#a626a4">class</span> <span style="color:#c18401">StpInterfaceImpl</span> <span style="color:#a626a4">implements</span> <span style="color:#c18401">StpInterface</span> {

    <em>// 返回一个用户所拥有的权限码集合</em>
    <span style="color:#4078f2">@Override</span>
    <span style="color:#a626a4">public</span> List<String> <span style="color:#4078f2">getPermissionList</span><span>(Object loginId, String loginKey)</span> {
        <em>// 模拟从数据库获取权限</em>
        List<String> permissionList = <span style="color:#a626a4">new</span> <span style="color:#c18401">ArrayList</span><>();
        <span style="color:#a626a4">if</span>(<span style="color:#50a14f">"10001"</span>.equals(loginId.toString())) {
            permissionList.add(<span style="color:#50a14f">"user:update"</span>);
            permissionList.add(<span style="color:#50a14f">"user:delete"</span>);
        }
        <span style="color:#a626a4">return</span> permissionList;
    }

    <em>// 返回一个用户所拥有的角色标识集合 (权限与角色可分开校验)</em>
    <span style="color:#4078f2">@Override</span>
    <span style="color:#a626a4">public</span> List<String> <span style="color:#4078f2">getRoleList</span><span>(Object loginId, String loginKey)</span> {
        <em>// 模拟从数据库获取角色</em>
        List<String> roleList = <span style="color:#a626a4">new</span> <span style="color:#c18401">ArrayList</span><>();
        <span style="color:#a626a4">if</span>(<span style="color:#50a14f">"10001"</span>.equals(loginId.toString())) {
            roleList.add(<span style="color:#50a14f">"admin"</span>);
        }
        <span style="color:#a626a4">return</span> roleList;
    }
}

说明:

  • 实现 
    getPermissionList
     方法,返回指定用户的权限列表。
  • 实现 
    getRoleList
     方法,返回指定用户的角色列表。

8. 会话管理

Sa-Token 提供了会话管理功能,可以在 Session 中存储和获取数据。

Krea AI
Krea AI

多功能的一站式AI图像生成和编辑平台

下载

<span style="color:#a626a4">import</span> cn.dev33.satoken.session.SaSession;
<span style="color:#a626a4">import</span> cn.dev33.satoken.stp.StpUtil;

<span style="color:#a626a4">public</span> <span style="color:#a626a4">void</span> <span style="color:#4078f2">sessionDemo</span><span>()</span> {
    <em>// 获取当前会话的Session</em>
    <span style="color:#986801">SaSession</span> <span style="color:#986801">session</span> <span>=</span> StpUtil.getSession();

    <em>// 存储数据</em>
    session.set(<span style="color:#50a14f">"name"</span>, <span style="color:#50a14f">"张三"</span>);
    session.set(<span style="color:#50a14f">"email"</span>, <span style="color:#50a14f">"zhangsan@example.com"</span>);

    <em>// 获取数据</em>
    <span style="color:#986801">String</span> <span style="color:#986801">name</span> <span>=</span> session.getString(<span style="color:#50a14f">"name"</span>);
    <span style="color:#986801">String</span> <span style="color:#986801">email</span> <span>=</span> session.getString(<span style="color:#50a14f">"email"</span>);

    <em>// 输出</em>
    System.out.println(<span style="color:#50a14f">"姓名:"</span> + name);
    System.out.println(<span style="color:#50a14f">"邮箱:"</span> + email);
}

9. 踢人下线

可以通过用户ID强制用户下线。

<em>// 将用户ID为10001的用户踢下线</em>
StpUtil.logoutByLoginId(<span style="color:#986801">10001</span>);

<em>// 检查用户是否已被踢下线</em>
<span style="color:#986801">boolean</span> <span style="color:#986801">isLogout</span> <span>=</span> StpUtil.isLogin();
System.out.println(<span style="color:#50a14f">"用户是否登录:"</span> + isLogout);

10. 注销登录

用户主动注销登录,可以调用 

StpUtil.logout()
 方法。

<em>// 注销登录</em>
StpUtil.logout();

<em>// 检查登录状态</em>
<span style="color:#986801">boolean</span> <span style="color:#986801">isLogin</span> <span>=</span> StpUtil.isLogin();
System.out.println(<span style="color:#50a14f">"用户是否登录:"</span> + isLogin);

三、Sa-Token 的高级用法

1. 自定义持久化

Sa-Token 默认使用内存来存储 Token 信息,在分布式环境中,可以使用 Redis 作为持久化介质。

引入Redis依赖:

<span><<span style="color:#e45649">dependency</span>></span>
    <span><<span style="color:#e45649">groupId</span>></span>cn.dev33<span></<span style="color:#e45649">groupId</span>></span>
    <span><<span style="color:#e45649">artifactId</span>></span>sa-token-redisx<span></<span style="color:#e45649">artifactId</span>></span>
    <span><<span style="color:#e45649">version</span>></span>1.44.0<span></<span style="color:#e45649">version</span>></span>
<span></<span style="color:#e45649">dependency</span>></span>

<span><<span style="color:#e45649">dependency</span>></span>
    <span><<span style="color:#e45649">groupId</span>></span>cn.dev33<span></<span style="color:#e45649">groupId</span>></span>
    <span><<span style="color:#e45649">artifactId</span>></span>sa-token-snack3<span></<span style="color:#e45649">artifactId</span>></span>
    <span><<span style="color:#e45649">version</span>></span>1.44.0<span></<span style="color:#e45649">version</span>></span>
<span></<span style="color:#e45649">dependency</span>></span>

配置 Redis Dao 连接信息:app.yml

<span style="color:#986801">sa-token:</span>  <em># 不同的扩展插件,配置可能会不同</em>
  <span style="color:#986801">dao:</span>
    <span style="color:#986801">server:</span> <span style="color:#50a14f">"localhost:6379"</span>
    <span style="color:#986801">password:</span> <span style="color:#986801">123456</span>
    <span style="color:#986801">db:</span> <span style="color:#986801">1</span>
    <span style="color:#986801">maxTotal:</span> <span style="color:#986801">200</span>

配置 Redis 持久化:

<span style="color:#a626a4">import</span> cn.dev33.satoken.dao.SaTokenDao;
<span style="color:#a626a4">import</span> cn.dev33.satoken.dao.SaTokenDaoForRedisx;
<span style="color:#a626a4">import</span> org.noear.solon.annotation.Configuration;
<span style="color:#a626a4">import</span> org.noear.solon.annotation.Inject;
<span style="color:#a626a4">import</span> org.noear.solon.annotation.Managed;

<span style="color:#4078f2">@Configuration</span>
<span style="color:#a626a4">public</span> <span style="color:#a626a4">class</span> <span style="color:#c18401">SaTokenDaoConfig</span> {
    <span style="color:#4078f2">@Managed</span>
    <span style="color:#a626a4">public</span> SaTokenDao <span style="color:#4078f2">saTokenDaoInit</span><span>(<span style="color:#4078f2">@Inject("${sa-token.dao}")</span> SaTokenDaoForRedisx saTokenDao)</span> {
        <span style="color:#a626a4">return</span> saTokenDao;
    }
}

2. 单点登录(SSO)

Sa-Token提供了SSO模块,可以快速实现单点登录功能。

引入SSO依赖:

<span><<span style="color:#e45649">dependency</span>></span>
    <span><<span style="color:#e45649">groupId</span>></span>cn.dev33<span></<span style="color:#e45649">groupId</span>></span>
    <span><<span style="color:#e45649">artifactId</span>></span>sa-token-sso<span></<span style="color:#e45649">artifactId</span>></span>
    <span><<span style="color:#e45649">version</span>></span>1.44.0<span></<span style="color:#e45649">version</span>></span>
<span></<span style="color:#e45649">dependency</span>></span>

配置 SSO 相关参数:app.yml

<span style="color:#986801">sa-token:</span>
  <span style="color:#986801">sso-client:</span>
    <span style="color:#986801">client:</span> <span style="color:#50a14f">demo-app</span>
    <span style="color:#986801">server-url:</span> <span style="color:#50a14f">http://sso-server.com</span>
    <span style="color:#986801">is-http:</span> <span style="color:#0184bb">true</span>
    <span style="color:#986801">secret-key:</span> <span style="color:#50a14f">SSO-C3-kQwIOrYvnXmSDkwEiFngrKidMcdrgKor</span>

3. OAuth2.0支持

Sa-Token
 也支持 
OAuth2.0
 协议,可以实现与第三方平台的对接。

引入 

OAuth2.0
 依赖:

<span><<span style="color:#e45649">dependency</span>></span>
    <span><<span style="color:#e45649">groupId</span>></span>cn.dev33<span></<span style="color:#e45649">groupId</span>></span>
    <span><<span style="color:#e45649">artifactId</span>></span>sa-token-oauth2<span></<span style="color:#e45649">artifactId</span>></span>
    <span><<span style="color:#e45649">version</span>></span>1.44.0<span></<span style="color:#e45649">version</span>></span>
<span></<span style="color:#e45649">dependency</span>></span>

配置 

OAuth2.0
 参数和实现授权流程(此处略,具体可参考官方文档)。

4. 多账号体系

如果系统中存在多种身份的用户,例如普通用户、管理员、商家等,可以使用多账号体系进行区分。

登录指定账号体系:

<em>// 管理员登录,loginKey为"admin"</em>
StpUtil.login(<span style="color:#986801">10001</span>, <span style="color:#50a14f">"admin"</span>);

检查登录状态:

<em>// 检查当前账号体系下是否登录</em>
<span style="color:#986801">boolean</span> <span style="color:#986801">isLogin</span> <span>=</span> StpUtil.isLogin(<span style="color:#50a14f">"admin"</span>);

权限验证:

<em>// 在指定账号体系下进行权限验证</em>
StpUtil.checkPermission(<span style="color:#50a14f">"user:update"</span>, <span style="color:#50a14f">"admin"</span>);

四、Sa-Token使用总结

Sa-Token 是一款轻量级的 Java 权限认证框架,因其简单易用和功能丰富而备受开发者青睐。它以简洁明了的API设计,使得集成和使用变得非常方便,开发者可以快速上手,降低了学习成本。Sa-Token 支持多种权限控制需求,满足复杂业务场景,包括登录认证、权限验证、角色验证、Session 会话、多账号体系等功能,全面覆盖了权限管理的各个方面。其轻量级的设计对系统性能影响小,适用于高并发的应用环境。此外,Sa-Token 提供了丰富的扩展接口,与 Spring、SpringBoot、Solon 等常用框架高度兼容,支持自定义持久化、注解方式验证、单点登录等高级特性,方便开发者根据项目需求进行定制开发。活跃的社区支持和丰富的文档资源也使得开发者能够轻松获取帮助和指导。

由于这些优势,Sa-Token 非常适 Web 项目的快速开发和微服务架构下的权限管理。当项目需要快速搭建权限系统时,选择 Sa-Token 是一个理想的方案。然而,在使用过程中需要注意 Token 的安全性,防止泄露带来风险;对于高并发场景,建议使用Redis等持久化介质来提高系统性能和扩展性;同时,关注 Sa-Token 的版本更新,及时获取新功能和安全补丁,以确保系统的安全性和稳定性。

此文参考自:https://www.cnblogs.com/liuguangzhi/articles/18415627

源码地址:点击下载

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

WorkBuddy
WorkBuddy

腾讯云推出的AI原生桌面智能体工作台

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
spring框架介绍
spring框架介绍

本专题整合了spring框架相关内容,想了解更多详细内容,请阅读专题下面的文章。

156

2025.08.06

Java Spring Security 与认证授权
Java Spring Security 与认证授权

本专题系统讲解 Java Spring Security 框架在认证与授权中的应用,涵盖用户身份验证、权限控制、JWT与OAuth2实现、跨站请求伪造(CSRF)防护、会话管理与安全漏洞防范。通过实际项目案例,帮助学习者掌握如何 使用 Spring Security 实现高安全性认证与授权机制,提升 Web 应用的安全性与用户数据保护。

88

2026.01.26

什么是分布式
什么是分布式

分布式是一种计算和数据处理的方式,将计算任务或数据分散到多个计算机或节点中进行处理。本专题为大家提供分布式相关的文章、下载、课程内容,供大家免费下载体验。

407

2023.08.11

分布式和微服务的区别
分布式和微服务的区别

分布式和微服务的区别在定义和概念、设计思想、粒度和复杂性、服务边界和自治性、技术栈和部署方式等。本专题为大家提供分布式和微服务相关的文章、下载、课程内容,供大家免费下载体验。

251

2023.10.07

string转int
string转int

在编程中,我们经常会遇到需要将字符串(str)转换为整数(int)的情况。这可能是因为我们需要对字符串进行数值计算,或者需要将用户输入的字符串转换为整数进行处理。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

1010

2023.08.02

java中boolean的用法
java中boolean的用法

在Java中,boolean是一种基本数据类型,它只有两个可能的值:true和false。boolean类型经常用于条件测试,比如进行比较或者检查某个条件是否满足。想了解更多java中boolean的相关内容,可以阅读本专题下面的文章。

367

2023.11.13

java boolean类型
java boolean类型

本专题整合了java中boolean类型相关教程,阅读专题下面的文章了解更多详细内容。

42

2025.11.30

if什么意思
if什么意思

if的意思是“如果”的条件。它是一个用于引导条件语句的关键词,用于根据特定条件的真假情况来执行不同的代码块。本专题提供if什么意思的相关文章,供大家免费阅读。

846

2023.08.22

C# ASP.NET Core微服务架构与API网关实践
C# ASP.NET Core微服务架构与API网关实践

本专题围绕 C# 在现代后端架构中的微服务实践展开,系统讲解基于 ASP.NET Core 构建可扩展服务体系的核心方法。内容涵盖服务拆分策略、RESTful API 设计、服务间通信、API 网关统一入口管理以及服务治理机制。通过真实项目案例,帮助开发者掌握构建高可用微服务系统的关键技术,提高系统的可扩展性与维护效率。

76

2026.03.11

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Kotlin 教程
Kotlin 教程

共23课时 | 4.3万人学习

C# 教程
C# 教程

共94课时 | 11.2万人学习

Java 教程
Java 教程

共578课时 | 81万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号