学习笔记-Spring常用注解

《深入浅出Spring》@PropertySource、@Value注解及动态刷新实现 @Value 阅读详情

目录

为什么使用注解?

@Component

@value()

@Component 总结

@Autowired

优化SpringIoc工具类

@Configuration

@Bean

@Repository  作用于 Dao层

@Service 作用于Service 层

@Controller 作用于Servlet 层

优化 Servlet 层

@RequestMapping()

@ResponseBody

动态资源

静态资源

@RequestParam()

扩展

@GetMapping()

@PathVariable()

@RequestBody

消息转换器

1. 添加第三方依赖

2. 配置Spring 的消息转换器  -- 结合 fastjson 转换

3. 引用 第三方 bean

总结

静态资源的处理

映射静态资源

映射本地图片


为什么使用注解?

Spring注解方式减少了配置文件内容,更加方便管理

Spring的一个核心功能是Ioc,就是将Bean初始化加载到容器中,Bean是如何加载到容器的呢?可以使用Spring注解方式或者Spring XML配置方式。

使用XML 配置方式的话,哪些 Bean 文件需要Ioc 来接管,需要在XML配置文件中 写 <bean>标签,来指定加载哪个 Bean 文件 

但是如果有很多 Bean文件需要加载,那么使用配置文件来指定哪些需要加载就不太方便了

@Component

注解 @component 就比较方便了

但是问题来了,Ioc 容器怎么知道哪些需要加载哪些不加载呢?还需要在配置文件中指定扫描哪些包下的文件

这样指定了扫描 com 包下的所有 加了 @component 注释的Bean 文件

创建一个 SpringIoc 工具类 ,读取配置文件

import org.springframework.context.support.ClassPathXmlApplicationContext;

public class springIocUtil {
    private static ClassPathXmlApplicationContext context;
    static {
        context = new ClassPathXmlApplicationContext("spring.xml");
    }
    public static Object getBean(String beanName){
        return context.getBean(beanName);
    }
}

调用SpringIoc工具类的getBean 静态方法获取student对象,传参 student ,默认是Student 类名的首字母小写,也可以指定名字

注解加参数的方式,就可以使用自定义的名字传参

验证

因为没有赋值,所以显示的是默认值

@value()

那怎么赋值呢?

使用 @value() 赋值和直接在属性后面 = 赋值 是一样的,不同的是 @value() 可以设置变量

游览器访问

@Component 总结

1. 类带上 @Component 注解

2. 修改配置文件

3. 使用

@Autowired

如果 Student 类里有引用其他类怎么办呢?

使用 引用类型的注入 @Autowired 自动注入

注意:Role 类也需要加上 @Component 注解,

因为 Ioc 容器创建对象是通过 空参 创建的,所以需要有空参构造函数,

在 Student 类中重写 ToString 方法,打印才会显示 Role 的信息

验证

优化SpringIoc工具类

如果参数是 class 怎么修改?

重载方法,并使用泛型的方式

泛型参数 <T>:这表示getBean方法现在可以接受任何类型的Class对象,并将返回该类型的一个实例。这里的T代表返回的bean的类型。


类型参数 Class<T>:这确保了clazz参数必须是一个具体的类类型。


返回类型 <T>:这表示方法将返回由clazz参数指定的类型。这样,调用者可以直接获得一个类型安全的对象,无需显式转换。

@Configuration

如果不使用 XML 配置文件扫描包,还有其他的方式吗? 可以使用配置类

配置类

1.类似spring 的配置文件  --设置包扫描路径

2.引入第三方的bean  -- 结合 @Bean

创建配置类

扫描 com 包下的所有文件,有 @Component 注解的Bean 加载到 Ioc 容器

修改工具类

这样和使用 XML 配置文件 是一样的

因为第三方的Bean 我们是不能直接加 @component 注解的,

那怎么引入第三方Bean 呢?

创建一个类作为第三方Bean 

@Bean

在配置类创建一个方法并结合 @Bean 注解 ,获取第三方 Bean 的实例,然后返回实例

