SSH集成实践一:配置

SSH服务详解 
 第1章 SSH服务
 1.1 SSH服务协议说明
 SSH 是 Secure Shell Protocol 的简写,由 IETF 网络工作小组(Network Working Group )制定;在进行数据传输之前,SSH先对联机数据包通过加密技术进行加密处理,加密后在进行数据传输。确保了传递的数据安全。
 SSH是专为远程登录会话和其他网... 阅读详情

这两天练习Struts2, Spring,Hibernate的整合,碰到了一些问题,整理如下, 以供参考。

----------------------------------------------------------------------------------------------------------------------------------------------------------------

Framework : Struts2, Spring, Hibernate

Manager Tool : Maven

DB: Oracle

IDE : Eclipse


1. 工程结构如下:


2. pom.xml内容如下:

<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>com.ray.app</groupId>
<artifactId>registrylogin-app</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>


<name>registrylogin-app</name>
<url>http://maven.apache.org</url>


<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>


<appfuse.version>3.0.0</appfuse.version>
<struts.version>2.3.16</struts.version>
<spring.version>4.0.0.RELEASE</spring.version>
<dao.framework>hibernate</dao.framework>
<servlet.version>3.1.0</servlet.version>
</properties>

<dependencies>
<dependency>
<groupId>com.mchange</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.2.1</version>
</dependency>

<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-core</artifactId>
<version>${struts.version}</version>
</dependency>

<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aspects</artifactId>
<version>${spring.version}</version>
</dependency>

<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.8.0.M1</version>
</dependency>

<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>4.0.1.Final</version>
</dependency>


<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-spring-plugin</artifactId>
<version>${struts.version}</version>
<exclusions>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>*</artifactId>
</exclusion>
</exclusions>
</dependency>

<dependency>
<groupId>javax.inject</groupId>
<artifactId>javax.inject</artifactId>
<version>1</version>
</dependency>

<dependency>
   <groupId>com.oracle</groupId>
   <artifactId>ojdbc6</artifactId>
   <version>11.2.0.3</version>
</dependency>

<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>${servlet.version}</version>
<scope>provided</scope>
</dependency>

<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.10</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>


3. applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
       http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"
       default-lazy-init="true">


    <!-- Activates scanning of @Autowired -->
    <context:annotation-config/>
    
    <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
    <property name="driverClass" value="oracle.jdbc.OracleDriver"/>
    <property name="jdbcUrl" value="jdbc:oracle:thin:@localhost:1521:orcl"/>
    <property name="user" value="scott"/>
    <property name="password" value="123456"/>
    <property name="maxPoolSize" value="20"/>
    <property name="minPoolSize" value="1"/>
    <property name="initialPoolSize" value="1"/>
    <property name="maxIdleTime" value="20"/>
    </bean>
    
    <bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>    
<property name="configLocation" value="classpath:hibernate.cfg.xml"/>   
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.OracleDialect</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.hbm2ddl.auto">update</prop>
<prop key="hibernate.jdbc.batch_size">20</prop>
</props>
</property>
    </bean>
    
    <bean id="userDao" class="com.ray.dao.hibernate.UserDaoHibernateImpl">
    <property name="sessionFactory" ref="sessionFactory"/>
    </bean>
    
    <bean id="userService" class="com.ray.service.impl.UserService">
    <property name="userDao" ref="userDao"/>
    </bean>


<!-- transaction define -->
<bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">
<property name="dataSource" ref="dataSource" />
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
    <!-- transaction interceptor define -->
    <bean id="transactionInterceptor" class="org.springframework.transaction.interceptor.TransactionInterceptor">
    <property name="transactionManager" ref="transactionManager"/>
    <property name="transactionAttributes">
    <props>
    <prop key="get*">PROPAGATION_REQUIRED,readOnly</prop>
    <prop key="*">PROPAGATION_REQUIRED</prop>
    </props>
    </property>    
    </bean>
    
    <!-- define BeanNameAutoProxyCreator handler -->
    <bean class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">    
    <property name="beanNames">
    <list>
    <value>userService</value>
    </list>
    </property>
    <property name="interceptorNames">
    <list>
    <value>transactionInterceptor</value>
    </list>
    </property>
    </bean>    
