spring 的第一个案例应用详解

Spring Boot应用开发案例展示 阅读详情

一》从Spring官方网站上下载Spring文件

二》导入spring.jar文件,commons-logging-1.1.1.jar文件

三》GreetingService接口将实现从接口中分离出来

  package com.csdn.spring;

publicinterface GreetingService {

    publicvoid sayGreeting();

}

四》 GreetingServiceImpl.java负责打印问候语

 package com.csdn.spring;

 

publicclass GreetingServiceImpl implements GreetingService {

    private String greeting;

   

   

    publicvoid setGreeting(String greeting) {

       this.greeting = greeting;

    }

 

    public GreetingServiceImpl(){}

    public GreetingServiceImpl(String greeting){

      

       this.greeting=greeting;

    }

 

    @Override

    publicvoid sayGreeting() {

       // TODO Auto-generated method stub

       System.out.println(greeting);

      

    }

   

 

}

五》 配置applocationContext.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"

       xsi:schemaLocation="http://www.springframework.org/schema/beans

           http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">

          

          

           <!-- 配置bean的实例 -->

 

    <bean id="greetingServiceImpl"  class="com.csdn.spring.GreetingServiceImpl">

      <!-- propertybean中的属性值 -->

      <property name="greeting">

         <value>你好!</value>

      </property>

    </bean>

   

   

</beans>

六》 测试

第一种方法

 @Test

    publicvoid test() {

 

       // 装配bean

 

       // 创建依赖的资源文件         FileSystemResource

       Resource resource = new ClassPathResource("applicationContext.xml");

       // ClassPathResourcr

 

       /*

        * spring的核心容器BeanFactory,可由三种方式来创建为 XmlBeanFactory

        */

       // 创建beanFacory工厂

       BeanFactory beanFactory = new XmlBeanFactory(resource);

 

       // 获取BeanFactory工厂创建的bean对象   配置文件的id的名字

      

       GreetingService greetingService = (GreetingService) beanFactory

              .getBean("greetingServiceImpl");// xml资源文件中的classbean的id名称

 

       // beanFactory.getBean("geetingServiceBean")实现类的对象面向接口编程

 

       // 使用bean的实例

       greetingService.sayGreeting();

    }

 

第二种方法

@Test

    publicvoid test1() {

       /*

        * GreetingService greetingService = new GeetingServiceBean();

        * greetingService.sayGeeting();

        */

 

       // 装配bean

 

       // 创建依赖的资源文件

       BeanFactory beanFactory = new ClassPathXmlApplicationContext(

              "applicationContext.xml");

       // ClassPathResourcr

 

       /*

        * spring的核心容器BeanFactory,可由三种方式来创建为 XmlBeanFactory

        */

 

       // 获取BeanFactory工厂创建的bean对象

       GreetingService greetingService = (GreetingService) beanFactory

              .getBean("greetingServiceImpl");// xml资源文件中的classbean的id名称

 

       // beanFactory.getBean("geetingServiceBean")实现类的对象面向接口编程

 

       // 使用bean的实例

       greetingService.sayGreeting();

    }

 

 

spring boot实战(第一篇)第一个案例 spring boot实战(第一篇)第一个案例前言写在前面的话一直想将spring boot相关内容写成一个系列的博客,今天终于有时间开始了第一篇文章 以后有时间就会继续写下去。 spring boot 博客内容规划 spring boot 基本用法 自动配置 技术集成 性能监控 源码解析 spring boot 功能强大,后面会细细道来。第一个案例工程的构建构建spring boot工程一般采用两 阅读详情

相关推荐

深入理解Spring的ApplicationContext:案例详解与应用

如果说是Spring的心脏,那么就是完整的身躯了。由派生而来,提供了更多面向实际应用的功能,是“应用的容器”。通过本文的学习,您应该对有了更深入的理解。它不仅是Spring框架的核心组件,也是您在构建企业级应用程序时的得力助手。希望本文能够帮助您在实际开发中更好地利用,构建出更加健壮和可维护的应用程序。

