![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
文章平均质量分 86
java进阶营,每日分享Java知识!
洛卡JAVA架构师
这个作者很懒,什么都没留下…
展开
-
我们身边有哪些数据库?
在日常生活中,我们可能没有察觉到经常使用的数据库系统。正式学习数据库之前,先带大家了解一下身边常见的数据库系统应用。在阅读以下内容时,读者可以先将:数据库看作一组相关的数据数据库管理系统(DBMS)看作管理和控制这组数据的软件数据库系统包括与数据库相互作用的应用程序、DBMS 和数据库在内的所有东西本章后面会对上述术语给出更加准确的定义。下面是生活中一些常见的数据库应用。超市购物我们在超市购买商品时,就是在访问一个数据库。结账时,收银员使用条形码阅读器扫描客户购买的每一件商品。这个条形码阅读器连原创 2022-06-11 20:12:24 · 996 阅读 · 1 评论 -
Spring事务(Transaction)
事务(Transaction)是基于关系型数据库(RDBMS)的企业应用的重要组成部分。在软件开发领域,事务扮演者十分重要的角色,用来确保应用程序数据的完整性和一致性。事务具有 4 个特性:原子性、一致性、隔离性和持久性,简称为 ACID 特性。原子性(Atomicity):一个事务是一个不可分割的工作单位,事务中包括的动作要么都做要么都不做。一致性(Consistency):事务必须保证数据库从一个一致性状态变到另一个一致性状态,一致性和原子性是密切相关的。隔离性(Isolation):一个事务的原创 2022-05-19 11:22:25 · 12602 阅读 · 0 评论 -
Spring MVC入门到精通MVC设计模式简介
MVC 设计模式一般指 MVC 框架,M(Model)指数据模型层,V(View)指视图层,C(Controller)指控制层。使用 MVC 的目的是将 M 和 V 的实现代码分离,使同一个程序可以有不同的表现形式。其中,View 的定义比较清晰,就是用户界面。在 Web 项目的开发中,能够及时、正确地响应用户的请求是非常重要的。用户在网页上单击一个 URL 路径,这对 Web 服务器来说,相当于用户发送了一个请求。而获取请求后如何解析用户的输入,并执行相关处理逻辑,最终跳转至正确的页面显示反馈结果,这些原创 2022-05-19 11:31:47 · 145 阅读 · 0 评论 -
Spring MVC视图解析器(ViewResolver)
视图解析器(ViewResolver)是 Spring MVC 的重要组成部分,负责将逻辑视图名解析为具体的视图对象。Spring MVC 提供了很多视图解析类,其中每一项都对应 Java Web 应用中特定的某些视图技术。下面介绍一些常用的视图解析类。URLBasedViewResolverUrlBasedViewResolver 是对 ViewResolver 的一种简单实现,主要提供了一种拼接 URL 的方式来解析视图。UrlBasedViewResolver 通过 prefix 属性指定前缀原创 2022-05-20 19:31:51 · 1287 阅读 · 1 评论 -
Spring自动装配(基于注解)
从 Java 5 开始,Java 增加了对注解(Annotation)的支持,它是代码中的一种特殊标记,可以在编译、类加载和运行时被读取,执行相应的处理。开发人员可以通过注解在不改变原有代码和逻辑的情况下,在源代码中嵌入补充信息。Spring 从 2.5 版本开始提供了对注解技术的全面支持,我们可以使用注解来实现自动装配,简化 Spring 的 XML 配置。Spring 通过注解实现自动装配的步骤如下:引入依赖开启组件扫描使用注解定义 Bean依赖注入引入依赖使用注解的第一步,就是要在原创 2022-05-18 19:25:33 · 1488 阅读 · 0 评论 -
Spring SpEL表达式语言
Spring Expression Language(简称 SpEL)是一种功能强大的表达式语言,支持运行时查询和操作对象图 。表达式语言一般是用最简单的形式完成最主要的工作,以此减少工作量。Java 有许多可用的表达式语言,例如 JSP EL,OGNL,MVEL 和 JBoss EL,SpEL 语法类似于 JSP EL,功能类似于 Struts2 中的 OGNL,能在运行时构建复杂表达式、存取对象图属性、调用对象方法等,并且能与 Spring 功能完美整合,如 SpEL 可以用来配置 Bean 定义。原创 2022-05-19 11:27:25 · 253 阅读 · 0 评论 -
AOP面向切面编程
除了控制反转(IoC)和依赖注入(DI)外,Spring 框架还提供了对面向切面编程(AOP)的支持。本节,我们就对 AOP 面向切面编程进行讲解。AOP 的全称是“Aspect Oriented Programming”,译为“面向切面编程”,和 OOP(面向对象编程)类似,它也是一种编程思想。通常情况下,我们会根据业务使用 OOP(面向对象)思想,将应用划分为多个不同的业务模块,每个模块的核心功能都只为特定的业务领域提供服务,例如电商系统中的订单模块、商品模块、库存模块就分别是为维护电商系统的订单原创 2022-05-18 19:29:14 · 121 阅读 · 0 评论 -
第一个Spring MVC程序
本节通过一个简单的 Web 应用 springmvcDemo 来演示如何创建 Spring MVC 程序。搭建步骤如下:创建 Web 应用并引入 JAR 包,本教程 Spring 使用版本为 5.2.3Spring MVC 配置:在 web.xml 中配置 Servlet,创建 Spring MVC 的配置文件创建 Controller(处理请求的控制器)创建 View(本教程使用 JSP 作为视图)部署运行创建Web应用并引入JAR包创建 Web 应用 springmvcDemo,在 s原创 2022-05-19 11:34:31 · 203 阅读 · 0 评论 -
Spring整合日志框架Log4j2
对于一款软件而言,日志记录都是十分重要的。它不仅能够监控程序的运行情况,周期性的记录到文件中,还能够跟踪程序中代码的运行轨迹,向文件或控制台打印代码的调试信息。当程序出现错误时,日志记录可以帮助开发人员及时定位问题,因此对开发人员来说,日志记录更是尤为重要。Spring 5 框架自带了通用的日志封装,但是我们依然可以整合其他的日志框架对日志进行记录,其中最广为人知的就是大名鼎鼎的 Log4j。Log4j 是 Apache 提供的一款开源的强有力的 Java 日志记录工具。它可以通过配置文件灵活、细致地控原创 2022-05-19 11:26:37 · 1375 阅读 · 0 评论 -
Spring使用AspectJ进行AOP开发(基于注解)
在 Spring 中,虽然我们可以使用 XML 配置文件可以实现 AOP 开发,但如果所有的配置都集中在 XML 配置文件中,就势必会造成 XML 配置文件过于臃肿,从而给维护和升级带来一定困难。为此,AspectJ 框架为 AOP 开发提供了一套 @AspectJ 注解。它允许我们直接在 Java 类中通过注解的方式对切面(Aspect)、切入点(Pointcut)和增强(Advice)进行定义,Spring 框架可以根据这些注解生成 AOP 代理。关于注解的介绍如表 1 所示。启用 @Aspec原创 2022-05-18 19:35:47 · 627 阅读 · 0 评论 -
Spring MVC和Struts2的区别
Spring MVC 和 Struts2 类似,是一款基于传统 MVC 设计模式的 Java EE 框架。它的核心是一个弹性的控制层,能够很好地发挥 MVC 模式的“分离显示逻辑和业务逻辑”的能力。而近年来越来越多的开发者选择使用 Spring MVC 技术来代替 Struts2 技术,那么相比于 Struts2 框架,Spring MVC 的优点在哪里呢?下面来分析一下两者的区别。Spring MVC 基于方法开发,Struts2 基于类开发。在使用 Spring MVC 框架进行开发时,会将原创 2022-05-19 11:35:09 · 209 阅读 · 1 评论 -
Spring基于注解实现事务管理
在《Spring基于XML实现事务管理》一节中,我们通过 tx:advice 元素极大的简化了 Spring 声明式事务所需的 XML 配置。但其实我们还可以通过另一种方式进行进一步的简化,那就是“使用注解实现事务管理”。在 Spring 中,声明式事务除了可以使用 XML 实现外,还可以使用注解实现,以进一步降低代码之间的耦合度。下面我们就来介绍下,通过注解是如何实现声明式事务管理。开启注解事务tx 命名空间提供了一个 tx:annotation-driven 元素,用来开启注解事务,简化 Spr原创 2022-05-19 11:25:05 · 1429 阅读 · 0 评论 -
Spring自动装配
我们把 Spring 在 Bean 与 Bean 之间建立依赖关系的行为称为“装配”。Spring 的 IOC 容器虽然功能强大,但它本身不过只是一个空壳而已,它自己并不能独自完成装配工作。需要我们主动将 Bean 放进去,并告诉它 Bean 和 Bean 之间的依赖关系,它才能按照我们的要求完成装配工作。在前面的学习中,我们都是在 XML 配置中通过 和 中的 ref 属性,手动维护 Bean 与 Bean 之间的依赖关系的。例如,一个部门(Dept)可以有多个员工(Employee),而一个员工原创 2022-05-18 19:23:41 · 310 阅读 · 0 评论 -
Spring集成AspectJ
我们知道,Spring AOP 是一个简化版的 AOP 实现,并没有提供完整版的 AOP 功能。通常情况下,Spring AOP 是能够满足我们日常开发过程中的大多数场景的,但在某些情况下,我们可能需要使用 Spring AOP 范围外的某些 AOP 功能。例如 Spring AOP 仅支持执行公共(public)非静态方法的调用作为连接点,如果我们需要向受保护的(protected)或私有的(private)的方法进行增强,此时就需要使用功能更加全面的 AOP 框架来实现,其中使用最多的就是 Aspec原创 2022-05-18 19:32:58 · 385 阅读 · 0 评论 -
Spring JdbcTemplate(使用详解)
我们知道,JDBC 是 Java 提供的一种用于执行 SQL 语句的 API,可以对多种关系型数据库(例如 MySQL、Oracle 等)进行访问。但在实际的企业级应用开发中,却很少有人直接使用原生的 JDBC API 进行开发,这是因为使用 JDBC API 对数据库进行操作十分繁琐,需要我们对每一步都做到“步步把控,处处关心”,例如我们需要手动控制数据库连接的开启,异常处理、事务处理、最后还要手动关闭连接释放资源等等。Spring 提供了一个 Spring JDBC 模块,它对 JDBC API 进原创 2022-05-19 11:19:16 · 5390 阅读 · 0 评论 -
Spring使用AspectJ进行AOP开发(基于XML)
我们可以在 Spring 项目中通过 XML 配置,对切面(Aspect 或 Advisor)、切点(PointCut)以及通知(Advice)进行定义和管理,以实现基于 AspectJ 的 AOP 开发。Spring 提供了基于 XML 的 AOP 支持,并提供了一个名为“aop”的命名空间,该命名空间提供了一个 aop:config 元素。在 Spring 配置中,所有的切面信息(切面、切点、通知)都必须定义在 aop:config 元素中;在 Spring 配置中,可以使用多个 aop:conf原创 2022-05-18 19:33:51 · 421 阅读 · 0 评论 -
Spring MVC是什么
Spring MVC 是 Spring 提供的一个基于 MVC 设计模式的轻量级 Web 开发框架,本质上相当于 Servlet。Spring MVC 是结构最清晰的 Servlet+JSP+JavaBean 的实现,是一个典型的教科书式的 MVC 构架,不像 Struts 等其它框架都是变种或者不是完全基于 MVC 系统的框架。Spring MVC 角色划分清晰,分工明细,并且和 Spring 框架无缝结合。Spring MVC 是当今业界最主流的 Web 开发框架,以及最热门的开发技能。在 Spr原创 2022-05-19 11:32:20 · 102 阅读 · 0 评论 -
Spring基于XML实现事务管理
Spring 声明式事务管理是通过 AOP 实现的,其本质是对方法前后进行拦截,然后在目标方法开始之前创建(或加入)一个事务,在执行完目标方法后,根据执行情况提交或者回滚事务。声明式事务最大的优点就是对业务代码的侵入性低,可以将业务代码和事务管理代码很好地进行解耦。Spring 实现声明式事务管理主要有 2 种方式:基于 XML 方式的声明式事务管理。通过 Annotation 注解方式的事务管理。下面介绍如何通过 XML 的方式实现声明式事务管理,步骤如下。引入 tx 命名空间Spring原创 2022-05-19 11:23:54 · 676 阅读 · 0 评论 -
Spring MVC视图解析器(ViewResolver)
视图解析器(ViewResolver)是 Spring MVC 的重要组成部分,负责将逻辑视图名解析为具体的视图对象。Spring MVC 提供了很多视图解析类,其中每一项都对应 Java Web 应用中特定的某些视图技术。下面介绍一些常用的视图解析类。URLBasedViewResolverUrlBasedViewResolver 是对 ViewResolver 的一种简单实现,主要提供了一种拼接 URL 的方式来解析视图。UrlBasedViewResolver 通过 prefix 属性指定前缀原创 2022-05-20 19:28:35 · 331 阅读 · 0 评论 -
Spring AOP编程(十分详细)
Spring AOP 是 Spring 框架的核心模块之一,它使用纯 Java 实现,因此不需要专门的编译过程和类加载器,可以在程序运行期通过代理方式向目标类织入增强代码。Spring AOP 的代理机制Spring 在运行期会为目标对象生成一个动态代理对象,并在代理对象中实现对目标对象的增强。Spring AOP 的底层是通过以下 2 种动态代理机制,为目标对象(Target Bean)执行横向织入的。注意:由于被标记为 final 的方法是无法进行覆盖的,因此这类方法不管是通过 JDK 动态代原创 2022-05-18 19:31:12 · 388 阅读 · 0 评论 -
Spring MVC执行流程
在学习框架之前,首先来了解一下 Spring MVC 框架的整体请求流程和使用到的 API 类。Spring MVC 框架是高度可配置的,包含多种视图技术,例如 JSP、FreeMarker、Tiles、iText 和 POI。Spring MVC 框架并不关心使用的视图技术,也不会强迫开发者只使用 JSP。Spring MVC 执行流程Spring MVC 执行流程如图 1 所示。SpringMVC 的执行流程如下。用户点击某个请求路径,发起一个 HTTP request 请求,该请求会被提交原创 2022-05-20 19:32:39 · 82 阅读 · 0 评论 -
Spring MVC拦截器(Interceptor)
在系统中,经常需要在处理用户请求之前和之后执行一些行为,例如检测用户的权限,或者将请求的信息记录到日志中,即平时所说的“权限检测”及“日志记录”。当然不仅仅这些,所以需要一种机制,拦截用户的请求,在请求的前后添加处理逻辑。Spring MVC 提供了 Interceptor 拦截器机制,用于请求的预处理和后处理。在开发一个网站时可能有这样的需求:某些页面只希望几个特定的用户浏览。对于这样的访问权限控制,应该如何实现呢?拦截器就可以实现上述需求。在 Struts2 框架中,拦截器是其重要的组成部分,Spr原创 2022-05-26 21:39:35 · 199 阅读 · 0 评论 -
Spring MVC @Autowired和@Service注解
将依赖注入到 Spring MVC 控制器时需要用到 @Autowired 和 @Service 注解。@Autowired 注解属于 org.springframework.beans.factory. annotation 包,可以对类成员变量、方法及构造函数进行标注,完成自动装配的工作。@Service 注解属于 org.springframework.stereotype 包,会将标注类自动注册到 Spring 容器中。在配置文件中需要添加 元素来扫描依赖基本包。<context:c原创 2022-05-20 19:37:46 · 1375 阅读 · 0 评论 -
Spring MVC数据格式化(Formatter)
Spring MVC 框架的 Formatter 与 Converter<S, T> 一样,也是一个可以将一种数据类型转换成另一种数据类型的接口。不同的是,Formatter 的源类型必须是 String 类型,而 Converter 的源类型可以是任意数据类型。Formatter 更适合 Web 层,而 Converter 可以在任意层中。所以对于需要转换表单中的用户输入的情况,应该选择 Formatter,而不是 Converter。在 Web 应用中由 HTTP 发送的请求数据到控制器中原创 2022-05-20 19:42:01 · 305 阅读 · 2 评论 -
Spring Boot starter入门
传统的 Spring 项目想要运行,不仅需要导入各种依赖,还要对各种 XML 配置文件进行配置,十分繁琐,但 Spring Boot 项目在创建完成后,即使不编写任何代码,不进行任何配置也能够直接运行,这都要归功于 Spring Boot 的 starter 机制。本节我们将对 stater 进行介绍。starterSpring Boot 将日常企业应用研发中的各种场景都抽取出来,做成一个个的 starter(启动器),starter 中整合了该场景下各种可能用到的依赖,用户只需要在 Maven 中引入原创 2022-05-26 21:57:19 · 102 阅读 · 0 评论 -
Spring MVC JSON数据交互
Spring MVC 在数据绑定的过程中需要对传递数据的格式和类型进行转换,它既可以转换 String 等类型的数据,也可以转换 JSON 等其他类型的数据。本节将针对 Spring MVC 中 JSON 类型的数据交互进行讲解。JSON 概述JSON(JavaScript Object Notation, JS 对象标记)是一种轻量级的数据交换格式。与 XML 一样,JSON 也是基于纯文本的数据格式。它有对象结构和数组结构两种数据结构。1)对象结构对象结构以{开始、以}结束,中间部分由 0 个或原创 2022-05-26 21:36:51 · 366 阅读 · 0 评论 -
Spring MVC @Controller和@RequestMapping注解
Spring 2.5 版本新增了 Spring MVC 注解功能,用于替换传统的基于 XML 的 Spring MVC 配置。在《[第一个Spring MVC应用]》一节中创建了两个传统风格的控制器,它们是实现 Controller 接口的类。传统风格的控制器不仅需要在配置文件中部署映射,而且只能编写一个处理方法,不够灵活。使用基于注解的控制器具有以下 2 个优点:在基于注解的控制器类中可以编写多个处理方法,进而可以处理多个请求(动作),这就允许将相关的操作编写在同一个控制器类中,从而减少控制器类的原创 2022-05-20 19:34:23 · 312 阅读 · 0 评论 -
Spring MVC类型转换器(Converter)
Spring MVC 框架的 Converter<S,T> 是一个可以将一种数据类型转换成另一种数据类型的接口,这里 S 表示源类型,T 表示目标类型。开发者在实际应用中使用框架内置的类型转换器基本上就够了,但有时需要编写具有特定功能的类型转换器。例如,用户输入的日期可能有许多种形式,如“December 25,2014”“12/25/2014”和“2014-12-25”,这些都表示同一个日期。默认情况下,Spring 会期待用户输入的日期样式与当前语言区域的日期样式相同。例如,对于美国的用户原创 2022-05-20 19:41:00 · 507 阅读 · 0 评论 -
Spring MVC数据格式化(Formatter)
Spring MVC 框架的 Formatter 与 Converter<S, T> 一样,也是一个可以将一种数据类型转换成另一种数据类型的接口。不同的是,Formatter 的源类型必须是 String 类型,而 Converter 的源类型可以是任意数据类型。Formatter 更适合 Web 层,而 Converter 可以在任意层中。所以对于需要转换表单中的用户输入的情况,应该选择 Formatter,而不是 Converter。在 Web 应用中由 HTTP 发送的请求数据到控制器中原创 2022-05-20 19:42:01 · 209 阅读 · 0 评论 -
Spring MVC文件上传
Spring MVC 框架的文件上传基于 commons-fileupload 组件,并在该组件上做了进一步的封装,简化了文件上传的代码实现,取消了不同上传组件上的编程差异。MultipartResolver接口在 Spring MVC 中实现文件上传十分容易,它为文件上传提供了直接支持,即 MultpartiResolver 接口。MultipartResolver 用于处理上传请求,将上传请求包装成可以直接获取文件的数据,从而方便操作。MultpartiResolver 接口有以下两个实现类:S原创 2022-05-26 21:46:43 · 112 阅读 · 0 评论 -
Spring MVC重定向和转发
Spring MVC 请求方式分为转发、重定向 2 种,分别使用 forward 和 redirect 关键字在 controller 层进行处理。重定向是将用户从当前处理请求定向到另一个视图(例如 JSP)或处理请求,以前的请求(request)中存放的信息全部失效,并进入一个新的 request 作用域;转发是将用户对当前处理的请求转发给另一个视图或处理请求,以前的 request 中存放的信息不会失效。转发是服务器行为,重定向是客户端行为。1)转发过程客户浏览器发送 http 请求,Web 服原创 2022-05-20 19:36:25 · 1926 阅读 · 1 评论 -
Spring MVC REST风格
REST(Representational State Transfer)即表述性转移,是目前最流行的一种软件架构风格。它结构清晰、易于理解、有较好的扩展性。REST 概念较为复杂,我们不过多解释,大家简单了解 Spring MVC 的 REST 风格的简单使用即可。Spring REST 风格可以简单理解为:使用 URL 表示资源时,每个资源都用一个独一无二的 URL 来表示,并使用 HTTP 方法表示操作,即准确描述服务器对资源的处理动作(GET、POST、PUT、DELETE),实现资源的增删改查原创 2022-05-26 21:43:10 · 144 阅读 · 0 评论 -
Spring MVC异常处理
在 Spring MVC 应用的开发中,不管是操作底层数据库,还是业务层或控制层,都会不可避免地遇到各种可预知的、不可预知的异常。我们需要捕捉处理异常,才能保证程序不被终止。Spring MVC 有以下 3 种处理异常的方式:使用 Spring MVC 提供的简单异常处理器 SimpleMappingExceptionResolver。实现 Spring 的异常处理接口 HandlerExceptionResolver,自定义自己的异常处理器。使用 @ExceptionHandler 注解实现异常处原创 2022-05-26 21:41:40 · 87 阅读 · 0 评论 -
Spring MVC @ModelAttribute注解
本文介绍在 Spring MVC 中非常重要的注解 @ModelAttribute,用来将请求参数绑定到 Model 对象。在 Controller 中使用 @ModelAttribute 时,有以下几种应用情况。应用在方法上应用在方法的参数上应用在方法上,并且方法也使用了 @RequestMapping需要注意的是,因为模型对象要先于 controller 方法之前创建,所以被 @ModelAttribute 注解的方法会在 Controller 每个方法执行之前都执行。因此一个 Control原创 2022-05-20 19:39:19 · 797 阅读 · 0 评论 -
YAML教程(快速入门版)
Spring Boot 提供了大量的自动配置,极大地简化了spring 应用的开发过程,当用户创建了一个 Spring Boot 项目后,即使不进行任何配置,该项目也能顺利的运行起来。当然,用户也可以根据自身的需要使用配置文件修改 Spring Boot 的默认设置。SpringBoot 默认使用以下 2 种全局的配置文件,其文件名是固定的。application.propertiesapplication.yml其中,application.yml 是一种使用 YAML 语言编写的文件,它与 a原创 2022-05-26 22:03:14 · 256 阅读 · 0 评论 -
Spring MVC表单标签库
我们在进行 Spring MVC 项目开发时,一般会使用 EL 表达式和 JSTL 标签来完成页面视图的开发。其实 Spring 也有自己的一套表单标签库,通过 Spring 表单标签,可以很容易地将模型数据中的命令对象绑定到 HTML 表单元素中。下面我们就通过一个示例来演示该标签库的用法。首先和 JSTL 标签的使用方法相同,在使用 Spring 表单标签之前,必须在 JSP 页面开头处声明 taglib 指令,指令代码如下。<%@ taglib prefix=“fm” uri=“http:/原创 2022-05-25 15:55:04 · 312 阅读 · 0 评论 -
IDEA创建Spring Boot项目
本节,我们将为您详细讲解如何使用 IDEA 创建一个 Spring Boot 项目。配置开发环境在使用 Spring Boot 进行开发之前,第一件事就是配置好开发环境。这里我们以 Windows 操作系统为例,如果您使用的是其他操作系统,请对照其相关设置进行操作。工欲善其事,必先利其器,IDE(集成开发环境)的选择相当重要,目前市面上有很多优秀的 IDE 开发工具,例如 IntelliJ IDEA、Spring Tools、Visual Studio Code 和 Eclipse 等等,那么我们该如原创 2022-05-26 21:55:41 · 285 阅读 · 0 评论 -
Spring MVC传递参数
Spring MVC Controller 接收请求参数的方式有很多种,有的适合 get 请求方式,有的适合 post 请求方式,有的两者都适合。主要有以下几种方式:通过实体 Bean 接收请求参数通过处理方法的形参接收请求参数通过 HttpServletRequest 接收请求参数通过 @PathVariable 接收 URL 中的请求参数通过 @RequestParam 接收请求参数通过 @ModelAttribute 接收请求参数下面分别介绍这些方式,读者可以根据实际情况选择合适的接原创 2022-05-20 19:35:54 · 344 阅读 · 0 评论 -
Spring MVC文件下载
顾名思义,文件下载就是将服务器中的文件下载到本地,下面主要介绍 Spring MVC 文件下载的实现方法和实现过程。文件下载的实现方法文件下载有以下两种实现方法:1、通过超链接实现下载:实现简单,但暴露了下载文件的真实位置,并且只能下载 Web 应用程序所在目录下的文件,WEB-INF 目录除外。2、利用程序编码实现下载:增强安全访问控制,可以下载除 Web 应用程序所在目录以外的文件,也可以将文件保存到数据库中。利用程序编码实现下载需要设置以下两个报头:1、Web 服务器需要告诉浏览器其所输出原创 2022-05-26 21:49:25 · 447 阅读 · 0 评论 -
Spring Boot是什么
众所周知 Spring 应用需要进行大量的配置,各种 XML 配置和注解配置让人眼花缭乱,且极容易出错,因此 Spring 一度被称为“配置地狱”。为了简化 Spring 应用的搭建和开发过程,Pivotal 团队在 Spring 基础上提供了一套全新的开源的框架,它就是 Spring Boot。Spring Boot 具有 Spring 一切优秀特性,Spring 能做的事,Spring Boot 都可以做,而且使用更加简单,功能更加丰富,性能更加稳定而健壮。随着近些年来微服务技术的流行,Spring原创 2022-05-26 21:51:26 · 91 阅读 · 0 评论