</beans>


4. web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
         version="3.0">
         
<filter>
<filter-name>struts</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
    <filter-mapping>
    <filter-name>struts</filter-name>
    <url-pattern>/*</url-pattern>
    </filter-mapping> 
    
    <listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>         
</web-app>

5. hibernate.cfg.xml

<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
    "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
    
<hibernate-configuration>
<session-factory>
<!-- <property name="hibernate.search.default.directory_provider">
filesystem
</property> -->

<mapping resource="User.hbm.xml" />
</session-factory>
</hibernate-configuration>


>>> 将在SSH集成实践二:问题 中详述碰到的问题和解决方法

IntelliJ IDEA远程服务器部署配置指南:SSH/SFTP集成与自动化实践 在现代软件开发中,高效的远程部署与服务器管理是提升工程效率的关键环节。其核心原理基于SSH(安全外壳协议)和SFTP(SSH文件传输协议)两大基础网络协议,前者实现安全的远程命令执行,后者负责可靠的文件传输。这种技术组合的价值在于将开发、测试与部署流程无缝集成,减少环境切换带来的上下文损耗,实现持续交付的自动化基础。常见的应用场景包括Web后端服务更新、云服务器应用部署、多环境配置管理以及团队协作中的开发环境标准化。本文聚焦于利用IntelliJ IDEA这一主流集成开发环境,通过配置远程服务器连接、设置路 阅读详情

相关推荐

Xshell8深度解析:SSH/SFTP/Telnet/RDP协议集成与企业级配置实践

Xshell8并非普通终端工具,而是面向现代IT基础设施的多协议远程访问调度中心。它基于SSH协议栈实现安全通道编排,通过SFTP子系统统一文件传输与命令执行,以Telnet Wrapper兼容老旧设备,借RDP Wrapper封装系统级远程桌面能力。其技术价值在于将协议标准(如RFC 4251、SFTP v3/v4)转化为可配置、可审计、可复现的工程参数,支撑金融、政务等高合规场景下的远程操作追溯性与协作一致性。典型应用场景包括Kubernetes节点管理、JumpServer跳板机集成、Oracle R

weixin_33404102的博客 281

Linux学习之--启动SSHD,Extra argument status

出现该问题是因为启动sshd的命令不对 1. 首先找到sshd所在位置: which sshd 以上是我的SSH所在的位置 2.查看Ubuntu版本号 cat /proc/version    3. 启动命令 systemctl restart sshd       ...

Anlia_liao的博客 3353

Mac上iTerm2配置SSH自动登录:告别重复输入密码的终极指南

本文详细介绍了在Mac上使用iTerm2配置SSH自动登录的终极指南,涵盖从基础的expect脚本到高级的SSH密钥认证和1Password集成方案。通过iTerm2的Profiles系统和触发器功能,开发者可以一键连接远程服务器,告别重复输入密码的烦恼,显著提升工作效率。文章还提供了安全最佳实践和实用技巧,帮助用户安全高效地管理SSH连接。

assembly8low的博客 754

Ionic CLI 安全与认证机制:OAuth 集成与 SSH 配置最佳实践

Ionic CLI 作为构建跨平台移动应用的核心工具,其安全与认证机制是保障开发流程安全的关键环节。本文将深入解析 Ionic CLI 中的 OAuth 集成方案与 SSH 配置最佳实践,帮助开发者快速掌握安全认证的核心要点,确保开发环境与代码仓库的安全连接。 ## OAuth 集成:简化第三方认证流程 OAuth 集成是 Ionic CLI 实现第三方服务认证的核心机制,通过标准化的授权流程

gitblog_00041的博客 633

Mac连接Linux服务器:SSH密钥配置与高级管理实践指南

SSH(Secure Shell)是用于远程登录和管理服务器的核心协议,基于非对称加密原理实现安全通信。它通过客户端-服务器架构,在传输层建立加密通道,有效防止中间人攻击和数据泄露。SSH的技术价值在于提供了身份验证、数据加密和完整性保护,成为运维开发中服务器管理的标准工具。在应用场景上,SSH广泛用于远程系统管理、自动化部署、文件传输和端口转发等。本文聚焦于在Mac环境下,通过配置SSH密钥对实现免密登录,并利用SSH Config文件管理多服务器连接,同时结合iTerm2和VSCode Remote-S

weixin_29895109的博客 310

Windows 10/11 SSH 配置:1个 config 文件管理 5+ 台 Linux 服务器密钥

本文详细介绍了在Windows 10/11系统中通过SSH配置文件高效管理多台Linux服务器的方法。通过配置`~/.ssh/config`文件,用户可以简化连接流程、管理多密钥、设置跳板机等高级功能,并实现与VSCode的无缝集成,显著提升开发运维效率。

weixin_32576389的博客 296

btrbk与SSH集成:配置安全远程备份的最佳实践

btrbk是一款强大的btrfs子卷快照和远程备份工具,通过与SSH集成,能够实现安全高效的远程备份策略。本文将详细介绍如何配置btrbk与SSH的安全连接,帮助新手用户轻松搭建可靠的远程备份系统。 ## 为什么选择btrbk进行远程备份? btrbk利用btrfs文件系统的特性,能够创建高效的快照和增量备份。通过SSH协议进行远程传输,不仅保证了数据传输的安全性,还使得跨网络备份变得简单易行

gitblog_00339的博客 224

VS Code远程开发:SSH配置与高效实践指南

远程开发是现代软件开发中的重要实践,它通过SSH协议实现本地IDE与远程服务器的无缝集成。其核心原理是建立加密隧道,将开发环境完整映射到远端,既保留本地编辑器的流畅体验,又充分利用服务器计算资源。这种模式解决了环境配置、代码同步和调试效率等工程痛点,特别适合Python、Java等需要特定运行环境的项目。VS Code的Remote-SSH扩展通过智能提示、终端集成和文件管理三大功能,将开发效率提升80%以上。结合Docker容器和端口转发技术,还能实现更复杂的云原生开发场景。本文详解从基础连接到高级调优的

weixin_28831399的博客 342

Home Assistant SSH 集成最佳实践教程

Home Assistant SSH 集成最佳实践教程 1. 项目介绍 Home Assistant SSH 集成是一个开源项目,允许用户通过 SSH 执行终端命令来控制和监控 Home Assistant 中的设备。该集成使用了 paramiko 库,并以类似于官方命令行集成的方式工作。它支持多种功能,包括基于用户名/密码或密钥文件的 SSH 认证、同时连接多个设备、生成各种类型的实体,并提供了...

gitblog_00279的博客 942

手把手教学:用国产GLM-4.6替代Claude4.0,实现AI自动化编程全流程

本文提供了一份详细的教程,指导开发者使用国产GLM-4.6模型替代Claude 4.0,实现AI自动化编程。内容涵盖从获取API密钥、搭建本地环境、改造Claude Code工具到实战开发与VSCode集成的全流程,旨在帮助用户低成本、高效率地体验AI自主编程。

weixin_29070861的博客 553

让 AI 变聪明的 20 条指令:如何让大模型回答得更精准、更专业、更实事求是

让 AI 变聪明,本质上不是写几句神奇咒语,而是把你的任务表达得更清楚,把事实标准设得更严格,把输出格式规定得更明确,把不确定性管理得更认真,把历史对话利用得更充分。大模型的强项是语言生成、信息组织、模式归纳和方案扩展;弱项是事实核验、实时更新、责任判断和对模糊意图的准确猜测。好的指令,就是在用人的判断弥补模型的弱点,让模型把强项发挥在正确的地方。

Sumarua的博客 1500

Homeassistant-ssh集成中配置流处理的改进方案

Homeassistant-ssh集成中配置流处理的改进方案 背景介绍 在Home Assistant生态系统中,SSH集成是一个常用的自定义组件,它允许用户通过SSH协议与远程设备进行交互。近期,该集成在处理配置流时出现了一个兼容性问题,涉及配置条目(ConfigEntry)的显式设置方式。 问题分析 在Home Assistant 2025.2版本中,用户报告了一个关于SSH集成的警告信息。该...

gitblog_07719的博客 327

PCIe Gen4眼图测试实战:如何用示波器快速定位信号完整性问题(附避坑指南)

本文详细解析了PCIe Gen4眼图测试中的信号完整性诊断方法,通过示波器操作技巧和实战案例,帮助工程师快速定位抖动、反射等信号问题。特别针对眼图闭合、阻抗失配等常见问题提供了避坑指南和解决方案,提升高速信号调试效率。

weixin_29230773的博客 372

SSH-LDAP-Pubkey:实现SSH公钥认证与LDAP集成的指南

SSH-LDAP-Pubkey:实现SSH公钥认证与LDAP集成的指南 项目介绍 SSH-LDAP-Pubkey 是一个旨在简化SSH访问控制的工具,通过集成LDAP目录服务来管理用户的SSH公钥。这意味着,你可以利用现有的LDAP基础设施来自动处理SSH客户端的身份验证,无需手动在每台服务器上维护~/.ssh/authorized_keys文件。这对于大型企业或需要高度自动化管理的环境尤其有用...

gitblog_00783的博客 1010

如何免费访问和使用Gemini API?

Gemini Ultra具有最先进的性能,在几个指标上超过了GPT-4的性能。它是第一个在大规模多任务语言理解基准测试中超越人类专家的模型,该基准测试57个不同学科的世界知识和解决问题的能力。Gemini是谷歌迄今为止开发的最先进、最庞大的AI模型。它为多模态而建,理解并处理不同类型的数据,比如文本、代码、音频、图像和视频。下面我们将加载Masood Aslami的图像,并用它来测试Gemini Pro Vision的多模态性。有了Gemini可以为查询提供图像、音频和文本,获得几乎完美的答案。

java_cjkl的博客 1万+

超分算法 SwinIR: Image Restoration Using Swin Transformer

这篇文章结构比较简单,如果看过Swin-Transformer的话就没什么难点了。作者引入Swin-T结构应用于低级视觉任务,包括图像超分辨率重建、图像去噪、图像压缩伪影去除。网络由一个浅层特征提取模块、深层特征提取模块、重建模块构成。重建模块对不同的任务使用不同的结构。浅层特征提取就是一个3×3的卷积层。深层特征提取是k个RSTB块和一个卷积层构成。RSTB(Res- SwinIR: Image Restoration Using Swin Transformer[ICCV 2021]Abstract1.

qq_45122568的博客 1万+

SSH密钥安全升级指南:从RSA到Ed25519的迁移实践

本文详细介绍了从RSA到Ed25519的SSH密钥安全升级指南,特别针对Ubuntu22.04系统用户。通过对比RSA和Ed25519的安全性与性能差异,提供密钥生成、配置及在Gitee等平台部署的完整流程,帮助用户实现更安全、高效的SSH认证体系。

apple5的专栏 934

自动化Ai Agent全流程实现【设计+代码】

本文探讨了人工智能代理(AI代理)如何通过自动化复杂的业务流程来帮助企业提高效率和降低成本。AI代理具有适应性、智力、自主性和可扩展性等特点,能够处理非结构化信息、在定义参数范围内做出判断、协调多个系统或利益相关者,以及处理变量输入和异常。文章详细介绍了AI代理在文件处理、客户服务、人才招聘和财务运作等领域的应用,并提供了一个逐步实现发票处理自动化的案例。此外,文章还强调了实施AI代理自动化的优势,包括效率提升、成本降低、准确性和可扩展性的改进,并提出了实施最佳实践,如从高影响力流程开始、设计人机交互、优先

FeelTouch Labs 898

HomeAssistant-SSH集成中设备IP地址更新功能解析

HomeAssistant-SSH集成中设备IP地址更新功能解析 在智能家居系统中,设备IP地址变更是网络管理中常见的场景。本文将以HomeAssistant-SSH集成为例,深入分析设备IP变更时的处理方案,并介绍最新版本中提供的便捷功能。 传统处理方式的痛点 当使用HomeAssistant-SSH集成连接设备时,若设备IP地址发生变化,传统处理流程存在以下问题: 配置迁移复杂:用户需要手动...

gitblog_07481的博客 516

29、集成电路测试技术解析

本文深入解析了集成电路测试技术,涵盖定制电路测试资源与策略、混合模拟/数字电路测试方法、数字测试模式生成难点与解决方案,以及可控性和可观测性的核心概念。同时详细讨论了固定故障、桥接故障和开路故障等主要故障模型及其检测方法。在测试技术的综合应用与优化方面,提出了合理配置测试资源、优化测试模式和设计测试流程的策略。最后展望了测试技术的发展趋势,包括集成化测试、自动化测试和智能化测试。通过全面掌握这些测试技术,可以有效提高集成电路的质量和可靠性,推动集成电路产业的发展。

work3的博客 205

YOLOv13改进目录一览 | 涉及卷积层、轻量化、注意力、损失函数、Backbone、SPPF、Neck、检测头等全方位改进

1️⃣ 已更新种不同的改进方案,专栏内的每篇文章皆,均可顺利运行。2️⃣ 订阅专栏即可进群获取以及从的各种答疑内容。3️⃣ 全新的YOLOv13改进专栏,,只为更好的满足论文发表的要求。专栏内容,专栏实时评分,全网最高,质量保证。🎫。。

Limiiiing的博客 9160

SSH-tools在企业环境中的部署策略:如何集成到DevOps工作流

SSH-tools是一套强大的开源工具集,专门设计用于简化和增强SSH(安全外壳协议)在企业环境中的使用体验。作为DevOps工程师和系统管理员,您是否曾为SSH连接管理、服务器状态监控和自动化部署而烦恼?🤔 SSH-tools正是为解决这些痛点而生,它提供了一系列实用的命令行工具,让SSH操作更加便捷高效。本文将详细介绍如何将SSH-tools集成到您的企业DevOps工作流中,实现更高效的服

gitblog_00434的博客 943

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

在Home Assistant SSH集成中实现Systemd服务状态监控

在Home Assistant SSH集成中实现Systemd服务状态监控 问题背景 在使用Home Assistant SSH集成监控Systemd服务状态时,用户发现当服务处于非活动状态时,开关会变得不可用。这是因为默认的systemctl -a命令在服务未运行时不会返回任何信息,导致集成无法正确识别服务状态。 解决方案分析 针对Systemd服务状态监控,有两种可行的实现方式: 1. 使用s...

gitblog_07519的博客 506

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

HomeAssistant-SSH集成中主机密钥不匹配问题的解决方案

HomeAssistant-SSH集成中主机密钥不匹配问题的解决方案 问题背景 在使用HomeAssistant的SSH集成时,用户可能会遇到"主机密钥不匹配"的错误提示。这种情况通常发生在目标主机系统重装或SSH密钥更新后,导致新生成的密钥与HomeAssistant中存储的旧密钥不一致。 问题分析 SSH协议使用主机密钥验证机制来防止中间人攻击。当客户端首次连接服务器时,会...

gitblog_07442的博客 338

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

10分钟搞定!Mac 配置 GitHub SSH 完全指南(小白也能看懂)

本文是一份详细的Mac配置GitHub SSH密钥指南,帮助用户通过SSH方式安全连接GitHub仓库。文章首先解释了SSH相比HTTPS的优势:更安全、更方便且更快速。配置过程分为四个步骤:检查现有SSH密钥、生成新密钥、将密钥添加到ssh-agent管理工具,最后将公钥上传至GitHub账户。指南特别强调了密钥安全注意事项,包括推荐设置密钥密码和使用macOS钥匙串功能。通过完成这些步骤,用户可实现无需每次输入密码的Git操作,同时享受加密连接的安全保障。

wenbintian的博客 1721

SSH密钥与认证安全:Awesome-SSH推荐的7种最佳实践和工具

SSH(Secure Shell)是远程访问服务器的**终极安全协议**,而SSH密钥与认证安全是保护服务器访问的**核心关键**。在Awesome-SSH这个**完整的SSH资源精选列表**中,我们发现了大量提升SSH安全性的实用工具和最佳实践。本文将为您揭示Awesome-SSH推荐的7种SSH密钥与认证安全最佳实践,帮助您构建坚不可摧的服务器访问防线。🚀 ## 🔐 为什么SSH密钥安全

gitblog_00925的博客 794
上一篇: RSA加密实践
下一篇: SSH集成实践二:问题与解决
walker-undef
博客等级 码龄12年 93粉丝 82原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值