five-five 1118

Spring入门案例

之前创建的都是自己写的类(自定义对象),spring容器也可以创建非自定义的类(JDK自带的类)注意:spring容器创建对象时默认调用空参构造// 测试@Test// 创建Spring容器对象// 获取对象// 输出Date对象}***************************************结果。

weixin_44906189的博客 2213

Spring Boot快速入门:构建你的第一个Web应用

这只是开始,Spring Boot提供了许多强大的功能,如数据库集成、安全性、测试等,可以帮助你构建完整的企业级应用。继续探索Spring Boot的文档,学习更多高级特性,并尝试将这些概念应用到你的项目中。在这篇文章中,我们将带你了解Spring Boot,并引导你构建第一个简单的Web应用。Spring Boot是一个开源的Java基础框架,它简化了基于Spring的应用开发,通过“约定优于配置”的原则,让开发者可以迅速启动和运行Spring应用程序。

2303_81265321的博客 1501

【Spring篇】Spring入门案例

使用Spring提供的接口完成IOC容器的创建,创建App类,编写main方法。

Javascript_tsj的博客 6385

Spring框架入门案例操作步骤:从零开始构建你的第一个Spring应用程序

在目录下创建一个名为的包,并在其中创建一个名为在同一个包中创建一个名为的类,并注入// 通过构造函数注入依赖通过本文的探讨,我们深入理解了如何从零开始构建一个简单的Spring应用程序。我们从创建Maven项目开始,添加Spring依赖,编写Spring配置文件,定义服务接口和控制器类,最后编写主程序并运行。无论你是初学者还是有经验的开发者,理解这些基本步骤都将帮助你更好地利用Spring框架,构建高效、可靠的Java应用程序。

xycxycooo的博客 236

第一个 Spring MVC 注解式开发案例(初学必看)

【1】项目创建,添加依赖。 【3】配置 web.xml 文件 【4】配置 spring-config.xml 文件 【5】编写一个 Controller 类 【6】创建响应页面 【7】运行并测试程序

不迁怒,不贰过。小知识,大智慧。 1410

【Spring】一个spring简单实例

