Spring Boot
文章平均质量分 51
谦虚使人发胖
这个作者很懒,什么都没留下…
展开
-
Spring cache + Redis实现缓存
Spring Cache是一个框架,实现了基于注解的缓存功能,只需要简单地加一个注解,就能实现缓存功能,大大简化我们在业务中操作缓存的代码。原创 2023-02-14 14:29:04 · 2959 阅读 · 1 评论 -
springboot允许https和http同时访问
1. 申请ssl证书(可在阿里云申请)2. 执行命令,生成 jks 文件keytool -importkeystore -srckeystore 1314xxx.pfx -destkeystore 1314.jks -srcstoretype PKCS12 -deststoretype JKS说明:1314xxx.pfx:是你从阿里云上下载解压得到的文件1314.jks:这是你要生成的文件,也是终极文件(放到application.yml或者application.properties同等级原创 2021-04-28 17:49:31 · 485 阅读 · 0 评论 -
@Autowired自动注入Map(适用一个接口有多个实现类,需要根据参数灵活调用具体的实现方法)
@Autowired自动注入Map(适用一个接口有多个实现类,需要根据参数灵活调用具体的实现方法)Spring 会在启动时,自动查找实现了该接口的 bean,放到这个Map中去。Key为bean的名字,value为 实现了该接口的所有的 bean。接口 IAnimalpublic interface IAnimal { String eat ();}实现1 Cat@Servicepublic class Cat implements IAnimal { @Overrid原创 2021-03-02 10:40:38 · 5249 阅读 · 2 评论 -
ApplicationEventPublisher的使用学习
一、介绍1.ApplicationEventPublisherAware ApplicationEventPublisherAware 是由 Spring 提供的用于为 Service 注入 ApplicationEventPublisher 事件发布器的接口,使用这个接口,我们自己的 Service 就拥有了发布事件的能力。 用户注册后,不再是显示地调用其他的业务 Service,而是发布一个用户注册事件。2.ApplicationListener ApplicationListener接原创 2021-01-29 09:59:10 · 25342 阅读 · 8 评论 -
自定义注解 Annotation
要深入学习注解,我们就必须能定义自己的注解,并使用注解,在定义自己的注解之前,我们就必须要了解Java为我们提供的元注解和相关定义注解的语法。元注解元注解的作用就是负责注解其他注解。Java5.0定义了4个标准的meta-annotation类型,它们被用来提供对其它 annotation类型作说明。Java5.0定义的元注解:@Target、Retention、@Documented、@Inherited这些类型和它们所支持的类在java.lang.annotation包中可以找到。下面我们看一下每原创 2021-01-21 16:56:45 · 228 阅读 · 0 评论 -
SpringBoot代码实现读写分离的方案
背景一个项目中数据库最基础同时也是最主流的是单机数据库,读写都在一个库中。当用户逐渐增多,单机数据库无法满足性能要求时,就会进行读写分离改造(适用于读多写少),写操作一个库,读操作多个库,通常会做一个数据库集群,开启主从备份,一主多从或多主多从,以提高读取性能。主从同步正常情况下读写分离的实现,首先要做一个一主多从的数据库集群,同时还需要进行数据同步。MySQL主从同步配置方法见另一篇文章:MySQL主从同步配置读写分离代码层面实现读写分离代码层面读写分离有两种方式判断是读还是写,根据方法名称原创 2021-01-21 15:43:59 · 929 阅读 · 2 评论 -
Spring Boot实现跨系统接口调用
Spring Boot实现跨系统接口调用一、概述在开发过程中经常会需要和其他系统进行对接,或者调用一些外部的第三方接口来获取所需要的数据信息,这个时候我们就需要跨系统去调用接口,本文基于spring boot项目整理三种方案。1、使用httpClient请求;2、使用RestTemplate方法;3、使用Fegin进行消费;1、使用httpClient请求需要先在maven的pom.xml中添加httpClient依赖<dependency> <group转载 2021-01-20 18:09:05 · 2223 阅读 · 0 评论 -
Spring-retry实现重试
在项目中,调用第三方接口响应比较慢,或者由于网络抖动等原因,导致无响应或响应超时的情况,就要用到重试机制。比较简单成熟的方案就是使用spring-retry功能,spring-retry需要使用aop的特性,所以需要引入aspectj1. 添加依赖<dependency> <groupId>org.springframework.retry</groupId> <artifactId>spring-retry</artifact原创 2021-01-14 11:43:30 · 1232 阅读 · 1 评论 -
spring中构造方法、@PostConstruct、@Autowired、@Value的加载顺序
探究Spring中构造方法、@PostConstruct、@Autowired、@Value的执行顺序@Servicepublic class TestService { public String get () { return "hello world"; }}@RestControllerpublic class TestController { public TestController () { System.er...原创 2021-01-12 10:43:06 · 2592 阅读 · 0 评论 -
Springboot的工具类中使用@Value给静态变量注入值、使用@Autowired注入对象的方法
1. 工具类中使用@Value给静态变量注入值@Componentpublic class EmopUtil { //EMOP url private static String url; //接口平台分配给应用的appId private static String appId; //EMOP url @Value("${emop.config.url}") private void setUrl (final String url)原创 2021-01-12 10:04:42 · 1489 阅读 · 0 评论 -
对private方法编写单元测试
原创 2020-11-20 09:55:49 · 908 阅读 · 0 评论 -
@Transactional注解事务内层事务不影响外层事务的方法
1.问题目前有个两个方法,使用@Transactional声明事务。a方法中声明事务捕捉到Exception异常会回滚事务。现在当b方法中抛出异常,a方法就会回滚,目前有这样一个需求:当b方法抛出异常,a方法事务不回滚。@Transactional(rollbackFor=Exception.class)public String a() { this.bSerivce..b(); dosomething...}public String b() { dosomething...}转载 2020-09-16 16:38:18 · 4510 阅读 · 0 评论 -
Quartz在分布式集群环境下的应用(Spring、SpringBoot)
如果仅仅只是使用定时任务,可以使用Spring的schedule实现,方便,代码量少,只需引入必要依赖及一个简单的注解即可,类似@Scheduled(cron = "0 0 1 * * ?")public void schedule1 () { logger.info("=== 定时任务1 ===")}...原创 2020-04-08 15:11:24 · 3542 阅读 · 0 评论 -
SpringBoot项目对配置项中的敏感信息进行加密
springboot中配置项信息都是在配置文件中进行保存的,其中涉及了很多敏感信息,如数据库账号、密码等。为了保证系统的安全可靠,往往需要我们将这些明文信息进行加密处理。下面就以SpringBoot 结合 Jasypt 为例,对敏感信息进行加密处理。1. 首先在pom.xml中添加 Jasypt 依赖<!-- https://mvnrepository.com/artifact/c...原创 2020-03-23 11:14:58 · 1132 阅读 · 0 评论 -
SpringBoot项目集成Swagger2,从此不再写接口文档
自从使用前后端分离后,维护接口文档基本上是必不可少的工作。目前的状况是,后端需要先将接口文档写好,然后交由前端同步开发,但是问题是,在开发过程中,必然会出现需要修改接口的情形,此时就需要及时修改接口文档。即便是接口没有做修改,前端部分同事由于对后端了解较少,还是存在部分接口需要你给他苦口婆心的解释,费时又费力。Swagger2 可以很好地解决上面出现需要及时更新接口文档的情况,它可以动态生成Api...原创 2020-03-03 14:31:07 · 537 阅读 · 0 评论 -
向前端返回数据时,自动忽略返回内容为null的属性
//该注解可以将实体类中的null的属性自动忽略,该注解可以对实现进行注解,注解后该类中出现null的属性时,传递回页面的json中自动忽略@JsonInclude(JsonInclude.Include.NON_NULL)在springboot这种也可以通过application.yml配置文件中配置全局自动忽略:jackson: default-property-inclu...原创 2019-09-30 09:10:16 · 1631 阅读 · 0 评论 -
exceptionMsg is :com.example.workflow.entity.User cannot be cast to com.example.workflow.entity.User
User user = (User) subject.getSession().getAttribute("user");做类型转换时报错:exceptionMsg is :com.example.workflow.entity.User cannot be cast to com.example.workflow.entity.User网上找了一圈,最终发现:项目中应该是采用了热部署...原创 2019-09-19 14:51:59 · 1918 阅读 · 0 评论 -
SpringBoot 发送邮件和带附件邮件
基础知识 什么是SMTP? SMTP全称为Simple Mail Transfer Protocol(简单邮件传输协议),它是一组用于从源地址到目的地址传输邮件的规范,通过它来控制邮件的中转方式。SMTP认证要求必须提供账号和密码才能登陆服务器,其设计目的在于避免用户受到垃圾邮件的侵扰。 什么是IMAP? IMAP全称为Internet Message Access Proto...转载 2019-08-09 14:12:31 · 1168 阅读 · 0 评论 -
springboot中通过cors协议解决跨域问题
1、对于前后端分离的项目来说,如果前端项目与后端项目部署在两个不同的域下,那么势必会引起跨域问题的出现。针对跨域问题,我们可能第一个想到的解决方案就是jsonp,并且以前处理跨域问题我基本也是这么处理。但是jsonp方式也同样有不足,不管是对于前端还是后端来说,写法与我们平常的ajax写法不同,同样后端也需要作出相应的更改。并且,jsonp方式只能通过get请求方式来传递参数,当然也还有其...转载 2018-12-26 19:43:54 · 694 阅读 · 0 评论 -
Spring Boot干货系列:(八)数据存储篇-SQL关系型数据库之JdbcTemplate的使用
转载自:点击打开链接前言前面几章介绍了一些基础,但都是静态的,还不足以构建一个动态的应用。本篇开始就要介绍数据交互了,为了演示效果更加好,博主花了大把时间整合了一个后端模板框架,基于Bootstrap3的ACE模板,并实现了一个基本的增删改查分页功能。让我们一起动手,学技术的同时,顺便把我们的项目完善起来,这样跟着博主学到最后,你就有了一个属于自己的Spring Boot项目啦。正文本文介绍在Sp...转载 2018-04-23 16:54:20 · 243 阅读 · 0 评论 -
Spring Boot干货系列:(二)配置文件解析
转载自点击打开链接前言上一篇介绍了Spring Boot的入门,知道了Spring Boot使用“习惯优于配置”(项目中存在大量的配置,此外还内置了一个习惯性的配置,让你无需手动进行配置)的理念让你的项目快速运行起来。所以,我们要想把Spring Boot玩的溜,就要懂得如何开启各个功能模块的默认配置,这就需要了解Spring Boot的配置文件application.properties。正文S...转载 2018-04-19 13:41:47 · 201 阅读 · 0 评论 -
Spring Boot干货系列:(三)启动原理解析
转载自:点击打开链接前言前面几章我们见识了SpringBoot为我们做的自动配置,确实方便快捷,但是对于新手来说,如果不大懂SpringBoot内部启动原理,以后难免会吃亏。所以这次博主就跟你们一起一步步揭开SpringBoot的神秘面纱,让它不在神秘。正文我们开发任何一个Spring Boot项目,都会用到如下的启动类@SpringBootApplicationpublic class App...转载 2018-04-19 15:53:46 · 148 阅读 · 0 评论 -
Spring Boot干货系列:(九)数据存储篇-SQL关系型数据库之MyBatis的使用
转载自:点击打开链接前言上篇我们介绍了Spring Boot对传统JdbcTemplate的集成,这次换一下,介绍下Spring Boot中如何集成MyBatis。这里分别介绍注解方式以及XML方式的整合。喜欢哪种方式自己选择。正文项目框架还是跟上一篇一样使用Spring Boot的ace后端模板,你可以基于它来跟着博主一起来调整代码,如果没看过上一篇,那就下载本篇源码研究吧。跟上篇一样先添加基础...转载 2018-04-24 09:39:47 · 209 阅读 · 0 评论 -
Spring Boot干货系列:(四)开发Web应用之Thymeleaf篇
转载自:点击打开链接前言Web开发是我们平时开发中至关重要的,这里就来介绍一下Spring Boot对Web开发的支持。正文Spring Boot提供了spring-boot-starter-web为Web开发予以支持,spring-boot-starter-web为我们提供了嵌入的Tomcat以及Spring MVC的依赖。项目结构推荐一个好的项目结构会让你开发少一些问题,特别是Spring B...转载 2018-04-20 10:55:57 · 286 阅读 · 0 评论 -
Spring Boot干货系列:(五)开发Web应用之JSP篇
转载自:点击打开链接前言上一篇介绍了Spring Boot中使用Thymeleaf模板引擎,今天来介绍一下如何使用SpringBoot官方不推荐的jsp,虽然难度有点大,但是玩起来还是蛮有意思的。正文先来看看整体的框架结构,跟前面介绍Thymeleaf的时候差不多,只是多了webapp这个用来存放jsp的目录,静态资源还是放在resources的static下面。引入依赖<!--WEB支持-...转载 2018-04-20 13:54:29 · 296 阅读 · 0 评论 -
Spring Boot干货系列:(六)静态资源和拦截器处理
转载自:点击打开链接前言本章我们来介绍下SpringBoot对静态资源的支持以及很重要的一个类WebMvcConfigurerAdapter。正文前面章节我们也有简单介绍过SpringBoot中对静态资源的默认支持,今天详细的来介绍下默认的支持,以及自定义扩展如何实现。默认资源映射Spring Boot 默认为我们提供了静态资源处理,使用 WebMvcAutoConfiguration 中的配置各...转载 2018-04-20 16:08:15 · 643 阅读 · 0 评论 -
Spring Boot干货系列:(十)开发常用的热部署方式汇总
文章来源:点击打开链接前言平时开发Sprig Boot的时候,经常改动个小小的地方就要重新启动项目,这无疑是一种很差的体验。在此,博主收集了3种热部署的方案供大家选择。正文目前博主用过的有三种:Spring Loadedspring-boot-devtoolsJRebel插件博主开发环境系统:win10开发工具:IDE:IntelliJ IDEA 2017.1spring-boot版本:1.5.3...转载 2018-05-02 17:59:25 · 567 阅读 · 0 评论 -
Spring Boot干货系列:(十一)数据存储篇-Spring Boot整合Mybatis通用Mapper插件
转载自:点击打开链接前言上次介绍了Spring Boot中Mybatis的简单整合,本篇深入来结合通用Mapper、Mybatis Geneator以及分页PageHelper来打造适合企业开发的模板框架。正文项目框架还是跟上一篇一样使用Spring Boot的ace后端模板,不过最近在使用vue,所以前端引用了vue进来改写,代码变得更加简洁。项目配置:Spring Boot: 1.5.9.RE...转载 2018-05-07 17:48:15 · 409 阅读 · 0 评论 -
springboot + mybatis设置将SQL语句打印到控制台
如果是application.propertieslogging.level.com.neo.mapper=debug若果是application.ymllogging: level: com.neo.mapper: DEBUGcom.neo.mapper是 mybatis接口及映射文件包。application.properties 改成 application.ymlyml文件的好...转载 2018-05-08 16:22:33 · 53158 阅读 · 2 评论 -
springboot开发中使用postman 以POST方式向后台传递json数据的时候,为空
我的错误原因就是因为,在spring注解开发中,使用get或者是post请求的时候,就是需要这些注意事项 这里写图片描述 就是这两个地方搞混,后台就会拿不到前台传递的json数据...转载 2018-05-08 17:45:42 · 12521 阅读 · 1 评论 -
Spring Boot干货系列:(十二)Spring Boot使用单元测试
转载自:点击打开链接前言这次来介绍下Spring Boot中对单元测试的整合使用,本篇会通过以下4点来介绍,基本满足日常需求Service层单元测试Controller层单元测试新断言assertThat使用单元测试的回滚正文Spring Boot中引入单元测试很简单,依赖如下:<dependency> <groupId>org.springframework.boot&...转载 2018-06-05 16:54:18 · 398 阅读 · 0 评论 -
spring cloud zuul 配置请求并发数
Zuul默认集成hystrix, 同时,和hystrix一样采用线程隔离技术 zuul默认使用:信号量(semaphore) hystrix默认使用:线程池 (thread)配置信号量属性 值 描述 zuul.ribbon-isolation-strategy semaphore 配置隔离策略为信号量 zuul.semaphore.max-semapho...转载 2018-09-21 09:30:21 · 7905 阅读 · 1 评论 -
spring boot + redis 实现session共享
在spring boot的文档中,告诉我们添加@EnableRedisHttpSession来开启spring session支持,配置如下:@Configuration @EnableRedisHttpSession public class RedisSessionConfig { } 而@EnableRedisHttpSession这个注解是由spring-sessi...转载 2018-09-26 17:18:19 · 283 阅读 · 0 评论 -
Shiro限制登录尝试次数(适用于单节点)
要限制用户登录尝试次数,必然要对用户名密码验证失败做记录,Shiro中用户名密码的验证交给了CredentialsMatcher 所以在CredentialsMatcher里面检查,记录登录次数是最简单的做法。我们用Ehcache来记录用户登录次数的计数,继承HashedCredentialsMatcher,加入缓存,在每次验证用户名密码之前先验证用户名尝试次数,如果超过5次就抛出尝试过多异...转载 2018-09-26 17:30:11 · 1640 阅读 · 0 评论 -
文件上传经由ZUUL转发,导致的 文件名(OriginalFilename)乱码问题
一、问题描述自己写了个文件上传的接口,使用MultipartFile来接收文件,使用此接口时可以获取到 原始文件名,而 经有ZUUL转发之后,出现了文件名中的中文名 变成 ????的情况。二、解决方法在请求的URL之前 加上 /zuul使用 zuul servlet来上传文件,因为zuul servlet提供了较好的上传文件支持如:http://192.168.1.2:8000/...转载 2018-10-16 16:11:23 · 3418 阅读 · 0 评论 -
Spring Boot干货系列:(一)优雅的入门篇
转载自点击打开链接前言Spring一直是很火的一个开源框架,在过去的一段时间里,Spring Boot在社区中热度一直很高,所以决定花时间来了解和学习,为自己做技术储备。正文首先声明,Spring Boot不是一门新技术,所以不用紧张。从本质上来说,Spring Boot就是Spring,它做了那些没有它你也会去做的Spring Bean配置。它使用“习惯优于配置”(项目中存在大量的配置,此外还内...转载 2018-04-17 14:57:07 · 202 阅读 · 0 评论