那怎么调用这个方法呢?

使用方法名获取

验证

Servlet 控制层,Service 业务逻辑层和Dao 数据处理层 也是使用 @Component 注解,不过也有更精准的 注解

@Repository  作用于 Dao层

@Service 作用于Service 层

@Controller 作用于Servlet 层

这些注解和 @Component 注解是一样的作用,它们都继承了 @Component

使用这些注解方便阅读,可以更直观的知道这是什么层

优化 Servlet 层

在项目中,每个功能可能就需要写一个 Servlet ,当 Servlet 太多了怎么处理?

能不能只写一个Servlet ?可以的

新建一个包,然后创建 Controller 类,

然后就可以把 Servlet 类删除了,但是有个问题,Servlet 类删除了之后,游览器怎么访问服务器?

因为 Tomcat 是使用 Servlet 来处理和响应数据的,相当于一个桥梁,现在桥梁没了,那怎么办呢?

再新建一个Servlet 就可以了,但是只需要创建一个 Servlet 就可以,而不是像之前创建很多个Servlet 

那么问题来了,现在只有一个 Servlet ,映射路径写什么?

映射路径是游览器发送的请求路径,比如 Http://127.0.0.1/pages/Login

/pages/Login 就是映射路径

只需要写一个 / ,表示拦截所有的请求

这个Servlet 怎么创建呢?

Spring 自己写了一个 Servlet 结合Tomcat ,我们设置 拦截所有请求,也就是把请求路径设置为 / 

Spring 写的Servlet 是 DispatcherServlet 中央处理器,中央处理器负责分发 客户端请求的数据 由哪个 Controller 处理

先引用一下Spring 生态的 web 依赖

    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-webmvc</artifactId>
      <version>5.3.30</version>
    </dependency>

然后在 Web.xml 配置文件 引入 Spring 写的 Servlet 

  <servlet>
    <servlet-name>dispatcherServlet</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

    <!-- 初始化 spring 配置文件-->
    <init-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>classpath:spring.xml</param-value>
    </init-param>

    <!-- 启动 Ioc 容器,我们之前是使用工具类读取配置文件,现在可以使用框架来帮我们完成,就不需要在工具类中读取配置文件了-->
    <load-on-startup>1</load-on-startup>    <!--1 表示true-->
  </servlet>

  <servlet-mapping>
    <servlet-name>dispatcherServlet</servlet-name>
    <url-pattern>/</url-pattern>    <!-- 拦截所有请求-->
  </servlet-mapping>

现在使用框架启动 Ioc 容器,就不用配置类了

修改 Spring 配置文件

<?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"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc https://www.springframework.org/schema/mvc/spring-mvc.xsd">
    
    <context:component-scan base-package="com"/>

    <!--开启注解驱动-->
    <mvc:annotation-driven/>    <!--使用 schema/mvc 的-->
</beans>

总结

1. 引入 SpringMVC 依赖

        有了这个依赖 DispatcherServlet 才能和Tomcat 结合

2. 修改Web.xml 配置文件

        引入 DispatcherServlet,启动 Ioc 容器

3. 修改Spring配置文件

        开启包扫描路径

        开启注解驱动

现在就可以配置 Controller 类了

每个方法相当于一个 Servlet 

@RequestMapping()

那么问题来了,怎么区分中央处理器会分发给哪个 controller 呢?和哪个方法呢?使用 @RequestMapping() 注解

@ResponseBody

那怎么区分请求的是静态的资源还是动态资源?

使用 @ResponseBody 注解

动态资源

带有 @ResponseBody 注解的表示这是响应的是动态资源

测试

启动 Tomcat ,在游览器访问 http://localhost:8080/maven_war_exploded/User/Login 

这是我的项目路径,你的需要修改为自己的项目路径

控制台输出 登录 

静态资源

不带 @ResponseBody 注解的表示响应的是静态资源

那响应的静态资源的路径是什么呢?

比如我们访问 index.jsp 文件,先看一下编译后文件的路径

可以看到 index.jsp 在编译后就在项目根路径下

