SpringBoot-文件上传与下载
参考文献
大文件上传下载实现思路,分片、断点续传代码实现,以及webUpload组件
FileUpload
Web Uploader
准备工作
前端
WebUploader
WebUploader是由Baidu WebFE(FEX)团队开发的一个简单的以HTML5为主,FLASH为辅的现代文件上传组件。在现代的浏览器里面能充分发挥HTML5的优势,同时又不摒弃主流IE浏览器,沿用原来的FLASH运行时,兼容IE6+,iOS 6+, android 4+。两套运行时,同样的调用方式,可供用户任意选用。
采用大文件分片并发上传,极大的提高了文件上传效率。
需要下载WebUploader包
后端
SpringBoot 2.5.6
123456789101112131415161718192021222324252627<properties> <java.version>1.8</java.version> <commons.fileupload.version>1.4</commons.fileupl ...
SpringBoot-Flyway父子项目配置
参考文献
Migrating multiple schemas with distinct life-cycle using Flyway and Spring Boot
背景说明
由于公司架构升级,需要把部分组件抽离出来重构,需要抽离出一个所有组件的父组件项目来统一管理其他组件公共的功能模块或者依赖等.父组件项目由于有些配置项需要灵活配置,故而将这些配置项放入数据库表中进行管理.所以这边采用Flyway框架来管理这些SQL.
但由于父组件和子组件都需要使用Flyway框架,因此对此进行调查研究一下.
环境说明
父子项目A和B,A为父项目,B为子项目.
父子项目都为SpringBoot项目.
JDK版本为11
SpringBoot版本如下所示:
123456<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> &l ...
SpringBoot-缓存
参考文献
SpringBoot2 实战之旅
Spring Cache
Spring Cache是Spring3.1以后引入的新技术.
其核心思想是:当调用一个缓存方法时,会把该方法参数和返回值作为一个键值对存档在缓存中,等到下次利用同样的参数来调用该方法时将不再执行该方法,而是直接从缓存中获取结果进行返回,从实现缓存的功能.
12345678910111213141516171819202122232425262728<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-cache</artifactId></dependency><!-- redis --><dependency> <groupId>org.springframework.boot</groupId> <artifactId>sp ...
SpringBoot-整合SpringDataJPA+MyBatisPlus多数据源配置
参考文献
Springboot整合mybatis实现多数据源所遇到的问题
springboot + mybatis-plus 分包实现多数据源配置
required a bean of type ‘org.springframework.boot.orm.jpa.EntityManagerFactoryBuilder’ that could not be found
JPA之EntityManager踩坑及解决:更改PersistenceContext
背景
公司项目最初数据库访问层使用的是Spring Data JPA后期由于内部原因改换使用MyBatis Plus,由于业务需要对接第三方数据需要直接访问第三方的数据库,故而要配置MyBatis Plus多数据源.
环境以及项目技术栈
12SpringBoot 2.5.6MyBatis Plus 3.5.1
公共代码
Entity
123456789101112131415161718192021222324252627package com.holelin.mysql.entity;import lombok.Data;i ...
SpringBoot-整合Activiti7
参考文献
Acitvit6 User Guide
环境配置
框架版本
SpringBoot 2.5.7
SpringCloud 2020.0.3
activiti 7.1.0.M6
flyway 8.0.5
mysql 8.0.27
依赖信息
build.gradle配置(修改后的)
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697buildscript { ext { springBootVersion = '2.5.7' springCloudVersion = '2020.0.3' activitiVersion = "7.1 ...
SpringBoot-整合Logback
参考文献
SpringBoot配合logback达到日志切割管理通用配置
Logback and Spring Boot’s new springProperty lookup mechanism not working
基础知识
日志等级
1The value of the level attribute admitting one of the case-insensitive string values TRACE, DEBUG, INFO, WARN, ERROR, ALL or OFF.
日志级别由低到高TRACE, DEBUG, INFO, WARN, ERROR
遇到的问题
Logback and Spring Boot’s new springProperty lookup mechanism not working(springProperty不起作用)
Logback配置
Spring Boot官方文档指出,根据不同的日志系统,可以按照如下的日志配置
文件名就能够被正确加载,如下:
Logback :logback-spring.xml ...
SpringBoot-整合阿里企业邮箱
参考文献
企业云邮箱POP\SMTP\IMAP地址和端口信息
springboot 发送邮件 465端口
依赖
1234567891011121314151617181920212223<!-- <springboot.version>2.2.2.RELEASE</springboot.version>--><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> <version>${springboot.version}</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifac ...
SpringBoot-整合SpringBoot Security
参考文献
Spring Boot: 整合Spring Security
SpringSecurity登录原理(源码级讲解)
Spring Security前后端分离两种方案
spring security 在controller层 方法级别使用注解 @PreAuthorize(“hasRole(‘ROLE_xxx’)”)设置权限拦截 ,无权限则返回403
Spring-Security基于源码扩展-自定义登录(二十三)
基于SpringBoot2.2.2.RELEASE
依赖
1234// springboot_version= '2.2.2.RELEASE'implementation "org.springframework.boot:spring-boot-starter:$springboot_version"implementation "org.springframework.boot:spring-boot-starter-web:$springboot_version"implementation &quo ...
SpringBoot-注解@NestedConfigurationProperty
参考文献
示例
依赖
1implementation 'org.springframework.boot:spring-boot-configuration-processor:2.2.2.RELEASE'
JavaConfig:
12345678910111213141516import com.holelin.config.oss.AliYunConfigimport com.holelin.config.oss.MinioConfigimport org.springframework.boot.context.properties.ConfigurationPropertiesimport org.springframework.boot.context.properties.NestedConfigurationPropertyimport org.springframework.stereotype.Component@Component@ConfigurationProperties(prefix = "oss")open ...
SpringBoot中的跨域问题
SpringBoot中的跨域问题
参考文献
Spring Boot 中实现跨域的 5 种方式,你一定要知道!
浏览器的同源策略
详解跨域(最全的解决方案)
CORS
产生跨域问题的原因
主要原因: 浏览器的同源策略(Sameorigin Policy)
同源策略的作用: 同源策略是一个重要的安全策略,它用于限制一个origin的文档或者它加载的脚本如何能与另一个源的资源进行交互。它能帮助阻隔恶意文档,减少可能被攻击的媒介。
同源: 若两个URL的协议(protocol)[TCP.HTTP等],端口(port)和主机(host)[域名/IP地址等]都相同,则表示这两个URL是同源的.这个方案也被称为**“协议/主机/端口元组”**,或者直接是 “元组”。
非同源限制:
无法读取非同源网页的 Cookie、LocalStorage 和 IndexedDB;
无法接触非同源网页的 DOM;
无法向非同源地址发送 AJAX 请求;
跨域示例
跨域: 协议(protocol),端口(port),主机(host)三者之中任意一个不同,则会导致跨域;
下表给出了与 URL ...