- JSP + TAG 实现分页(Tomcat 9)
xiaoyustudiowww
javajava-eetomcat前端jsp
=========java文件packageorg.rain.tag;importjava.io.IOException;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.jsp.JspException;importjavax.servlet.jsp.PageContext;importjavax.servlet.js
- Spring MVC框架二:创建第一个MVC程序
嘵奇
SpringMVCspringmvcjava
精心整理了最新的面试资料,有需要的可以自行获取点击前往百度网盘获取点击前往夸克网盘获取有两种方式利用配置1、利用IDEA新建一个Maven项目,添加一个web支持2、导入常用的依赖junitjunit4.12org.springframeworkspring-webmvc5.1.9.RELEASEjavax.servletservlet-api2.5javax.servlet.jspjsp-api
- 使用Filter实现CORS跨域请求
阿湯哥
spring
在JavaWeb应用中,可以通过自定义Filter来处理跨域请求,主要涉及设置CORS(跨域资源共享)相关的HTTP响应头。以下是详细实现步骤:实现跨域处理的Filter示例importjavax.servlet.*;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;im
- IntelliJ IDEA配置 tomcat
太阳上的雨天
JAVAjavaidea
创建测试项目HttpServletDemo打开IDEA新建一个maven项目,按图中选择之后,点击下一步填写项目名字,位置,Groupid,点击下一步配置Maven的相关目录配置tomcat
- SpringMVC-注解配置
zl979899
SSMjavaspring
代替web.xml在Servlet3.0环境中,容器会在类路径中查找实现javax.servlet.ServletContainerInitializer接口的类,如果找到的话就用它来配置Servlet容器,这个类反过来又会查找实现WebApplicationInitializer的类并将配置的任务交给它们来完成Spring3.2引入了一个便利的WebApplicationInitializer基
- Tomcat体系架构第一篇
gaochaojin
TomcatJavaTomcat
一、Tomcat的定义Tomcat是一款开源轻量级Web应用服务器,是一款优秀的Servlet容器实现。Servlet是JavaServlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,具有独立于平台和协议的特性,主要功能在于交互地浏览和生成数据,生成动态Web内容。Servlet严格来讲是指Java语言实现的一个接口,一般情况下我们说的Servlet是指实现了这个Servl
- SpringMVC--10Spring MVC执行流程
sisyphoslee
SpringMVCmvcspring
SpringMVC执行流程核心代码publicclassDispatcherServletextendsFrameworkServlet{protectedvoiddoDispatch(HttpServletRequestrequest,HttpServletResponseresponse)throwsException{//根据请求对象request获取//这个对象是在每次发送请求时都创建一个
- Java Web 开发极简入门实战教程
AI天才研究院
Java实战java
JavaWeb开发极简入门实战教程文章目录JavaWeb开发极简入门实战教程第一部分:JavaWeb开发基础第1章:JavaWeb开发概述1.1JavaWeb的发展历程1.1.1初期阶段:Servlet与JSP1.1.2现代阶段:Spring框架与微服务架构1.1.3未来发展:云原生与无服务器架构1.2Java在Web开发中的优势稳定性与可靠性丰富的生态系统跨平台兼容性强大的社区支持1.3常见的J
- Spring MVC 对象转换器:初级开发者入门指南
干中学26
springmvcjava
SpringMVC对象转换器:初级开发者入门指南为什么需要对象转换器?在Web应用中,我们经常需要处理不同类型的对象。例如:前端数据到后端对象:用户通过表单提交的数据通常是HttpServletRequest对象,我们需要将其转换为Java对象(如POJO)以便进行业务处理。后端对象到前端展示:在将数据返回给前端时,可能需要将Java对象转换为适合前端展示的格式(如JSON或XML)。对象转换是一
- java实现预览静态html,Java 读取模板并生成HTML静态文件实例
guyu0908
java实现预览静态html
原理都很简单,主要是对模板的解析.so,我们先准备一个html模板mb.html,做个文件其中的###title###之类的标签用于程序进行查询替换.HTMLcode复制代码###title######title######author######content######html###下面是具体的代码:JspToHtml.javaJavacode复制代码importjavax.servlet.h
- Spring MVC的控制器是不是单例模式,如果是,有什么问题,怎么决?思维导图 代码示例(java 架构)
用心去追梦
java架构开发语言
SpringMVC控制器的单例模式特性在SpringMVC中,默认情况下控制器(带有@Controller或@RestController注解的类)是按照单例模式创建的。这意味着在整个应用程序生命周期内,只有一个实例会被创建并被所有请求共享。这与Servlet的行为相似,因为Servlet容器也是以单例模式管理Servlet实例的。单例模式的优点:性能优化:减少了对象创建和销毁的开销。资源利用率:
- springboot原理
caihuayuan5
面试题汇总与解析springbootjava后端大数据
springboot原理未使用springboot时,怎样构建web项目(ssm架构的)导入web及其配置,spring,springmvc在web.xml中配置dispatchServlet(前端控制器,作为分发器的作用)配置包扫描路径,让我们的service层,controller层等里面的对象被spring容器进行管理编写controller类部署Tomcat使用了springboot搭建w
- 创建监听器报错“一个或多个listeners启动失败”
cccccchd
项目总结windows
问题:今天写一个需求,即当项目启动时,取出数据库的商品类型,供全局使用,但是出现了创建监听器报错“一个或多个listeners启动失败”。解决:错误示范:我创建了两个IOC容器@WebListenerpublicclassProductTypeListenerimplementsServletContextListener{@OverridepublicvoidcontextInitialized
- 小白也能看懂的-Java Web开发全攻略(超详细)
小韩学长yyds
javaweb
个人主页:java之路-CSDN博客(期待您的关注)目录JavaWeb开发初印象JavaWeb开发的核心技术(一)Servlet(二)JSP(三)JavaBean(四)MVC架构常用JavaWeb开发框架(一)SpringFramework(二)SpringBoot(三)Hibernate(四)StrutsJavaWeb开发实战(一)需求分析(二)系统设计(三)编码实现(四)测试与部署(二)依赖冲
- Spring全面详解:架构体系演变及其入门(学习总结)
小夕Coding
大数据系列springjava大数据javabeanspringboot
文章目录架构体系演变背景单一应用架构垂直应用架构分布式服务架构流动计算架构入门配置文件yaml语法快速入门基本格式要求对象数组常量一些特殊符号使用yaml进行配置注解学习反射获取注解配置文件优先级存放目录Application属性文件,按优先级排序,位置高的将覆盖位置读取顺序web开发嵌入式Servlet容器支持扫描Servlet,过滤器和listeners1、springboot整合servle
- KindEditor 实现ctrl+v粘贴图片并上传、word粘贴带图片
Mr_Zang666
word图片一键粘贴wordservletjava
这种方法是servlet,编写好在web.xml里配置servlet-class和servlet-mapping即可使用后台(服务端)java服务代码:(上传至ROOT/lqxcPics文件夹下)配置web.xmlindex.jsp前端(页面)测试代码:WordPaster-jsp-ueditor-1.2.6.0这里写你的初始化内容varpasterMgr=newWordPasterManager
- Web后端 Tomcat服务器
小安同学iter
Web后端前端tomcat服务器
一TomcatWeb服务器介绍:Tomcat是一个开源的JavaServlet容器和Web服务器,由Apache软件基金会开发。它实现了JavaServlet和JavaServerPages(JSP)技术,用于运行JavaWeb应用程序。Tomcat轻量、易于配置,常作为开发和部署JavaWeb应用的首选服务器。1Web服务器对HTTP协议操作进行封装,简化了web程序的开发。部署web项目,对外
- Web 后端 请求与响应
小安同学iter
Web后端mavenjavatomcatintellij-idea
一请求响应1.请求(Request)客户端向服务器发送的HTTP请求,通常包含以下内容:请求行:HTTP方法(GET/POST等)、请求的URL、协议版本。请求头(Headers):客户端信息(如浏览器类型、支持的语言)、Cookie、内容类型等。请求体(Body):POST/PUT请求时携带的数据(如表单参数、JSON)。在JavaWeb中的处理:Servlet通过HttpServletRequ
- 网络安全组织架构表 网络安全技术架构
网络安全Ash
web安全架构安全
一,什么是XSS?Xss就是javascript脚本攻击,就是在表单提交的时候提交一个小脚本,因为浏览器默认是支持脚本的,所以写个小脚本不做处理的话问题就很大。如何防御?1,通过后台编写一个过滤器拦截所有getParameter参数重写httpservletwrapp方法。2,通过工具类将参数特殊字符转换成html源代码保存。//重写HttpServletRequestWrapper防止XSS攻击
- JavaWeb开发与代码的编写(二十)
wespten
Spring全家桶微信小程序Java全栈开发
JavaWeb开发与代码的编写(二十)Servlet3Servlet的传统配置方式在JavaWeb开发中,每次编写一个Servlet都需要在web.xml文件中进行配置,如下所示:ActionServletme.gacl.web.controller.ActionServletActionServlet/servlet/ActionServlet每开发一个Servlet,都要在web.xml中配置
- SpringMVC中spring-config.xml和web.xml配置
W厚积薄发
小工具web.xml模板
web.xml配置模板springmvcorg.springframework.web.servlet.DispatcherServletcontextConfigLocationclasspath:springmvc-config3.xml1springmvc/CharacterEncodingFilterorg.springframework.web.filter.CharacterEncod
- JSP(学习自用)
文城521
JAVA实训java学习html前端
一、本质JSP解析后就是Servlet类的java代码。二、jsp内嵌java代码1、声明脚本用于声明属性和方法。2、运行脚本相当于在service方法中写代码3、打印脚本用于打印上面两个脚本内声明的变量结果啥的。//页面会显示张三三、jsp内置对象1、request代表客户端的请求。2、response代表服务端的响应。3、session代表客户端当前会话。4、application代表整个We
- 微服务之网关
qq_40784183
微服务负载均衡架构
1.网关的选择Zuul和SpringCloudGateway(其他没用过了)2.Zuul(NetflixZuul)与SpringCloudGateway对比性能方面Zuul:Zuul1.x是基于Servlet的同步阻塞模型,在处理高并发请求时性能相对较弱。每个请求都会占用一个线程,当并发量较大时,线程资源可能会成为瓶颈。不过,Zuul2.x版本在性能上有所改进,采用了异步非阻塞模型,能够更好地处理
- Spring Boot中的响应与分层解耦架构
小村学长毕业设计
springboot架构后端
SpringBoot中的响应与分层解耦架构在SpringBoot框架中,响应与分层解耦架构是两个核心概念,它们共同促进了应用程序的高效性、可维护性和可扩展性。下面将详细探讨这两个方面,包括SpringBoot的响应机制、分层解耦的三层架构以及它们在实际开发中的应用。一、SpringBoot的响应机制SpringBoot的响应机制主要依赖于其内置的Servlet容器(如Tomcat)和SpringM
- SpringBoot (看完就懂)
刘小炮吖i
Java后端开发面试题Javaspringboot后端java面试spring职场和发展开发语言
一、到底什么是SpringBoot?很多初学者在接触Java开发时,常常会听到SpringBoot这个词,但却对它的概念和作用感到模糊。简单来说,SpringBoot是由Pivotal团队开发的一个基于Spring框架的开源框架,它的主要目标是简化Spring应用的初始搭建以及开发过程。在传统的Spring项目开发中,开发者需要进行大量的配置工作,例如配置Servlet容器、配置各种Bean的依赖
- Windows操作系统部署Tomcat详细讲解
web15117360223
面试学习路线阿里巴巴windowstomcatjava
Tomcat是一个开源的JavaServlet容器,用于处理JavaWeb应用程序的请求和响应。以下是关于Tomcat的用法大全:一、安装Tomcat下载访问ApacheTomcat官方网站(https://tomcat.apache.org/),根据你的操作系统(如Windows、Linux、macOS)和需求选择合适的版本进行下载。例如,对于开发环境,通常选择较新的稳定版本。安装(以Windo
- shrio反序列化分析
红队蓝军
java开发语言安全
shiro550环境搭建https://codeload.github.com/apache/shiro/zip/shiro-root-1.2.4配置pom.xmljavax.servletjstlruntimejavax.servletservlet-apiprovidedorg.slf4jslf4j-log4j12runtimelog4jlog4jruntimenet.sourceforge.
- Tomcat安装与配置详解:从入门到精通
一休哥助手
javatomcatjava
一、Tomcat简介1.1什么是Tomcat?Tomcat是由Apache软件基金会开发和维护的一款轻量级Java应用服务器,能够运行JavaServlet和JSP应用程序。Tomcat作为JavaWeb服务器与传统的Web服务器(如ApacheHTTPServer)配合使用,以便提供动态的Web服务。1.2Tomcat的主要特性轻量级:Tomcat的体积较小,启动速度快,资源消耗低,非常适合开发
- servlet到底是什么东西
一勺菠萝丶
Java
一直对servlet是个什么有些疑惑,不清楚到底是什么,在知乎上看到一段感觉不错,记录下来本以为servlet是很复杂的东西,事实上,servlet就是一个Java接口,interface!打开idea,ctrl+shift+n,搜索servlet,就可以看到是一个只有5个方法的interface!所以,网络协议、http什么的,servlet根本不管!也管不着!那servlet是干嘛的?很简单,
- Java面试经验个人总结(十五)——Tomcat
爱喝牛奶的小喵
Java面试经验Tomcat
Tomcat一、使用tomcat的原因1.用来管理servlet的生命周期;2.处理客户端请求的网络连接,并发负载分派到不同的服务器这些网络服务器的基本功能也是这些像Tomcat一样的服务器需要处理的。二、Tomcat的请求流程(客户的请求为:http://localhost:8080/test/index.jsp)1.请求被发送到本机端口8080,被在那里侦听的CoyoteHTTP/1.1Con
- mondb入手
木zi_鸣
mongodb
windows 启动mongodb 编写bat文件,
mongod --dbpath D:\software\MongoDBDATA
mongod --help 查询各种配置
配置在mongob
打开批处理,即可启动,27017原生端口,shell操作监控端口 扩展28017,web端操作端口
启动配置文件配置,
数据更灵活 
- 大型高并发高负载网站的系统架构
bijian1013
高并发负载均衡
扩展Web应用程序
一.概念
简单的来说,如果一个系统可扩展,那么你可以通过扩展来提供系统的性能。这代表着系统能够容纳更高的负载、更大的数据集,并且系统是可维护的。扩展和语言、某项具体的技术都是无关的。扩展可以分为两种:
1.
- DISPLAY变量和xhost(原创)
czmmiao
display
DISPLAY
在Linux/Unix类操作系统上, DISPLAY用来设置将图形显示到何处. 直接登陆图形界面或者登陆命令行界面后使用startx启动图形, DISPLAY环境变量将自动设置为:0:0, 此时可以打开终端, 输出图形程序的名称(比如xclock)来启动程序, 图形将显示在本地窗口上, 在终端上输入printenv查看当前环境变量, 输出结果中有如下内容:DISPLAY=:0.0
- 获取B/S客户端IP
周凡杨
java编程jspWeb浏览器
最近想写个B/S架构的聊天系统,因为以前做过C/S架构的QQ聊天系统,所以对于Socket通信编程只是一个巩固。对于C/S架构的聊天系统,由于存在客户端Java应用,所以直接在代码中获取客户端的IP,应用的方法为:
String ip = InetAddress.getLocalHost().getHostAddress();
然而对于WEB
- 浅谈类和对象
朱辉辉33
编程
类是对一类事物的总称,对象是描述一个物体的特征,类是对象的抽象。简单来说,类是抽象的,不占用内存,对象是具体的,
占用存储空间。
类是由属性和方法构成的,基本格式是public class 类名{
//定义属性
private/public 数据类型 属性名;
//定义方法
publ
- android activity与viewpager+fragment的生命周期问题
肆无忌惮_
viewpager
有一个Activity里面是ViewPager,ViewPager里面放了两个Fragment。
第一次进入这个Activity。开启了服务,并在onResume方法中绑定服务后,对Service进行了一定的初始化,其中调用了Fragment中的一个属性。
super.onResume();
bindService(intent, conn, BIND_AUTO_CREATE);
- base64Encode对图片进行编码
843977358
base64图片encoder
/**
* 对图片进行base64encoder编码
*
* @author mrZhang
* @param path
* @return
*/
public static String encodeImage(String path) {
BASE64Encoder encoder = null;
byte[] b = null;
I
- Request Header简介
aigo
servlet
当一个客户端(通常是浏览器)向Web服务器发送一个请求是,它要发送一个请求的命令行,一般是GET或POST命令,当发送POST命令时,它还必须向服务器发送一个叫“Content-Length”的请求头(Request Header) 用以指明请求数据的长度,除了Content-Length之外,它还可以向服务器发送其它一些Headers,如:
- HttpClient4.3 创建SSL协议的HttpClient对象
alleni123
httpclient爬虫ssl
public class HttpClientUtils
{
public static CloseableHttpClient createSSLClientDefault(CookieStore cookies){
SSLContext sslContext=null;
try
{
sslContext=new SSLContextBuilder().l
- java取反 -右移-左移-无符号右移的探讨
百合不是茶
位运算符 位移
取反:
在二进制中第一位,1表示符数,0表示正数
byte a = -1;
原码:10000001
反码:11111110
补码:11111111
//异或: 00000000
byte b = -2;
原码:10000010
反码:11111101
补码:11111110
//异或: 00000001
- java多线程join的作用与用法
bijian1013
java多线程
对于JAVA的join,JDK 是这样说的:join public final void join (long millis )throws InterruptedException Waits at most millis milliseconds for this thread to die. A timeout of 0 means t
- Java发送http请求(get 与post方法请求)
bijian1013
javaspring
PostRequest.java
package com.bijian.study;
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURL
- 【Struts2二】struts.xml中package下的action配置项默认值
bit1129
struts.xml
在第一部份,定义了struts.xml文件,如下所示:
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts
- 【Kafka十三】Kafka Simple Consumer
bit1129
simple
代码中关于Host和Port是割裂开的,这会导致单机环境下的伪分布式Kafka集群环境下,这个例子没法运行。
实际情况是需要将host和port绑定到一起,
package kafka.examples.lowlevel;
import kafka.api.FetchRequest;
import kafka.api.FetchRequestBuilder;
impo
- nodejs学习api
ronin47
nodejs api
NodeJS基础 什么是NodeJS
JS是脚本语言,脚本语言都需要一个解析器才能运行。对于写在HTML页面里的JS,浏览器充当了解析器的角色。而对于需要独立运行的JS,NodeJS就是一个解析器。
每一种解析器都是一个运行环境,不但允许JS定义各种数据结构,进行各种计算,还允许JS使用运行环境提供的内置对象和方法做一些事情。例如运行在浏览器中的JS的用途是操作DOM,浏览器就提供了docum
- java-64.寻找第N个丑数
bylijinnan
java
public class UglyNumber {
/**
* 64.查找第N个丑数
具体思路可参考 [url] http://zhedahht.blog.163.com/blog/static/2541117420094245366965/[/url]
*
题目:我们把只包含因子
2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14
- 二维数组(矩阵)对角线输出
bylijinnan
二维数组
/**
二维数组 对角线输出 两个方向
例如对于数组:
{ 1, 2, 3, 4 },
{ 5, 6, 7, 8 },
{ 9, 10, 11, 12 },
{ 13, 14, 15, 16 },
slash方向输出:
1
5 2
9 6 3
13 10 7 4
14 11 8
15 12
16
backslash输出:
4
3
- [JWFD开源工作流设计]工作流跳跃模式开发关键点(今日更新)
comsci
工作流
既然是做开源软件的,我们的宗旨就是给大家分享设计和代码,那么现在我就用很简单扼要的语言来透露这个跳跃模式的设计原理
大家如果用过JWFD的ARC-自动运行控制器,或者看过代码,应该知道在ARC算法模块中有一个函数叫做SAN(),这个函数就是ARC的核心控制器,要实现跳跃模式,在SAN函数中一定要对LN链表数据结构进行操作,首先写一段代码,把
- redis常见使用
cuityang
redis常见使用
redis 通常被认为是一个数据结构服务器,主要是因为其有着丰富的数据结构 strings、map、 list、sets、 sorted sets
引入jar包 jedis-2.1.0.jar (本文下方提供下载)
package redistest;
import redis.clients.jedis.Jedis;
public class Listtest
- 配置多个redis
dalan_123
redis
配置多个redis客户端
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi=&quo
- attrib命令
dcj3sjt126com
attr
attrib指令用于修改文件的属性.文件的常见属性有:只读.存档.隐藏和系统.
只读属性是指文件只可以做读的操作.不能对文件进行写的操作.就是文件的写保护.
存档属性是用来标记文件改动的.即在上一次备份后文件有所改动.一些备份软件在备份的时候会只去备份带有存档属性的文件.
- Yii使用公共函数
dcj3sjt126com
yii
在网站项目中,没必要把公用的函数写成一个工具类,有时候面向过程其实更方便。 在入口文件index.php里添加 require_once('protected/function.php'); 即可对其引用,成为公用的函数集合。 function.php如下:
<?php /** * This is the shortcut to D
- linux 系统资源的查看(free、uname、uptime、netstat)
eksliang
netstatlinux unamelinux uptimelinux free
linux 系统资源的查看
转载请出自出处:http://eksliang.iteye.com/blog/2167081
http://eksliang.iteye.com 一、free查看内存的使用情况
语法如下:
free [-b][-k][-m][-g] [-t]
参数含义
-b:直接输入free时,显示的单位是kb我们可以使用b(bytes),m
- JAVA的位操作符
greemranqq
位运算JAVA位移<<>>>
最近几种进制,加上各种位操作符,发现都比较模糊,不能完全掌握,这里就再熟悉熟悉。
1.按位操作符 :
按位操作符是用来操作基本数据类型中的单个bit,即二进制位,会对两个参数执行布尔代数运算,获得结果。
与(&)运算:
1&1 = 1, 1&0 = 0, 0&0 &
- Web前段学习网站
ihuning
Web
Web前段学习网站
菜鸟学习:http://www.w3cschool.cc/
JQuery中文网:http://www.jquerycn.cn/
内存溢出:http://outofmemory.cn/#csdn.blog
http://www.icoolxue.com/
http://www.jikexue
- 强强联合:FluxBB 作者加盟 Flarum
justjavac
r
原文:FluxBB Joins Forces With Flarum作者:Toby Zerner译文:强强联合:FluxBB 作者加盟 Flarum译者:justjavac
FluxBB 是一个快速、轻量级论坛软件,它的开发者是一名德国的 PHP 天才 Franz Liedke。FluxBB 的下一个版本(2.0)将被完全重写,并已经开发了一段时间。FluxBB 看起来非常有前途的,
- java统计在线人数(session存储信息的)
macroli
javaWeb
这篇日志是我写的第三次了 前两次都发布失败!郁闷极了!
由于在web开发中常常用到这一部分所以在此记录一下,呵呵,就到备忘录了!
我对于登录信息时使用session存储的,所以我这里是通过实现HttpSessionAttributeListener这个接口完成的。
1、实现接口类,在web.xml文件中配置监听类,从而可以使该类完成其工作。
public class Ses
- bootstrp carousel初体验 快速构建图片播放
qiaolevip
每天进步一点点学习永无止境bootstrap纵观千象
img{
border: 1px solid white;
box-shadow: 2px 2px 12px #333;
_width: expression(this.width > 600 ? "600px" : this.width + "px");
_height: expression(this.width &
- SparkSQL读取HBase数据,通过自定义外部数据源
superlxw1234
sparksparksqlsparksql读取hbasesparksql外部数据源
关键字:SparkSQL读取HBase、SparkSQL自定义外部数据源
前面文章介绍了SparSQL通过Hive操作HBase表。
SparkSQL从1.2开始支持自定义外部数据源(External DataSource),这样就可以通过API接口来实现自己的外部数据源。这里基于Spark1.4.0,简单介绍SparkSQL自定义外部数据源,访
- Spring Boot 1.3.0.M1发布
wiselyman
spring boot
Spring Boot 1.3.0.M1于6.12日发布,现在可以从Spring milestone repository下载。这个版本是基于Spring Framework 4.2.0.RC1,并在Spring Boot 1.2之上提供了大量的新特性improvements and new features。主要包含以下:
1.提供一个新的sprin