所以,文件路径只需要写 /index.jsp 就行了

我们在请求动态资源的时候,一般都会有请求参数,所以,方法的形参也需要加上

注意:请求的参数名要和方法的参数名保持一致

前端 请求的参数名和方法的参数名不一样怎么办?假设,前端的参数名已经确定了,不能修改了,这样的话,参数名不一样就赋值不了,怎么办?两种方法

比如,前端请求的参数名是 username 和 p

第一种方法:形参的参数名也修改为 p ,这样的话谁知道 p 是什么意思?有可能是 position ,phone,price,prize,poet  呢,一般在命名的时候,尽量见名知意

@RequestParam()

第二种方法

扩展

RESTful 设计风格

映射地址和参数之间,参数和参数之间 用 / 分割

传过去的参数只写参数的值

@GetMapping()

@PathVariable()

因为使用的GET 方法,所以注解是 @GetMapping,还有 @POSTMapping 等等

@PathVariable 和 @RequestParam 的区别是什么?

都是用来接收参数的,@RequestParam 是传统的风格,@PathVariable 是RESTful 风格

相同点都是接收地址栏的参数

当 POST 请求的参数很多怎么办?

把参数封装为一个对象,再传过去,也就是说,参数是一个对象

一般在传输数据都会封装为 JSON 格式 ,这也是一种规范,JSON 格式方便阅读,也比较容易解析

我们使用 Apipost 模拟发送数据

Apipost-API 文档、设计、调试、自动化测试一体化协作平台

先不发送,先创建接收参数的 VO

VO是Value Object(‌值对象)‌的缩写,‌它是一个普通的JavaBean,‌通常与DAO(‌数据访问对象)‌类配合使用

先创建 VO 包,再创建一个 VO类

@RequestBody

@RequestBody注解用于接收HTTP请求体中的数据,并将其绑定到方法参数上

消息转换器

测试返回成功,但是返回的不是 JSON 怎么办?

把返回数据封装为 JSON 格式 返回

1. 添加第三方依赖

在 pom.xml 文件中的 <dependencies> 标签中添加以下代码

    <dependency>
      <groupId>com.alibaba</groupId>
      <artifactId>fastjson</artifactId>
      <version>2.0.49</version>
    </dependency>

2. 配置Spring 的消息转换器  -- 结合 fastjson 转换

3. 引用 第三方 bean

引入 第三方 Bean 文件有两种方式

第一种是使用Spring 配置文件

第二种是配置类配合注解使用

这里因为 Spring 的消息转换器需要在配置文件配置,所以引入 Bean 文件也在这里配置

4. 使用

返回对象类型,不用显式调用JSON 转换

因为配置了消息转换器,在返回数据时 Spring 会自动把它转换为 JSON 格式

测试

显示返回的类型未经允许的

配置消息转换器支持哪些媒体类型

 

    <bean id="fastjasonalibaba" class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter">
        <property name="supportedMediaTypes">
            <list>
                <value>text/html;charset=UTF-8</value>
                <value>application/json;charset=UTF-8</value>
            </list>
        </property>
    </bean>

测试

成功响应 JSON 格式数据

总结

1. 添加第三方依赖    pom.xml

2. 修改配置信息        Spring.xml

        2.1 配置spring 消息转换器 -- 结合fastjson

        2.2 引入第三方Bean

        2.3 添加 Content-Type 的媒体类型

3. 使用

静态资源的处理

当我们想使用新建的 index.html 作为默认界面怎么处理?

直接修改文件名是不行的,这是因为 Tomcat 在最早的时候,他的目标是把 java代码和前端的页面 结合,使用 jsp 文件处理, 所以默认只能返回 jsp 文件

现在前后端分离,用不到 jsp 文件了,一般都是使用 HTML 文件,那怎么返回 HTML 文件?需要配置

在Spring 配置文件里配置

<!--配置视图解析器-->
    <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <!-- 设置视图资源的前缀,例如"test"逻辑视图名会被解析为"/WEB-INF/pages/test.html" -->
        <property name="prefix" value="/WEB-INF/pages/"/>
        <!-- 设置视图资源的后缀,用于确定资源的文件类型 -->
        <property name="suffix" value=".html"/>
    </bean>