spring的基础知识就不讲了,直接上代码吧! 为了方便大家创建文件,先把project的结构放在这 1.新建一个projec,本帖设置的名字为“project-hello”. 2. 新建一个package,这里取名为“com.company.project”. 3. 新建一个class,名为“Hello”。代码为: package com.company.project; public class Hello { private String name; pub.

一定要站在自己热爱的生活里闪闪发光 7万+

Spring Boot入门实战:构建第一个应用程序

Spring Boot 是由 Pivotal 团队推出的现代化框架,旨在简化 Spring 应用的开发与部署流程。其核心设计理念是“约定优于配置”,通过自动配置(Auto-Configuration)和起步依赖(Starter Dependencies)机制,开发者可以快速构建独立运行的、生产级应用,而无需繁琐的 XML 配置。

weixin_34162851的博客 1008

Spring基础案例

例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考。

qq_45957059的博客 1129

spring 实践学习案例

#### 项目介绍 spring 实践学习案例,与其它组件结合如 mybatis、jpa、dubbo、redis、mongodb、memcached、kafka、rabbitmq、activemq、shiro等 #### 软件架构 基于Java 1.8 #### Spring 版本 - 5.0.8.RELEASE #### 模块说明 - spring-data - Spring 数据库操作,包括SpringJDBC、JPA、Mybatis、MongoDB - spring-caches - Spring 缓存,包括redis、ehcache、spring-cache、memcached、使用redis实现session共享 等。 - spring-docs - Spring 文档生成工具,包括 Swagger - spring-bussiness - Spring 业务应用,包括 AOP、过滤器、定时任务、上传文件、国际化 等。 - spring-dubbo - Spring 集成 Dubbo - spring-mq - Spring 集成 消息队列,包括 kafka、rabbitmq、activemq、rocketmq、redismq - spring-auth - Spring 权限认证,包括 Apache Shiro

避坑指南:SAP CO模块维护成本控制范围的5个常见错误及解决方法

本文深入剖析了SAP CO模块中维护成本控制范围时最易犯的5个常见错误,包括货币参数配置不当、标准层次结构缺失、财政年度变式不一致、功能激活遗漏及集成参数设置错误。重点针对事务码OKKP的配置,提供了详细的排查步骤与实战解决方案,帮助顾问有效规避陷阱,确保成本核算体系稳定运行。

stone的博客 232

Spring到底是如何来实现IOC和DI?案例解析入门篇

Spring 🍭SSM框架01:Spring的IoC和DI,以及手把手带你创建Spring核心配置文件 🍭SSM框架02:从0-1学习Spring配置文件 🍭为什么要学Spring?学什么?怎么学? 一、入门案例 介绍完Spring的核心概念后,接下来我们得思考一个问题就是,Spring到底是如何来实现IOC和DI的,那接下来就通过一些简单的入门案例,来演示下具体实现过程: 1.1 IOC入门案例 对于入门案例,我们得先分析思路然后再代码实现, 1.1.1 入门案例思路分析 (1)Spring是使用容器来管

黑马程序员官方博客 1050

Qt 6.5实战:用QMediaPlayer搞定RTSP监控流播放(附LAV Filters解码器避坑指南)

本文详细介绍了如何在Qt 6.5中使用QMediaPlayer实现低延迟RTSP监控流播放,并提供了LAV Filters解码器的配置避坑指南。通过优化缓冲策略和硬件加速设置,显著提升视频流的播放性能和稳定性,适用于工业视觉检测和安防监控等实时场景。

weixin_33712987的博客 397

Spring第一个入门案例IOC简单应用

今天我们来写我们的第一个spring 第一步 建立一个WebProject : SpringDemo01 第二步导入核心Spring jar包到lib目录下 导入后: ...

hello world! 526

【汽车ECU标定技术解析】DCM文件与A2L、HEX的协同工作机制

本文深入解析了汽车ECU标定中DCM、A2L与HEX三大核心文件的协同工作机制。A2L文件作为定义标定变量地址与规则的“图纸”,DCM文件承载工程师调试后的具体标定数据,最终通过A2L的地址映射,将DCM数据固化生成可刷入ECU的HEX文件,形成完整的标定数据流转闭环。

weixin_29214559的博客 436

GEO优化内容营销策略:从规划到落地的全流程指南

GEO内容营销是通过地域化内容提升本地搜索排名、增加流量和转化率的策略。核心包括:构建本地用户画像,挖掘需求关键词;策划本地文化融合、案例研究等多样化内容;通过网站、社交媒体、本地KOL等渠道精准分发;优化本地关键词和视觉元素;监测数据并动态调整。案例显示,咖啡馆、工业企业和服装品牌通过本地化短视频、KOL合作及社群运营,显著提升了搜索排名、客流量和销售额。关键原则是内容本地化、精准分发、KOL合作、激励用户生成内容及数据驱动优化,实现高效本地市场渗透。

解锁AI流量新红利!🚀 GEO优化(生成引擎优化)助您掌控AI搜索,让AI成为您的品牌最佳代言人! 1326

有关Spring 简介和第一个Spring案例:基于XML配置的IoC容器

简介了什么是Spring,Spring的特点和优势以及其结构,并通过一个实例感受利用spring的控制反转实例化对象

weixin_68093610的博客 804

【100%通过率】华为od 机试真题 C语言 实现【补种未成活胡杨】

近些年来,我国防沙治沙取得显著成果。某沙漠新种植N棵胡杨(编号1-N),排成一排。一个月后,有M棵胡杨未能成活。现可补种胡杨K棵,请问如何补种(只能补种,不能新种),可以得到最多的连续胡杨树?

MISAYAONE的博客 1653

Chp1-SpringMVC第一个案例

【代码】Chp1-SpringMVC第一个案例。

qq_44042106的博客 792

嵌入式u-boot最全面试题及参考答案(5万字长文持续更新)

例如,在一个便携式设备中,U-Boot 在启动时初始化电源控制器,将输出电压设置为合适的值。命令是u-boot构建过程中用于配置u-boot选项的命令。在嵌入式系统中,启动画面(也称为启动Logo或Splash Screen)是展示给用户的第一印象,它可以包含公司的标志、产品的名称或其他相关信息。u-boot允许通过环境变量来进行配置,这使得开发者可以根据不同的硬件平台和项目需求灵活地调整u-boot的行为。写入操作可以是字节级别的,也可以是块级别的,具体取决于设备的性能和操作系统的需求。

大模型大数据攻城狮的专栏 994

Python 爬虫实战:深入同花顺,抓取股票行情数据,助力投资决策

通过本次 Python 爬虫实战,我们成功地从同花顺抓取了股票行情数据,并进行了存储、处理、分析和可视化展示。在这个过程中,我们不仅掌握了爬虫技术的基本应用,还学会了如何对动态加载的数据进行处理和分析。然而,本次爬虫任务也存在一些局限性,例如仅爬取了部分股票的数据,且未对股票的历史行情进行深入分析。在未来的工作中,我们可以进一步优化爬虫程序,爬取更多股票的数据,并深入分析股票的历史行情走势、技术指标等,为投资者提供更有价值的数据支持。

u014481728的博客 5332

【Spring框架】我终于读懂了ApplicationContext(案例详解)

本期重点分享ApplicationContext基础概念以及应用场景,欢迎阅读,学习打卡!

末尾卡片和博主交流学习! 3万+

RK3588平台开发系列讲解(项目篇)常见模型结构

📢 AI 模型常采用人工神经网络来模拟人脑神经的记忆和处理信号的能力。常见的人工神经网络类型有深度神经网络(Deep Neural Network,DNN)、卷积神经网络(Convolutional Neural Network,CNN)、循环神经网络(Recurrent Neural Network,RNN)等。

内核笔记 1756

Spring注解详解及案例

Spring注解浅入浅出——不吹牛逼不装逼 前情提要 上文书咱们说了《Spring浅入浅出》,对Spring的核心思想看过上篇的朋友应该已经掌握了,此篇用上篇铺垫,引入注解,继续深入学习。 引入注解 在Spring框架中,尽管使用XML配置文件可以很简单地装配Bean,但如果应用中有大量的Bean需要装配,会导致XML配置文件过于庞大,不方便以后的升级与维护,因此,推荐开发者使用注解...

泰斗贤若如的博客 323

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

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

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

Spring Boot入门篇:快速搭建你的第一个Spring Boot应用

通过本文的介绍,您已经学会了:1. Spring Boot的基本概念和优势2. 多种创建Spring Boot项目的方式3. 如何创建主应用类和Controller4. 如何运行和测试Spring Boot应用这只是Spring Boot的入门知识,后续文章将深入介绍更多高级特性和实际应用场景。:不需要生成额外的代码## 快速搭建第一个Spring Boot应用### 方法一:使用Spring Initializr1. 访问。## 运行应用可以通过以下几种方式运行Spring Boot应用:1.

felix 1278

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Spring IOC常用注解的详解及案例

注:用注解来向Spring容器注册Bean。需要在applicationContext.xml中注册: <context:component-scan base-package=”pagkage1[,pagkage2,…,pagkageN]”/> (1)Spring IOC常用注解的解释 代码参考: https://blog.youkuaiyun.com/weixin_40391011/article/details/104191033 https://www.cnblogs.com/hoobe

夏沐的博客 404
上一篇: struts2的文件类型上传的详解
下一篇: Spring bean 的生命周期的详解
日依
博客等级 码龄15年 165粉丝 165原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值