Spring
文章平均质量分 88
youandme520
这个作者很懒,什么都没留下…
展开
-
spring项目启动时执行任务
在我们写代码的时候,很多时候难免碰到一些需求是需要我们在项目启动的时候来 启动线程/读取缓存/开启某个服务等等操作,这时候难免会犹豫该怎么做,究竟在哪里执行这个操作?是加载spring bean的时候?还是项目刚启动的时候?接下来我会介绍几种方法来实现spring项目启动时执行任务。假设一个简单的需求,在项目启动时需要把产品的编号与对应的产品名称缓存到一个Map里面,程序中要用的时候就直接从这个Map里面拿。先上代码再来分析: 在使用缓存的时候直接调用getProduct(int num)即可,在代转载 2022-08-15 20:06:25 · 2206 阅读 · 2 评论 -
SpringBoot 上传excel文件并处理,包括大批量数据文件
这是因为的HSSXSS类只能支持10000000长度的字符串处理,那么这里我们就要换一种poi的处理方式。前面提供了一种excel文件上传服务器后端处理的防范。但是指适用于10m以内的文件使用。普通小文件前端使用了vue带ajaxPost将文件转码base64Str字符串的方式来传送文件到后端服务器上。这里是将excel格式文件转换层xml来处理对于有兴趣了解xlsx文件格式的朋友可以深入了解一下期原理。这样文件就传到服务器后端进行业务逻辑处理了。......原创 2022-07-23 22:29:15 · 3577 阅读 · 3 评论 -
spring boot + mybatis + maven 构建新工程
公司转型,新项目需要用java作为老员工,也只能转型了,最近开始重新捡起java多年不碰了新构架新的开始。至少jdbchss还会学一下新框架springboot,mybatis吧,maven是真好用啊。新构架在磕磕绊绊中基本入门了。时间有限就不深入研究了。等有空了去看看构架的文档吧,反正常用的功能都能用了可以开始开发web项目了。开工咯。遇到坑在学校总结吧。httpshttpshttpshttpshttpshttpshttpshttpshttps。...原创 2022-07-17 12:52:06 · 1215 阅读 · 0 评论 -
springboot 连接 sqlserver2016 时遇到驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接”错误
在使用Open JDK 17,SQL Server 2016,springboot,Mybatis 项目中使用操作数据库。测试环境连接数据库的时候出现如题所示“驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接”错误,解决方案参考StackOverflow。1)打开JAVA_HOME/conf/security/java.security2)查询jdk.tls.disabledAlgorithms3)修改jdk.tls.disabledAlgorithms=SSLv3,原创 2022-07-07 20:34:30 · 1320 阅读 · 0 评论 -
Spring Boot自定义starter
starter 是 SpringBoot 中一种非常重要的机制,它可以繁杂的配置统一集成到 starter 中,我们只需要通过 maven 将 starter 依赖引入到项目中,SpringBoot 就能自动扫描并加载相应的默认配置。starter 的出现让开发人员从繁琐的框架配置中解放出来,将更多的精力专注于业务逻辑的开发,极大的提高了开发效率。在一些特殊情况下,我们也可以将一些通用功能封装成自定义的 starter 进行使用,本节我们将为您详细介绍如何自定义 starter。命名规范Sprin转载 2022-02-12 16:03:30 · 390 阅读 · 0 评论 -
Spring Boot整合MyBatis
MyBatis 是一个半自动化的 ORM 框架,所谓半自动化是指 MyBatis 只支持将数据库查出的数据映射到 POJO 实体类上,而实体到数据库的映射则需要我们自己编写 SQL 语句实现,相较于Hibernate 这种完全自动化的框架,Mybatis 更加灵活,我们可以根据自身的需求编写 sql 语句来实现复杂的数据库操作。随着 Spring Boot 越来越流行,越来越多的被厂商及开发者所认可,MyBatis 也开发了一套基于 Spring Boot 模式的 starter:mybatis-spri转载 2022-02-12 15:36:42 · 128 阅读 · 0 评论 -
Spring Boot整合Druid数据源
Spring Boot 2.x 默认使用 HikariCP 作为数据源,我们只要在项目中导入了 Spring Boot 的 JDBC 场景启动器,便可以使用 HikariCP 数据源获取数据库连接,对数据库进行增删改查等操作。HikariCP 是目前市面上性能最好的数据源产品,但在实际的开发过程中,企业往往更青睐于另一款数据源产品:Druid,它是目前国内使用范围最广的数据源产品。Druid 是阿里巴巴推出的一款开源的高性能数据源产品,Druid 支持所有 JDBC 兼容的数据库,包括 Oracle、M转载 2022-02-12 15:12:32 · 1267 阅读 · 0 评论 -
Spring Boot数据源配置原理
在数据库访问过程中,“数据源”无疑是最重要的概念之一,它不仅可以对与数据库访问相关的各种参数进行封装和统一管理,还可以管理数据库连接池,提高数据库连接性能。目前,在市面上有很多优秀的开源数据源,例如 DBCP、C3P0、Druid、HikariCP 等等。在 Spring Boot 2.x 中,则采用目前性能最佳的 HikariCP 作为其默认数据源。接下来,我们就来具体介绍下 Spring Boot 的默认数据源配置及其原理。DataSourceAutoConfiguration我们知道,Spr转载 2022-02-12 14:05:54 · 461 阅读 · 0 评论 -
Spring Boot JDBC访问数据库
对于数据访问层,无论是 SQL(关系型数据库) 还是 NOSQL(非关系型数据库),Spring Boot 都默认采用整合 Spring Data 的方式进行统一处理,通过大量自动配置,来简化我们对数据访问层的操作,我们只需要进行简单的设置即可实现对书层的访问。本节,我们将学习如何在 Spring Boot 中使用 JDBC 进行数据访问。导入 JDBC 场景启动器Spring Boot 将日常企业应用研发中的各种场景都抽取出来,做成一个个的场景启动器(Starter),场景启动器中整合了该场景下各转载 2022-02-12 10:58:49 · 280 阅读 · 0 评论 -
Spring Boot注册Web原生组件(Servlet、Filter、Listener)
由于 Spring Boot 默认以 Jar 包方式部署的,默认没有 web.xml,因此无法再像以前一样通过 web.xml 配置来使用 Servlet 、Filter、Listener,但 Spring Boot 提供了 2 种方式来注册这些 Web 原生组件。通过组件扫描注册使用 RegistrationBean 注册通过组件扫描注册Servlet 3.0 提供了以下 3 个注解:@WebServlet:用于声明一个 Servlet; @WebFilter:用于声明一个 Filter转载 2022-02-11 21:57:33 · 200 阅读 · 0 评论 -
Spring Boot全局异常处理
我们知道 Spring Boot 已经提供了一套默认的异常处理机制,但是 Spring Boot 提供的默认异常处理机制却并不一定适合我们实际的业务场景,因此,我们通常会根据自身的需要对 Spring Boot 全局异常进行统一定制,例如定制错误页面,定制错误数据等。定制错误页面我们可以通过以下 3 种方式定制 Spring Boot 错误页面:自定义error.html 自定义动态错误页面 自定义静态错误页面自定义 error.html我们可以直接在模板引擎文件夹(/resourc.转载 2022-02-11 21:24:48 · 349 阅读 · 0 评论 -
Spring Boot默认异常处理
在日常的 Web 开发中,会经常遇到大大小小的异常,此时往往需要一个统一的异常处理机制,来保证客户端能接收较为友好的提示。Spring Boot 同样提供了一套默认的异常处理机制,本节将对它进行详细的介绍。Spring Boot 默认异常处理机制Spring Boot 提供了一套默认的异常处理机制,一旦程序中出现了异常,Spring Boot 会自动识别客户端的类型(浏览器客户端或机器客户端),并根据客户端的不同,以不同的形式展示异常信息。1. 对于浏览器客户端而言,Spring Boot 会响应转载 2022-02-11 20:42:08 · 436 阅读 · 0 评论 -
Spring Boot拦截器精讲
我们对拦截器并不陌生,无论是 Struts 2 还是 Spring MVC 中都提供了拦截器功能,它可以根据 URL 对请求进行拦截,主要应用于登陆校验、权限验证、乱码解决、性能监控和异常处理等功能上。Spring Boot 同样提供了拦截器功能。在 Spring Boot 项目中,使用拦截器功能通常需要以下 3 步:定义拦截器; 注册拦截器; 指定拦截规则(如果是拦截所有,静态资源也会被拦截)。定义拦截器在 Spring Boot 中定义拦截器十分的简单,只需要创建一个拦截器类,并实现..转载 2022-02-10 16:29:46 · 245 阅读 · 0 评论 -
Spring Boot国际化
国际化(Internationalization 简称 I18n,其中“I”和“n”分别为首末字符,18 则为中间的字符数)是指软件开发时应该具备支持多种语言和地区的功能。换句话说就是,开发的软件需要能同时应对不同国家和地区的用户访问,并根据用户地区和语言习惯,提供相应的、符合用具阅读习惯的页面和数据,例如,为中国用户提供汉语界面显示,为美国用户提供提供英语界面显示。在 Spring 项目中实现国际化,通常需要以下 3 步:编写国际化资源(配置)文件; 使用 ResourceBundleMessag转载 2022-02-10 16:24:00 · 3403 阅读 · 0 评论 -
Spring Boot整合Thymeleaf
Spring Boot 推荐使用 Thymeleaf 作为其模板引擎。SpringBoot 为 Thymeleaf 提供了一系列默认配置,项目中一但导入了 Thymeleaf 的依赖,相对应的自动配置 (ThymeleafAutoConfiguration 或 FreeMarkerAutoConfiguration) 就会自动生效,因此 Thymeleaf 可以与 Spring Boot 完美整合 。Spring Boot 整合 Thymeleaf 模板引擎,需要以下步骤:引入 Starter 依赖转载 2022-02-10 16:15:09 · 430 阅读 · 0 评论 -
Thymeleaf教程(10分钟入门)
Thymeleaf 是一款用于渲染 XML/XHTML/HTML5 内容的模板引擎。它与 JSP,Velocity,FreeMaker 等模板引擎类似,也可以轻易地与 Spring MVC 等 Web 框架集成。与其它模板引擎相比,Thymeleaf 最大的特点是,即使不启动 Web 应用,也可以直接在浏览器中打开并正确显示模板页面 。1. Thymeleaf 简介Thymeleaf 是新一代 Java 模板引擎,与 Velocity、FreeMarker 等传统 Java 模板引擎不同,Thyme转载 2022-02-09 21:57:16 · 9657 阅读 · 0 评论 -
Spring Boot定制Spring MVC
Spring Boot 抛弃了传统 xml 配置文件,通过配置类(标注 @Configuration 的类,相当于一个 xml 配置文件)以 JavaBean 形式进行相关配置。Spring Boot 对 Spring MVC 的自动配置可以满足我们的大部分需求,但是我们也可以通过自定义配置类(标注 @Configuration 的类)并实现 WebMvcConfigurer 接口来定制 Spring MVC 配置,例如拦截器、格式化程序、视图控制器等等。SpringBoot 1.5 及以前是.转载 2022-02-09 21:24:21 · 392 阅读 · 1 评论 -
Spring Boot静态资源映射
在 Web 应用中会涉及到大量的静态资源,例如 JS、CSS 和 HTML 等。我们知道,Spring MVC 导入静态资源文件时,需要配置静态资源的映射;但在 SpringBoot 中则不再需要进行此项配置,因为 SpringBoot 已经默认完成了这一工作。Spring Boot 默认为我们提供了 3 种静态资源映射规则:WebJars 映射 默认资源映射 静态首页(欢迎页)映射WebJars 映射为了让页面更加美观,让用户有更多更好的体验,Web 应用中通常会使用大量的 JS 和 CS转载 2022-02-09 09:12:58 · 3319 阅读 · 0 评论 -
spring-boot-starter-web(Web启动器)
Spring MVC 是 Spring 提供的一个基于 MVC 设计模式的轻量级 Web 开发框架,其本身就是 Spring 框架的一部分,可以与 Spring 无缝集成,性能方面具有先天的优越性,是当今业界最主流的 Web 开发框架之一。Spring Boot 是在 Spring 的基础上创建一款开源框架,它提供了 spring-boot-starter-web(Web 场景启动器) 来为 Web 开发予以支持。spring-boot-starter-web 为我们提供了嵌入的 Servlet 容器.转载 2022-02-09 08:59:29 · 16469 阅读 · 0 评论 -
Spring Boot日志配置及输出
通过上节的学习,我们了解了 Spring Boot 日志框架的选用及统一,本节我们将重点介绍 Spring Boot 日志的配置及输出。默认配置Spring Boot 默认使用 SLF4J+Logback 记录日志,并提供了默认配置,即使我们不进行任何额外配,也可以使用 SLF4J+Logback 进行日志输出。常见的日志配置包括日志级别、日志的输入出格式等内容。日志级别日志的输出都是分级别的,当一条日志信息的级别大于或等于配置文件的级别时,就对这条日志进行记录。常见的日志级别如下(优.转载 2022-02-09 08:51:46 · 8862 阅读 · 1 评论 -
maven学习笔记之 基于maven 部署 Spring MVC 项目
新建一个maven项目 一路next后在选择自己的maven时。默认的下载存储位置是在C盘,可以打开配置文件更改为自己的下载位置:在main文件夹下添加 java 和test文件夹 分别设置成打开pom.xml文件,添加各类依赖,将下面的代码复制到标签中(这些是我添加的依赖,做个参考),添加完成之后,等待maven将这些jar下载完毕,下载完成后,可以看到External Library下多了很多文件<properties> ...转载 2021-01-11 17:04:39 · 134 阅读 · 0 评论 -
Spring学习笔记之WEB MVC 框架例子
MVC 框架教程Spring web MVC 框架提供了模型-视图-控制的体系结构和可以用来开发灵活、松散耦合的 web 应用程序的组件。MVC 模式导致了应用程序的不同方面(输入逻辑、业务逻辑和 UI 逻辑)的分离,同时提供了在这些元素之间的松散耦合。 模型封装了应用程序数据,并且通常它们由 POJO 组成。 视图主要用于呈现模型数据,并且通常它生成客户端的浏览器可以解释的 HTML 输出。 控制器主要用于处理用户请求,并且构建合适的模型并将其传递到视图呈现。D...转载 2021-01-10 13:30:11 · 197 阅读 · 1 评论 -
Spring 学习笔记之事务管理
Spring 事务管理事务管理一个数据库事务是一个被视为单一的工作单元的操作序列。这些操作应该要么完整地执行,要么完全不执行。事务管理是一个重要组成部分,RDBMS 面向企业应用程序,以确保数据完整性和一致性。事务的概念可以描述为具有以下四个关键属性说成是ACID: 原子性:事务应该当作一个单独单元的操作,这意味着整个序列操作要么是成功,要么是失败的。 一致性:这表示数据库的引用完整性的一致性,表中唯一的主键等。 隔离性:可能同时处理很多有相同的数据集的事务,每个事务应该.转载 2021-01-10 12:03:03 · 104 阅读 · 0 评论 -
Spring 学习笔记之 JDBC 框架
JDBC 框架概述在使用普通的 JDBC 数据库时,就会很麻烦的写不必要的代码来处理异常,打开和关闭数据库连接等。但 Spring JDBC 框架负责所有的低层细节,从开始打开连接,准备和执行 SQL 语句,处理异常,处理事务,到最后关闭连接。所以当从数据库中获取数据时,你所做的是定义连接参数,指定要执行的 SQL 语句,每次迭代完成所需的工作。Spring JDBC 提供几种方法和数据库中相应的不同的类与接口。我将给出使用JdbcTemplate类框架的经典和最受欢迎的方法。这是管理所有数..转载 2021-01-06 16:54:38 · 216 阅读 · 0 评论 -
Spring 学习笔记 之 Spring 框架的 AOP
Spring 框架的 AOPSpring 框架的一个关键组件是面向方面的编程(AOP)框架。面向方面的编程需要把程序逻辑分解成不同的部分称为所谓的关注点。跨一个应用程序的多个点的功能被称为横切关注点,这些横切关注点在概念上独立于应用程序的业务逻辑。有各种各样的常见的很好的方面的例子,如日志记录、审计、声明式事务、安全性和缓存等。在 OOP 中,关键单元模块度是类,而在 AOP 中单元模块度是方面。依赖注入帮助你对应用程序对象相互解耦和 AOP 可以帮助你从它们所影响的对象中对横切关注点解耦。AOP转载 2021-01-06 16:04:46 · 115 阅读 · 0 评论 -
Spring 学习 之 事件处理
Spring 中的事件处理你已经看到了在所有章节中 Spring 的核心是ApplicationContext,它负责管理 beans 的完整生命周期。当加载 beans 时,ApplicationContext 发布某些类型的事件。例如,当上下文启动时,ContextStartedEvent 发布,当上下文停止时,ContextStoppedEvent 发布。通过 ApplicationEvent 类和 ApplicationListener 接口来提供在 ApplicationContext .转载 2021-01-05 16:07:40 · 125 阅读 · 0 评论 -
Spring 学习笔记 之 基于注解的配置
Spring 基于注解的配置基于注解的配置从 Spring 2.5 开始就可以使用注解来配置依赖注入。而不是采用 XML 来描述一个 bean 连线,你可以使用相关类,方法或字段声明的注解,将 bean 配置移动到组件类本身。在 XML 注入之前进行注解注入,因此后者的配置将通过两种方式的属性连线被前者重写。注解连线在默认情况下在 Spring 容器中不打开。因此,在可以使用基于注解的连线之前,我们将需要在我们的 Spring 配置文件中启用它。所以如果你想在 Spring 应用程序中使用的转载 2021-01-05 15:37:00 · 90 阅读 · 0 评论 -
Spring 学习笔记 之 自动装配
Spring 自动装配 byName这种模式由属性名称指定自动装配。Spring 容器看作 beans,在 XML 配置文件中 beans 的auto-wire属性设置为byName。然后,它尝试将它的属性与配置文件中定义为相同名称的 beans 进行匹配和连接。如果找到匹配项,它将注入这些 beans,否则,它将抛出异常。例如,在配置文件中,如果一个 bean 定义设置为自动装配byName,并且它包含spellChecker属性(即,它有一个setSpellChecker(...)...转载 2021-01-05 13:28:09 · 106 阅读 · 0 评论 -
Spring 学习之 依赖注入
Spring 依赖注入Spring框架的核心功能之一就是通过依赖注入的方式来管理Bean之间的依赖关系。依赖注入每个基于应用程序的 java 都有几个对象,由这些对象一起工作来呈现出终端用户所看到的工作的应用程序。当编写一个复杂的 Java 应用程序时,应用程序类应该尽可能独立于其他 Java 类来增加这些类重用的可能性,并且在做单元测试时,测试独立于其他类的独立性。依赖注入(或有时称为布线)有助于把这些类粘合在一起,同时保持他们独立。假设你有一个包含文本编辑器组件的应用程序,并且你想要提供转载 2021-01-05 12:34:35 · 112 阅读 · 0 评论 -
Spring 学习笔记之 IoC 容器
Spring BeanFactory 容器这是一个最简单的容器,它主要的功能是为依赖注入 (DI) 提供支持,这个容器接口在 org.springframework.beans.factory.BeanFactory中被定义。BeanFactory 和相关的接口,比如BeanFactoryAware、DisposableBean、InitializingBean,仍旧保留在 Spring 中,主要目的是向后兼容已经存在的和那些 Spring 整合在一起的第三方框架。在 Spring 中,有大量对 B转载 2021-01-04 20:28:38 · 118 阅读 · 0 评论 -
Spring 学习笔记一 环境搭建
第1步:安装jdk 从 Oracle 的 Java 网站Java SE Downloads下载 你所需要的 JDK 的最新版本各个操作系统的版本的jdk都有。下载好后安装然后将java目录写入环境变量中。如果你运行的是 Windows,并在=C:\Program Files\Java\jdk-15.0.1上安装了 JDK,你就可以把下面这行写入 C:\autoexec.bat 文件中。set PATH=C:\Program Files\Java\jdk-15.0.1...原创 2020-12-30 22:05:35 · 215 阅读 · 0 评论