
spingboot
白不懂黑的静
纸上得来终觉浅 绝知此事要躬行
展开
-
SpringJPA中多表关联查询并返回自定义dto带分页
如题:要实现SpringJPA中多表关联查询并返回自定义dto带分页功能,使用SpringJAP的查询时暂时没找到合适的方法,也不想强制去给实体间做关联,于是有如下代码:一、建立自己需要返回的dto/** * 设备备品备件信息Dto数据对象信息类 * **/@Datapublic class ZiYuanBeiJianDto implements Serializable { /** * 主键id<br> */ private Str原创 2021-07-14 16:38:05 · 3026 阅读 · 0 评论 -
SpringJPA 不支持MySQL 的ifnull函数
问题:在我的一条更新语句中如下: @Modifying @Query(value = "UPDATE syzy_beiJianKuCun SET kuCunNum = ifnull(kuCunNum,0)-(?2) WHERE id= ?1",nativeQuery = true) void updateBeiJianKuCunById(String id, float xiaoHaoNum);然后问题出现了,当字段为null时,数据库此字段死活不更新;解决思路:是不是语句有问原创 2021-07-14 16:26:49 · 1973 阅读 · 0 评论 -
JPA中为什么EntityManager 的注解要用@PersistenceContext
在使用SpringJPA的时候,看到如下代码 @PersistenceContext private EntityManager entityManager;于是就有些好奇,这个@PersistenceContext是几个意思,如果是实体注入的话,统一采用@Autowired可以吗?于是上网查了下,几乎所有的EntityManager都是采用这个注解的,就去找了找原因。根据上面的描述,总结如下:@PersistenceContext是jpa专有的注解,而@Autowired原创 2021-07-14 15:18:18 · 9237 阅读 · 1 评论 -
谈谈Spring、 SpringMVC 、SpringBoot和 SpringCloud的区别
Spring Spring是一个“引擎”。 Spring 框架的核心特性是可以用于开发任何 Java 应用程序,但是在 Java EE 平台上构建 web 应用程序是需要扩展的。 Spring 框架的目标是使 J2EE 开发变得更容易使用。 Spring框架是一个大集合,也像一个大家族【可以到spring.io官网了解】。但家庭成员的基础都是基于Spring的IoC和AOP特性, IoC提供了依赖注入(DI)的容器,可谓是核心,AOP则提供了面向切面的编程方...原创 2021-06-27 17:07:01 · 7566 阅读 · 0 评论 -
浅谈spring为什么推荐使用构造器注入
【Spring】浅谈spring为什么推荐使用构造器注入在开发过程中,我们习惯了Spring的注解@Autowired(至少我是习惯性认为这个是个标准写法。。。),后来在一篇文章中看到Spring官方是推荐使用构造器注入的,在此记录下。一、前言 Spring框架对Java开发的重要性不言而喻,其核心特性就是IOC(Inversion of Control, 控制反转)和AOP,平时使用最多的就是其中的IOC,我们通过将组件交由Spring的IOC容器管理,将对象的依赖关系由Spring控制,避原创 2021-06-24 18:25:04 · 1305 阅读 · 0 评论 -
SpringBoot+Jpa无法生成数据库表
在使用SpringBoot+Jpa做项目的时候,发现有一个实体始终无法生成后台数据库表@Data@Entity@Table(name = "SYFX_YANZHONGXDJ")public class FengXianhgyzcd extends BaseEntity implements Serializable { private static final long serialVersionUID = 1L; /** * 主键id */ @Id原创 2021-06-24 10:30:08 · 393 阅读 · 0 评论 -
2021-06-23
SpringBootJPA 一对多内存溢出问题现象:在使用SpringBootJPA进行一对多的关联配置的时候,经常会报内存溢出的问题;原因:一:在两类中分别重写了 toString 方法,导致查询加载时两类在互相调用对方的toString,形成递归,造成内存溢出二:使用了 lombok 插件中的@Data以及@ToString注解来标注实体类,让 lombok 来代替生成 gettet/setter 以及 toString,但是 lombok 在生成时会出现循环比较两类中的 hashcode,导致原创 2021-06-23 10:13:40 · 266 阅读 · 0 评论 -
SpringDataJpa自关联映射时出现StackOverflowError
现象:在使用SpringDataJpa时,进行自关联时,发现存在子数据的记录会报内存溢出问题StackOverflowError原因以及解决方案:为了编写方便简洁,代码更加优雅,使用了 lombok 插件中的@Data注解来标注类,让 lombok 来代替生成 gettet/setter 以及 toString,但是 lombok 在生成时会出现循环比较两类中的 hashcode,导致内存溢出。解决方案: 不要使用 lombok ,自己手写 gettet/setter 以及 toStr原创 2021-05-20 09:57:29 · 404 阅读 · 0 评论 -
spring security 5 There is no PasswordEncoder mapped for the id “null“ 错误
最近在学习spring security,但是在设置客户端密码时,一直出现了一下错误提示,原来没有问题的,认真上次到现在这之间的时间动了什么,我想到了我把spring security 升级到了5.0.0,应该是这里的问题,那么总需要解决,回退也不是方法吧仔细查找资料,发现了一下两篇资料,其实是一样的意思https://spring.io/blog/2017/11/01/spring-security-5-0-0-rc1-released#password-storage-updatedh.转载 2020-12-13 11:01:06 · 292 阅读 · 0 评论 -
SpringBoot 用Thymeleaf模版返回页面出现404
现象在搭建一个springboot框架前,突然发现访问控制层的json数据等都没问题,debug也能进入控制层的请求方法中,但是在返回到thymeleaf模板页面就报404@RequestMapping(value = {"/","index"}) public String myIndex() { return "index"; }尝试解决以前也是如此搭建的,是没问题的,于是乎上网查了下,大概有如下两种说法:第一种:控制层中的方法路径中的index 不原创 2020-12-12 23:53:28 · 4669 阅读 · 1 评论 -
springboot2.x集成Swagger3
目的:在写这篇记录时,swagger的最新版本到了3.0.0了,在进行集成时,没注意,还按照2.0的集成,走了一些弯路,这里特记录下。环境:一个已经搭建好的干净的springboot框架,这个框架中我集成了mybatis.什么是swagger? Swagger是一款RESTful接口的文档在线自动生成、功能测试功能框架。 一个规范和完整的框架,用于生成、描述、调用和可视化RESTful风格的Web服务,加上swagger-ui,可以有很好的呈现。 当我们在后台的接口修改了后...原创 2020-12-10 23:16:48 · 1510 阅读 · 1 评论 -
Failed to introspect Class druid问题
在启动一个从git上下载下的springboot2.0项目后,启动时报如下错误java.lang.IllegalStateException: Error processing condition on org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration$PooledDataSourceConfiguration at org.springframework.boot.autoconfigure.condit原创 2020-12-05 16:47:33 · 1800 阅读 · 1 评论 -
SpringBoot+Mybatis集成pagehelper分页插件
目录1、说明2、配置pom文件3、增加配置文件4、在controller中增加分页查询请求5、疑惑1、说明后台使用springboot2.0+Mybatis已经搭建好的环境,要在这个基础上实现后端数据查询分页。分页当然也可以自己写,不过有现成的插件,只需要几步简单的集成就行,而且截止目前感觉还可以,因而有此篇记录。2、配置pom文件与其他springboot集成插件一样,先导入pageHelper依赖包,在pom.xml 的 dependencies标签中增加如.原创 2020-12-04 15:04:28 · 758 阅读 · 0 评论 -
SpringBoot自定义错误页面
使用Web应用时,在请求处理过程中发生错误是非常常见的情况.SpringBoot为我们提供一个默认的映射:/error,当处理中抛出异常之后,会转到该请求中处理,并且该请求有一个全局的错误页面来展示异常内容.比如现在启动my-spring-boot项目,项目启动完成之后,在浏览器中随便输入一个访问地址,由于地址不存在,SpringBoot会跳转到错误页面,如图所示.虽然Spring Boot为我们提供了默认的错误页面映射,但是在实际应用中,上图所示的错误页面对用户来说并不友好,我们需要自己来实现异常原创 2020-10-23 14:17:12 · 574 阅读 · 0 评论 -
浅谈redis缓存及缓存雪崩的处理
前言现在随着redis应用的越来越广泛,以及高并发情况的出现,在大多数的springboot项目中,使用redis作为缓存,越来越普遍了,而伴随而来的,在项目中应用redis作为缓存,如何才能更好的使用,以及怎样避免雪崩,成为了项目架构越来越关心的事了。缓存雪崩先看看百度百科给的缓存雪崩的定义:缓存雪崩是指缓存中数据大批量到过期时间,而查询数据量巨大,引起数据库压力过大甚至down机。举例来说,在一个高并发的接口上,我们使用了redis缓存进行数据的查询,redis的缓存的性能假设在12原创 2020-10-17 21:14:52 · 361 阅读 · 0 评论 -
Spring 注解实现Bean依赖注入之@Qualifier
@Qualifier:限定描述符,用于细粒度选择候选者;@Autowired默认是根据类型进行注入的,因此如果有多个类型一样的Bean候选者,则需要限定其中一个候选者,否则将抛出异常@Qualifier限定描述符除了能根据名字进行注入,更能进行更细粒度的控制如何选择候选者,具体使用方式如下:@Qualifier(value = "限定标识符") 用通俗的语言来讲:就是spring使用@Autowired对bean进行注入时,正常情况下,类不会同名,则没有问题,但是在有同类型的类存在时,s原创 2020-10-14 16:47:31 · 1155 阅读 · 0 评论 -
SrpingBoot集成Redis
前言本篇博客主要描述了基于SpringBoot2.0环境,集成Redis3.2完成SpringBoot环境下的数据往Redis数据库中的持久化功能。环境准备1、springBoot环境搭建搭建好一个SpringBoot环境,这里不细说,不懂的看springboot官网或找度娘,很容易实现。2、安装Redis我是在win10环境下安装的redis,直接下载redis下载后解压,到期目录下,直接双击redis-server.exe即可启动redis默认端口6379原创 2020-09-27 11:38:15 · 151 阅读 · 0 评论 -
SpringBoot集成SpringSession
目录一、前言1、为什么要用Spring-session2、比较traditional-session方案和spring-session方案3、JSR340规范与spring-session的透明继承二、SpringBoot集成spring-session1、导入依赖包2、添加配置3、添加请求测试类4、运行代码,测试结果如下:5、SpringBoot 整合 Spring Session 自定义配置介绍三、小结一、前言在正式进行集成前,先说说spr..原创 2020-09-23 15:01:03 · 2213 阅读 · 0 评论 -
SpringBoot跨域问题
背景:在前后端分离的框架体系下,经常会出现跨域问题,因而在后端需要配置其请求允许跨域访问前提:SpringBoot框架。新建 CorsConfig 类import org.springframework.context.annotation.Configuration;import org.springframework.web.servlet.config.annotation.CorsRegistry;import org.springframework.web.serv原创 2020-08-31 16:54:25 · 159 阅读 · 0 评论 -
springboot集成Mybatis
目录1、代码结构:2、数据库建表脚本3、在idea下新建springboot项目4、建立好项目后,导入对应包 pom.xml5、application配置文件6、dao层接口及实现以及mapper.xml7、service接口及实现8、controller层接口9、使用postMan测试一个简单的springboot集成Mybatis入门示例,话不多说,直接上代码:1、代码结构:2、数据库建表脚本CREATE TABLE `user` ( `id原创 2020-08-17 23:29:04 · 184 阅读 · 0 评论 -
测试工具---Jemeter
目录jmeter介绍意义:1、下载,我的是windows环境2、安装3、运行4、一个简单的压力测试Jemeter是一款免费开源的纯java测试工具。先看看Jemeter中文网对其的介绍。jmeter介绍Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域。 它可以用于测试静态和动态资源,例如静态文件、Java小服务程序、CGI 脚本、Java 对象、数据库、FTP 服.原创 2020-07-21 10:10:27 · 763 阅读 · 0 评论 -
SpringBoot @Bean注解
SpringBoot中,我们可以使用@Bean将自定义的一个类注入到spring容器中,让spring容器去管理bean,其相当于之前的配置文件中的<bean id="" class=""/>直接贴代码,我们先建立一个配置类,类似之前的配置xml,然后在其中将自己的bean交给spring去管理。package com.mayun.study.config;import com.mayun.study.bean.Monster;import org.springframework原创 2020-07-20 13:53:29 · 4385 阅读 · 0 评论 -
springboot开启定时器功能
场景:在开发中,遇到让做定时任务很常见,而相比于传统框架,springboot中写定时任务显得格外的简单。思路:2步走;第一,开启springboot的定时任务功能,这个只需在入口文件类上加上注释 @EnableScheduling@EnableAsync //开启异步注解功能@EnableScheduling//开启定时功能的注解@SpringBootApplicationpublic class SpringbootTaskApplication { public st原创 2020-06-11 17:25:33 · 660 阅读 · 0 评论 -
springboot开启异步注解功能
主要记录内容:在springboot中如何开启异步注解功能,异步注解功能开启后,可以让在调用异步功能时,系统可以自动接着往下走,而不用一直在等待异步功能完成才可以接着走下一步任务。前提:内容时基于springboot实现的。一、service层代码:在service中定义了一个测试异步的代码:在方法上增加@Async注解package com.demo.service;import org.springframework.scheduling.annotation.Async;imp原创 2020-06-08 14:22:05 · 1798 阅读 · 0 评论 -
springboot学习笔记---YAML配置文件之一个配置文件完成多环境的配置
Yaml文件的配置是springboot官方文档中推荐使用的一种配置格式,这里记录下其配置多环境的方法。之前在properties格式的文件中,若是需要配置多个环境,我们可能需要配置application-dev.properties、application-test.properties等多个环境的文件,然后在各自的配置文件中写上不同的参数信息,然后在application.properties文件中利用spring.profile.active=test/dev 这样的一个结果是假如环境很多,可能会原创 2020-05-18 16:49:06 · 1073 阅读 · 0 评论 -
springboot笔记-----@ConfigurationProperties注解
这里只作为笔记,记录自己对此注解实践过的一些使用:场景:现实的开发过程中,经常会遇到一些配置信息,开发或测试是一套,到了客户现场部署时,才能对一些内容进行确认修改,或者一些常量信息需要在不定周期内进行一些简单的变更,可能只是变更一个日期,或者变更一些值,怎样才能花费最小的代价去修改这些呢。这里利用了@ConfigurationProperties注解,初始化yaml文件中的属性配置,即利用了yaml文件可以定义一个对象,然后将对象的值注入到配置类的特点进行处理。使用步骤:一、 在配置文件原创 2020-05-18 16:33:16 · 315 阅读 · 0 评论 -
springBoot访问不到静态资源
背景: 初始搭建好springboot平台后,发现static目录下的js.css等静态资源无法访问,于是乎,做如下修改:第一种方案: 直接修改yml配置文件:#thymeleaf thymeleaf: cache: false prefix: classpath:/templates/ check-template-locatio...原创 2020-03-30 16:52:20 · 18302 阅读 · 4 评论