
Spring Boot
文章平均质量分 92
蚩尤后裔-汪茂雄
朝为田舍郎,暮登天 子堂;将相本无种,男儿当自强。
展开
-
Java 控制 Windows 系统音量,Spring Boot Jar、war 包注册成 Windows 服务启动
目录Java 控制 Windows 系统音量1、使用 Java 来控制 Windows 系统音量,使用 JNA 调用 windows 底层 API 因为有点麻烦,所以这里采用纯 Java API 结合 VBS 脚本的方式进行控制。2、可以参考《VBS 控制 Windos 系统音量 及视频播放》,本文同样是利用 VBS 来控制,区别在于这里的 vbs 文件会用 Java 代码动态生成,灵...原创 2018-06-29 15:01:16 · 6182 阅读 · 18 评论 -
Java 资源文件读取方式汇总:Properties、ResourceBundle、ClassLoader、Resource、Hutool Setting、...
2、比如全世界都在用 weChat(微信),那么就需要有一个功能,对日本人显示的是日本文,对韩国人显示的是韩文,英国人显示英文,中国人显示中文,而 ResourceBundle 资源绑定就是解决这个问题,通过绑定不同的资源文件(即语言)来达到不同语言的显示。3、Properties 继承于 Hashtable,所以可对 Properties 对象应用 put 和 putAll 方法,但不建议使用这两个方法,因为它们允许调用者插入其键或值不是 String 的项,推荐使用 setProperty 方法。原创 2019-04-16 15:54:01 · 4404 阅读 · 2 评论 -
SpringBoot 应用常用工具类
主从复制(主从集群 )集群:多台计算机同时对外提供服务,从而达到负载均衡,理论概念可以参考《Nginx》。 主从复制是MongoDB最常用的复制方式,非常灵活,可用于备份、故障恢复、读扩展 等 。 最基本的设置方式就是建立一个主节点 和 一个及以上的从节点,每个从节点要知道主节点的地址(IP 与 端口)。MongoDB的复制至少需要两个服务器或者节点,其中一个作为主节点,负责处...原创 2018-09-14 16:22:39 · 1736 阅读 · 1 评论 -
Servlet HttpSession 与 Cookie,@RequestHeader 获取请求头、@CookieValue 获取 Cookie 值
HttpSession一次会话内,不管是重定向还是服务器端跳转,HttpSession 设置(setAttribute)的属性,其它任何 servlet、包括 jsp 页面中都能获取到值。 Method Description Object getAt...原创 2021-01-05 15:34:12 · 175 阅读 · 1 评论 -
Spring boot 默认Json库:Jackson 使用快速入门,格式化日期请求与响应
目录jackson 概述开发实战POJO 转 json 字符串json 字符串转 POJO手动创建 json 字符串Json 字符串转 Json 对象复合操作日期序列化jackson 概述1、市面上用于在 Java 中解析 Json 的第三方库,随便一搜不下几十种,其中的佼佼者有Google 的 Gson,Alibaba 的 Fastjson以及本文的...原创 2019-03-16 15:29:51 · 20276 阅读 · 2 评论 -
IDEA 部署 Web 应用为 war 包,Spring boot 引入外部Jar包
目录引 言IDEA 部署 web 应用为 war 包部署测试引 言1、一个 WAR 文件就是一个 Web 应用程序。建立 WAR 文件,就是把整个Web应用程序(不包括Web应用程序层次结构的根目录)压缩起来,指定一个.war扩展名。2、开发阶段不适合使用 WAR 文件,因为在开发阶段,经常需要添加或删除 Web 应用程序的内容,而每一次改动后,重新建立WAR 文件将是一件...原创 2019-05-13 11:08:29 · 3364 阅读 · 1 评论 -
Spring boot 跨域请求实现方式汇总
目录什么是跨域?常见跨域场景jsonp 跨域Jsonp - 前端 JavaScriptJsonp - 服务器Jsonp - 跨域测试Cors 跨域Cors - 前端 JavaScriptCors - 服务器Cors - 跨域测试Access-control-Allow-Origin 多域名设置什么是跨域?1、前后端数据交互经常会碰到请求跨域,...原创 2019-03-13 09:37:20 · 6091 阅读 · 2 评论 -
Redis 消息发布订阅 与 Spring boot 使用快速入门
目录Redis 发布订阅 命令Redis 发布订阅 命令命令 描述 Redis Unsubscribe 命令 指退订给定的频道。UNSUBSCRIBE channel [channel ...] Redis Subscribe 命令 订阅给定的一个或多个频道的信息。SUBSCRIBE channel [channel ...] Redis Pubsub 命令 查看订阅与发布系统状态。PUBSUB <subcommand> [argument [ar原创 2022-05-15 16:30:53 · 3901 阅读 · 0 评论 -
Spring Boot + hibernate validation 实现各种 web 参数校验二
目录@Valid 与 @Validated 的区别校验快速失败(Fail Fast)如果 spring-boot 版本小于 2.3.x,则 spring-boot-starter-web 会自动依赖 hibernate-validator,否则如果 spring-boot 版本大于 2.3.x,则需要手动引入依赖:<!--可以单独引用 hibernate-validator 依赖,或者直接引用 spring-boot-starter-validation 依赖--><.原创 2021-12-29 19:38:20 · 2278 阅读 · 0 评论 -
RedisTemplate 切换 Jedis 实现 以及 Jedis 常用 API
目录RedisTemplate 切换 Jedis 实现使用底层 Jedis API 操作 RedisRedisTemplate 切换 Jedis 实现1、Spring Boot 为 Lettuce 和 Jedis 客户端库提供基本的自动配置,默认情况下,使用 Lettuce 作为客户端,如果想要切换 Jedis 客户端,则分为如下两步:一:切换依赖:排除掉 spring-boot-starter-data-redis 中默认的 lettuce 依赖,然后引入 jedis 依赖。原创 2021-11-28 11:22:48 · 4404 阅读 · 0 评论 -
IDEA + Spring Boot 多模块项目搭建
目录环境介绍创建父工程创建子模块环境介绍1、开发环境:IDEA + Java JDK 1.8 + Spring boot 2.3.5.RELEASE2、多模块项目目录结构:请求控制层(controller),业务逻辑层(server),数据持久层(dao)。创建父工程1、创建父工程:File -> New -> Project...,选择 Spring Initializr -> Next -> 填写项目信息 -> Next -> 依赖先不原创 2021-11-07 11:23:11 · 6753 阅读 · 2 评论 -
Spring Boot 2.x 集成 SLF4j + log4j2 日志框架
目录Apache log4j2 日志框架概述Spring Boot 2.x 集成 SLF4j + log4j2 日志框架Apache log4j2 日志框架概述1、log4j2 在目前 JAVA 中的日志框架里,异步日志的性能是最高的,没有之一。2、从2.6版本开始 log4j2 默认就以零 GC 模式运行,即不会由于 log4j2 而导致 GC,log4j2 中各种 Message对象,字符串数组,字节数组等全部复用,不重复创建,大大减少了无用对象的创建,从而做到“零GC”。3、L原创 2021-06-06 19:09:27 · 6015 阅读 · 2 评论 -
Spring Boot 服务优雅关闭/下线方式汇总, Spring Boot 打包排除指定文件
目录Actuator shutdown 优雅关闭服务ConfigurableApplicationContext 关闭服务1、使用 Spring Boot 服务时,都要涉及到服务的停止和启动,停止服务很多时候大家都是 kill -9 暴力杀掉进程,而很多时候都需要安全的将服务停止,把没有处理完的工作继续处理完成,比如停止一些依赖的服务,输出一些日志,发一些信号给其他的应用系统等等,这在保证系统的高可用是非常有必要的。2、为了能明显看到服务关闭,在启动类中加上 @PreDestroy 标识的.原创 2020-10-19 19:54:37 · 5372 阅读 · 0 评论 -
Spring boot 启动时 Validation 校验属性、AntPathMatcher通配符规则
目录Spring boot 增加启动校验 @ValidationValidator 自定义校验规则Spring boot 增加启动校验 @Validation1、@Value 注入属性值时,在项目开发过程中,某个功能需要依赖在配置文件中配置的参数。这时候就可能出现下面这种现象问题:有时候经常出现项目启动了,等到使用某个功能组件的时候出现异常,提示参数未配置或者bean注入失败。有没有一种方法在项目启动时就对参数进行校验而不是在实际使用的时候再抛出提示呢?答案就是使用Sprin原创 2020-09-05 09:56:55 · 2266 阅读 · 0 评论 -
Spring boot 启动监听器 SpringApplicationRunListener、ApplicationRunner、CommandLineRunner
目录SpringApplicationRunListener 概述SpringApplicationRunListener 使用SpringApplicationRunListener 概述1、org.springframework.boot.SpringApplicationRunListener 监听器用于监听Spring Boot 启动过程中的不同时刻,从而可以加入自己的业务代码。2、SpringApplicationRunListener 源码如下,方法执行的优先级从上到下是由.原创 2020-06-26 18:00:11 · 1570 阅读 · 1 评论 -
@Conditional 条件注解、debug 自动配置报告
目录@ConditionalOnProperty 概述@ConditionalOnProperty 概述1、Spring Boot 通过 @ConditionalOnProperty 来控制 @Configuration 配置类是否生效。有属性如下:String[] value() default {} name 属性的别名,与 name 不可同时使用,二者选其一。 String prefix() default "" 属性名称的前缀。 String[] name()..原创 2020-09-26 19:09:18 · 1204 阅读 · 1 评论 -
Spring JdbcTemplate 与原生 JDBC 调用 Oracle 存储过程/存储函数,Oracle Java 驱动下载
目录前 言调用无返回值的存储过程调用单个返回值的存储过程调用多个返回值的存储过程前 言1、关于 JdbcTemplate 的介绍、pom 依赖、DI 注入可以参考《Spring JdbcTemplate 模板剖析 之 常用 增删改查》,本文继续介绍 JdbcTemplate 调用数据库的存储过程,虽然 Mysql 也有存储过程,但是为了尽可能的多覆盖一点,本文选择调用 .........原创 2020-03-28 21:12:43 · 6313 阅读 · 1 评论 -
Spring JdbcTemplate 模板剖析 之 常用 增删改查
目录JdbcTemplate 概述 与 环境准备JdbcTemplate 常用 CRUD增删改、删表、建表查询、模糊、分页JdbcTemplate 概述 与 环境准备1、Spring 对数据库的操作在 jdbc 上面做了简单的封装(类似 DBUtils),使用 spring 的注入功能,可以把 DataSource 注册到 JdbcTemplate 之中。2、org.s...原创 2019-07-18 08:18:25 · 3544 阅读 · 1 评论 -
Spring Boot @ServletComponentScan 扫描 @WebServlet、@WebFilter(过滤器)、@WebListener(过滤器)
1、Servlet 三大组件 Servlet、Filter、Listener 在传统项目中需要在 web.xml 中进行相应的配置。Servlet 3.0 开始在 javax.servlet.annotation 包下提供 3 个对应的 @WebServlet、@WebFilter、@WebListener 注解来简化操作。2、@WebServlet、@WebFilter、@WebListen...原创 2020-01-03 17:26:11 · 9562 阅读 · 0 评论 -
RedisTemplate 常用方法,序列化方式,分布式锁,工具类封装、商品秒杀、禁用Keys推荐Scan
目录RedisTemplate 常用方法RedisTemplate 序列化方式RedisTemplate 常用方法org.springframework.data.redis.core.RedisTemplate 常用方法(本文环境 Spring Boot 2.1.3):方法 描述 Boolean expire(K key, final long timeout, f...原创 2020-01-03 18:42:09 · 6598 阅读 · 1 评论 -
RedisTemplate 概述 与 操作 Redis 5 种数据类型、事务
目录RedisTemplate 概述 与 redis 配置RedisTemplate 使用演示字符串(String)列表(List)哈希(Hash)集合(Set)有序集合(sorted set)RedisTemplate 概述 与 redis 配置1、Redis 是一个缓存、消息代理和功能丰富的键值存储。Spring Boot 为 Lettuce 和 Jedis...原创 2020-01-03 18:40:46 · 11225 阅读 · 0 评论 -
Spring Boot 2.x 自定义数据源 DruidDataSource(操作 mysql 数据库)
目录DRUID 简介配置参数自定义数据源 Druid引入数据源切换 Druid 数据源配置 Druid 数据源参数配置 Druid 数据源监控配置 Druid 后台管理 Servlet配置 Druid web 监控 filterDRUID 简介1、Druid 是阿里巴巴开源平台上一个数据库连接池实现,结合了 C3P0、DBCP、PROXOOL 等 DB ...原创 2018-08-20 08:16:31 · 92004 阅读 · 16 评论 -
Spring Boot 集成 MyBatis 快速入门(注解版 与 xml 配置版)
目录环境准备新建项目pom. xml默认结构Mysql 数据库全局配置文件DomainmyBatis 注解版 CRUD@MapperUserControllerCRUD 测试MyBatis 自动配置原理自定义 MyBatis 配置@MapperScan 批量扫描2、本文将新建一个 Web 项目,介绍 Spring Boot 整合 MyBat......原创 2018-08-21 08:37:29 · 7228 阅读 · 3 评论 -
IDEA + Spring boot devtools 热部署 与 多实例启动
目录Spring Boot 项目自动编译刷新IDEA 同一应用启动多次Spring Boot 项目自动编译刷新1、IDEA 编写 Spring Boot 项目,修改前端 html、js、css 等文件,或者后端的 java 文件后,浏览器无法实时看到修改后的内容时,此时需要设置热部署。2、修改 pom.xml 文件,在 pom.xml 文件 <dependencies&g...原创 2018-11-30 14:16:31 · 8235 阅读 · 2 评论 -
SpringBoot 2.1.0 整合 WebSocket 通信
传统 Tomcat 开发 WebSocket 回顾 WebSocket 的出现是基于 Web 应用的实时性需要而产生的,在淘宝、京东等网页客服、网页卖家聊天等需求上应用广泛。对于前端网页可以使用 H5 开发 WebSocket 客户端,也可以使用SockJS 库开发 WebSocket 客户端。 对于Java 开发者而言,后台 WebSocket 服务端开发通常有以下常用...原创 2018-11-28 13:45:42 · 3196 阅读 · 3 评论 -
Spring Boot 文件上传、文件下载(批量压缩)、url 映射虚拟路径、解决下载文件名称乱码、MultipartConfigElement
目录需求分析文件上传pom.xmlapplication.ymlUploadFileControllerindex.html上传测试url 映射虚拟路径application.ymlWebMvcConfigurerUploadFileController上传与访问测试需求分析1、Java web 应用开发完成后如果是导入外置的 Tomc...原创 2019-03-17 10:37:07 · 8730 阅读 · 3 评论 -
Spring Boot Actuator 监控和管理应用程序
目录Spring Boot Actuator 概述启用 Actuator执行器Endpoints(端点)启用端点(Enabling Endpoints)Exposing Endpoints(公开端点)配置端点缓存(Configuring Endpoints)自定义端点访问路径CORS Support(跨域支持)健康信息(Health Information)...原创 2019-03-13 17:47:57 · 3270 阅读 · 1 评论 -
Spring Boot 默认数据源 HikariDataSource 与 JdbcTemplate 初遇
目录环境准备新建项目pom. xml 默认内容mysql 数据库数据库 CRUD全局配置文件默认数据源CRUD 数据库PhoneController测试结果自动配置原理DataSourceConfiguration1、《Spring Boot 数据库访问 简介》中已经介绍,Spring Boot 可以通过多种方式访问各种数据库,本文将介绍 Spr...原创 2018-08-19 08:37:07 · 184060 阅读 · 1 评论 -
Spring boot 自定义注解 + 拦截器 + AOP 切面
目录外部配置加载环境准备命令行参数spring.config.location@ PropertySource外部配置加载Spring Boot 支持多种外部配置方式,如下所示,从上往下加载优先级由高到低,内容相同时覆盖,不相同时累加。命令行参数 来自java:comp/env的JNDI属性 使用“spring.config.location”改变默认的配置文件位...原创 2018-07-13 13:58:28 · 5087 阅读 · 1 评论 -
Spring Boot 项目信息国际化
本文导读本文承接《Web 项目 tiger 开始 之1 引入资源》 国际化主要用于应用跨国时使用,比如在中国时应用为中文,在韩国时,应用显示为韩文,在日本时,应用又显示为日文等。又或者是用户点击什么语言就可以自动切换什么语言自动语言切换需求分析国际化主要用于应用跨国时使用,比如在中国时应用为中文,在韩国时,应用显示为韩文,在日本时,应用又显示为日文等,这叫应用跟着系统语言环境自动切...原创 2018-07-24 19:36:53 · 911 阅读 · 0 评论 -
Spring Boot 核心配置文件,yml 语法规范、多环境配置、配置文件加载顺序,EnvironmentAware 读取 yml 配置
目录需求分析多 profile 文件形式yml 文档块形式需求分析Profile 是 Spring 对不同环境提供不同配置功能的支持,可以通过激活、指定参数等方式快速切换环境项目开发时有开发环境、测试环境、部署环境等,可以通过 profile 配置切换多 profile 文件形式格式:application-{profile}.properties/yml,如:ap...原创 2018-07-13 11:44:29 · 14938 阅读 · 1 评论 -
Spring Boot @PropertySource 加载配置文件、@ImportResource 导入Spring 配置文件、YamlPropertiesFactoryBean 读取 yml 文件
目录需求背景项目结构@PropertySource 加载指定配置文件资源配置文件测试运行需求背景1、通过《Spring Boot 全局配置文件》与《@Value 取赋值详解与 @ConfigurationProperties 对比》已经知道使用“@Value”注解与“@ConfigurationProperties”可以从全局配置文件“application.prope...原创 2018-07-11 18:33:08 · 62115 阅读 · 17 评论 -
Spring Boot yml 文件读取:@ConfigurationProperties 、@EnableConfigurationProperties、@Value、Environment
SpringBoot使用一个全局的配置文件,配置文件名是固定的;原创 2018-07-11 12:32:07 · 8186 阅读 · 3 评论 -
Spring Boot 概述、初始化器、spring-boot-maven-plugin 插件简化部署、starter 自动配置原理
目录New Project默认项目结构默认 pom.xml 文件功能代码运行测试1、《Spring Boot 入门》中是使用创建Maven项目,然后导入Spring Boot依赖的方式,虽然相比传统做法已经很快了,但是IDEA等主流Java编辑器都支持快速构建Spring项目2、相当于IDEA可以直接新建Java FX项目一样,效率更高New Projectht...原创 2018-07-10 19:27:41 · 8974 阅读 · 2 评论 -
Spring Boot 2.x 日志配置 与集成 Logback 日志框架,SQL日志记录方式汇总
目录本文导读指定日志配置logback. xml测试运行Profile 高级功能本文导读1、本文承接《Spring 日志关系 与 slf4j 默认配置及其修改》2、已经知道可以在 Spring Boot 的全局配置文件 application.properties 或者 application.yml 中修改 slf4j 的默认配置,那么能不能直接使用slf4j实现...原创 2018-07-14 15:30:06 · 23892 阅读 · 10 评论 -
Spring boot 拦截器(HandlerInterceptor) 与 自定义资源映射虚拟路径,WebMvcConfigurer
目录登 录UserControllerWebMvcConfigurerhtml 页面运行测试拦 截LoginHandlerInterceptor注册拦截器Spring Boot 2.0 之前Spring Boot 2.0 之后自定义资源映射运行测试登 录UserControllerpackage com.lct.controller...原创 2018-07-29 09:06:37 · 4409 阅读 · 1 评论 -
Spring Boot 2.0.3 使用外置 Tomcat 服务器部署 war 包
目录外置 Servlet 容器ServletInitializerMVC 流程测试启动原理嵌入式 Servlet 容器的应用打成为可执行的 jar 包,优点是 简单、便携;缺点是 不支持 JSP、优化定制比较复杂(使用定制器、全局配置文件修改) Spring Boot 提供程序员可以使用外置的 Servlet 容器,本文以外置的 Tomcat 服务器为例,此时应用要打包成为...原创 2018-08-13 18:07:31 · 789 阅读 · 1 评论 -
Spring Boot 2.x 切换 Servlet 嵌入式容器 Tomcat、Jetty、Undertow
目录本文导读默认的 Tomcat 服务器切换Jetty 服务器切换Undertow 服务器本文导读本文承接《Web 项目 tiger 之11 Servlet 容器配置修改》 Spring Boot 的 web 项目默认使用嵌入式的 Tomcat 服务器,同时它也支持程序员自己切换 内置的 Servlet 容器,如 Jetty 、Undertow Jetty 支持...原创 2018-08-12 10:43:41 · 1350 阅读 · 0 评论 -
Spring boot 2.x 错误处理机制 与 定制错误页面
目录默认错误处理机制浏览器访问APP 访问区分原理错误处理机制原理DefaultErrorAttributesBasicErrorControllerDefaultErrorViewResolver定制错误页面templates 下404. html4xx. html运行测试静态资源目录 下本文导读本文承接《Web 项目 tiger...原创 2018-08-07 18:11:13 · 1423 阅读 · 0 评论 -
Spring Boot Email 发送邮件、POP3/IMAP/SMTP 服务协议
3、如果 spring.mail.host 和相关的库(spring-boot-starter-mail)可用,则会创建一个默认的JavaMailSender(如果不存在)。有关详细信息,请参阅。1、系统中使用电子邮件仍然是重要的沟通工具之一,在使用 Spring Boot 框架开发应用程序时,有时需要集成邮件发送功能,以便在用户注册、找回密码、接收通知等场景中向用户发送邮件。为其提供了自动配置(spring.mail.*)以及启动模块(spring-boot-starter-mail)。原创 2018-08-03 08:55:23 · 3726 阅读 · 1 评论