<!-- 配置默认的 Servlet 用于处理静态资源请求 -->
    <mvc:default-servlet-handler/>

返回的文件路径只需要写 文件名即可

测试

映射静态资源

那引入 CSS 文件 路径怎么写呢?

之前的路径是这样的,但是这样写访问不到 css 文件,因为文件是放在 WEB-INF 文件夹下,WEB-INF 是安全目录,只有服务器可以访问,游览器发送的请求访问不了

在 Spring 配置文件中添加映射就可以了

在HTML 文件里 修改引用 css 文件的路径

测试

映射本地图片

游览器访问 http://localhost:8080/ecard_back_war_exploded/images/car.jpg

images 就是映射的路径

以上是我的学习笔记,如果有不对的地方希望能够指正,谢谢

编程自学指南:java程序设计开发,设计思想开源框架-SpringBoot原理与实战之Spring5常用注解过程学习笔记,通用的组件注解,被该注解标注的类会被 Spring 容器扫描并注册为 Bean java程序设计开发,设计思想开源框架-SpringBoot原理与实战之Spring5常用注解过程学习笔记,通用的组件注解,被该注解标注的类会被 Spring 容器扫描并注册为 Bean,Spring 5 中的这些常用注解是 Spring Boot 开发的基础,掌握它们能帮助开发者更高效地进行项目开发。重点在于理解每个注解的作用、使用场景和案例中的应用逻辑,以便在实际开发中灵活运用。 阅读详情

相关推荐

编程自学指南:java程序设计开发,设计思想Spring开源框架-SpringBoot原理与实战之常用注解 @SpringBootApplication学习笔记

编程自学指南:java程序设计开发,设计思想Spring开源框架-SpringBoot原理与实战之常用注解 @SpringBootApplication学习笔记,Spring Boot 中的注解是开发过程中的重要工具,它们可以帮助开发者快速搭建应用、注册组件、进行依赖注入和处理 HTTP 请求。通过合理使用这些注解,可以提高开发效率,使代码更加简洁和易于维护。在实际开发中,要根据具体的需求选择合适的注解,并深入理解其原理和使用方法。

zl515035644的博客 1180

Spring中的@Value注解详解

本文来说下spring中的@Value注解 文章目录概述 概述

wh柒八九的博客 7万+

图形化界面无限转圈?CentOS 7的SELinux避坑指南(附命令行修复实录)

本文详细解析了CentOS 7图形界面启动时无限转圈或卡在'starting switch root'的故障原因,主要与SELinux安全策略冲突有关。提供了三种修复方案:临时禁用SELinux、重装策略包和精细调整策略,并分享了长期维护建议,帮助用户平衡系统安全性与可用性。

potato的博客 798

@value()注解

配置信息测试程序。

weixin_45941064的博客 1万+

卫星测试科普(三):卫星载荷的核心测试设备探秘

总的说来,卫星芯片与元器件,部组件与单机,整机与子系统,系统与整星的设计、定型、制造、验证、总装、发射、在轨等环节都离不开各种测试场景,对于这些卫星测试场景而言,“射频三大件”与高速数字示波器是构成强大测试系统的基础。卫星通信信号生成:覆盖Ka、Q等波段,具备扫频、脉冲、数字调制、噪声信号、雷达信号、数据链信号、OFDM 等多种信号库,用于测试和验证卫星电子设备的电气性能、频率响应、抗干扰能力等。卫星的通信需要高效、快速地传输大量数据,高速信号的质量至关重要,如果卫星信号不佳,卫星就会出现故障或者隐患。

spwbjss的博客 2317

玩转openclaw+企业微信

OpenClaw横空出世:AI从问答到执行的范式革命 OpenClaw作为2026年AI领域的重大突破,实现了从对话机器人到智能执行体的进化。其核心价值在于"自主执行"而非简单交互,通过六层解耦架构(表现层、网关层、运行时层、技能层、工具层、记忆层)构建完整执行闭环。关键技术包括Model Context Protocol实现多模型兼容,以及事件驱动架构确保实时响应。安装过程支持多平台,通过Node.js环境即可快速部署,并支持对接主流大模型。OpenClaw标志着AI开始真正&quot

西木风落 1591

注解详解系列 - @Value:属性注入的利器

在今天的注解详解系列中,我们将探讨@Value注解。@Value是Spring框架中的一个重要注解,用于将外部属性注入到Spring的bean中。通过@Value注解,可以将配置文件中的值、系统属性、环境变量等注入到bean的字段中。@Value注解用于将外部属性注入到Spring的bean中。它支持注入字符串、数值、布尔值等基本类型,以及通过SpEL(Spring表达式语言)进行复杂的表达式注入。import org。

算命de博客 4598

COMSOL后处理与可视化

公众号→【COMSOL仿真交流】←更多精彩内容 后处理是采用COMSOL建模的一个重要环节。通过软件自带的可视化工具,可以快速方便的展现仿真结果。 COMSOL为使用者提供了多种后处理工具,包括表面图、切面图、等值线图、流线图、线图、体图等等。可按功能分为数据集(储存数据的地方)、派生值和表单(对数据进行进一步的操作)、绘图组合绘图类型(显示数据结果的地方)、导出数据与生成报告。   如果想用origin、matlab对模拟数据做进一步的处理,导出excel格式的模拟结果,这可以通过“导出

midiio的博客 4027

【Spring面试全家桶】@Value注解

在上面的示例代码中,我们使用@Configuration注解标记该类为一个配置类,使用@Bean注解将ExampleProperties类的实例添加到Spring容器中,并使用@ConfigurationProperties注解将属性值注入到该实例中。在上面的示例代码中,我们使用@PropertySource注解声明了属性文件的路径,使用@ConfigurationProperties注解指定了属性的前缀,然后将属性注入到ExampleProperties类中的相应属性中。

我是Java程序员廖志伟,感谢朋友们的支持! 2461

【TestNG自动化测试框架详解】

TestNG是一款设计测试用例执行流程的测试框架。

weixin_43936332的博客 1539

通达信波段交易公式实战:如何用副图指标精准捕捉买卖点(附完整源码)

本文深入解析通达信波段交易副图指标的构建与应用,提供完整源码实现,帮助投资者精准捕捉买卖点。通过趋势强度度量、超买超卖判断及信号过滤机制,结合K线图分析,有效提升波段交易的成功率。

weixin_29306317的博客 603

Spring AOP 学习笔记之 常用注解

要在springboot中启用AOP,需要引入spring-boot-starter-aop依赖。

freeRoad 1247

STM32+CubeMX实战:5步搞定LWIP HTTP服务器搭建(附常见编译错误解决)

本文详细介绍了基于STM32和CubeMX平台,快速搭建LWIP HTTP服务器的5步实战指南。内容涵盖从项目初始化、LWIP深度配置到解决经典的`HTTPD_FSDATA_FILE`编译错误,并分享了使用VSCode进行高效开发的工作流,旨在帮助嵌入式开发者快速实现网络功能并规避常见陷阱。

weixin_29192365的博客 572

Spring学习笔记——Spring常用注解

Spring学习笔记Spring常用注解声明bean的注解注入bean的注解java配置类相关注解切面(AOP)相关注解@Bean的属性支持@Value注解环境切换异步相关定时任务相关@Enable*注解说明测试相关注解SpringMVC相关注解 Spring常用注解 声明bean的注解 @Component:组件,没有明确的角色 @Service:在业务逻辑层使用(service层) @Repository:在数据访问层使用(dao层) @Controller:在展现层使用,控制器的声明(C) 注入b

yangwei2048的博客 279

构建 Skill 的完整指南

Skill开发指南摘要 Skill是用于定制Claude AI行为的指令包,包含SKILL.md主文件及可选脚本、参考文档和资源。本文提供了完整的Skill开发指南: 核心概念 三层渐进式披露结构(元数据/主指令/参考文档) 支持独立工作流和MCP集成 跨平台兼容性(Claude.ai/ClaudeCode/API) 开发流程 规划:明确2-3个具体用例 结构要求:kebab-case命名、必备YAML元数据 编写规范:清晰触发条件、分步指令、错误处理 典型应用模式 • 文档生成(类别1) • 工作流自动化

wjianwei666的专栏 293

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Spring-学习笔记04【Spring的常用注解】

Spring-学习笔记04【Spring的常用注解】

upward 689

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

【Spring】学习笔记3——Spring常用注解详解

你只管努力, ——剩下的交给时光。 常用的spring注解有如下几种: 标红为常用的几种,建议深刻理解使用最好动手敲一敲@Controller@Service @Autowired @RequestMapping@RequestParam @ModelAttribute @Cacheable @CacheFlush@Resource @PostConstruct @PreDestroy@R...

你只管努力, 606

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

【spring boot学习笔记】Spring Boot常用注解

Spring Boot常用注解@SpringBootApplication@EnableAutoConfiguration@Configuration@ComponentScan@Component@Service@Repository@Controller@RestController@RequestMapping@GetMapping@PostMapping@PathVariable@RequestBody@ResponseBodySpring Boot提供了多种条件注解,用于根据特定条件创建Bean,

浅墨の技术空间 532

Java Spring 框架技术从入门到放弃:Spring生态之Spring 常用注解学习笔记,Spring 组件注册与扫描类注解

Java Spring 框架技术从入门到放弃:Spring生态之Spring 常用注解学习笔记,Spring 组件注册与扫描类注解

zl515035644的博客 760

Spring常用注解学习笔记~值得收藏

Spring常用注解学习笔记

闲言 4674

【学习笔记】Spring常用注解

SpringBootApplication标志这个类是一个Spring Boot程序;@SpringBootApplication是@SpringBootConfiguration、@EnableAutoConfiguration、@ComponentScan的复合注解,每次写三个比较麻烦,整合为@SpringBootApplication。

m0_49670807的博客 183

Spring学习笔记(九)常用注解

目录常用注解使用注解前提用于创建对象的注解:``用于注入数据的:`` ``用于改变作用范围的:` scope=""`和生命周期相关的:` init-method="" destroy-method=""`新注解 常用注解 使用注解前提 导入JAR包 用注解配置管理资源 创建 spring 的 的 xml 配置 文件 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/sc

qq_41816516的博客 360

对于Spring中常用的RestController注解的学习笔记

本篇文章主要记载作者本人在学习Spring4.x时所遇到的一些问题,仅供学习参考。 之前在使用Spring时,在controller层的编写过程中遇到过将ResponseBody遗忘的情形,这导致了运行时的404错误,经过baidu,才知道是因为controller层要配合model模版进行响应,当controller层不使用ResponseBody注解时,返回结果无法直接写入HTTP respo...

代码搬运工的博客 516

spring学习笔记,以及一些常用注解的使用

控制反转,原来我们需要一个类实例时,我们是自己来new一个,而现在我们需要一个对象,我们是找spring要一个,让spring给我们new出来,而我们只用告诉spring我们需要new的对象是哪一个对象,对象的id,和new哪一个类。编写测试demo进行测试:我们需要使用ApplicationContext这个类来载入我们所写的配置文件,告诉spring我们所配置的bean对象,此时spring就会将我们配置好的bean对象放入spring容器中,供我们使用。引入spring所需要的jar包。

aslzd123的博客 157

【Spring学习笔记(五)】Spring框架的常用注解

首先在介绍我们Spring框架中的常用注解前,我们先来回顾一下曾经在Xml的配置文件中的配置内容: <bean id="accountService" class="com.ysw.web.service.impl.AccountServiceImpl" scope="" init-method="" destory-method=""> <!--通过s...

qq_43097201的博客 396
上一篇: MAVEN 如何使用
下一篇: 学习笔记-MyBatis 的使用
LearnTech_123
博客等级 码龄3年 445粉丝 31原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值