springboot笔记
文章平均质量分 61
springboot笔记
小花卷的dad
这个作者很懒,什么都没留下…
展开
-
springboot导出(POI)
我们结合自定义注解,让导出使用起来更方便简洁且更容易扩展。/*** 字段名*//*** 字段顺序*//*** 单元格宽度*//*** 日期格式*//*** 文件名称* @return*/String fileName() default "导出文件";/*** sheet页名称* @return*//*** 表头是否加粗* @return*//*** 表头颜色* @return*/原创 2023-09-13 10:33:11 · 448 阅读 · 1 评论 -
springboot 集成swagger3
如果启动时发生报以下错误,修改springboot的url匹配规则配置。在下图位置添加全局授权,会在所有请求的header上自动加上所填参数。security配置,主要是对swagger的相关请求不做拦截。swagger配置,生产环境记得关闭swagger,节省性能。应用启动后,在浏览器访问。原创 2023-05-10 14:16:10 · 254 阅读 · 0 评论 -
springboot集成flyway
flyway是一款数据库版本控制工具,它能够按照开发人员编排的数据库版本有序的自动完成数据库升级,数据库版本可以是sql脚本(推荐),也可以是java代码。基本原理是flyway在第一次启动时会生成一张历史记录表(),用于记录已执行的脚本,一个sql脚本为一条记录,然后每次项目启动时会扫描历史记录表和指定的sql脚本目录,两者做对比,把没有执行的脚本按版本号依次执行。原创 2023-08-16 10:38:21 · 104 阅读 · 0 评论 -
spring security自定义AccessDeniedHandler不生效问题
spring security过滤器的执行顺序默认是先登录认证再授权认证,并且登录认证模块默认是开启匿名登录的,如果请求没有携带登录认证信息,那么默认的登录认证结果就是匿名登录,匿名登录的授权失败时回调用sendStartAuthentication方法,而不是accessDeniedHandler。所以要使授权失败时调用accessDeniedHandler,则要保证当前用户不是匿名和记住我登录的。实际情况是,作者自定义了AccessDeniedHandler后,但是在授权失败时,并没有被调用。原创 2023-08-10 11:10:30 · 777 阅读 · 2 评论 -
springboot 配置文件定义集合
springboot 配置文件定义集合原创 2023-06-25 11:05:16 · 101 阅读 · 0 评论 -
spring AOP
在传统的面向对象编程中,我们通常把某个功能集中在某个类的某个方法中,并且java代码的执行顺序是从上至下(纵向)的,AOP则通过在纵向代码的特定位置植入额外的代码(横切关注点),实现面向切面编程。Spring AOP基于代理模式实现,它使用动态代理技术在运行时为目标对象创建一个代理对象,以拦截和处理与横切关注点相关的方法调用。切点定义了在何处应用通知,而通知则定义了在切点处执行的操作。通知(Advice): 通知是在切点处执行的具体操作。方法在切点匹配的方法成功执行并返回结果后执行,输出方法名和结果。原创 2023-06-20 09:57:48 · 80 阅读 · 0 评论 -
spring IOC
它是一种设计模式,传统模式中,对象负责创建、管理它们所需要的依赖。IOC能够很好的促进对象间的松耦合和系统的灵活性。需要注意的是,@Autowired默认是按照类型进行注入的。另外,除了@Component,springboot中@Service,@Controller等注解也是标记它作为一个Spring的Bean,应为他们都包含了@Component注解。springIOC容器通过使用描述对象如何创建、连接和管理的元数据来实现这一目标,此处的源数据可以是xml文件、java注解或基于java的配置类。原创 2023-06-19 17:44:26 · 80 阅读 · 0 评论 -
springboot 静态变量依赖注入
【代码】springboot 静态变量依赖注入。原创 2023-06-19 10:26:20 · 278 阅读 · 0 评论 -
springboot 事务(@Transactional)
外部类调用:如果一个有事务的方法被另一个类的方法调用,事务传播可能会受到影响。自调用方法:如果一个带有事务的方法在同一个类中通过普通的方法调用自己,事务传播可能会失效。外部调用:如果一个有事务的方法被另一个没有事务的方法直接调用,事务传播可能会受到影响。在这种情况下,被调用的方法会在自己的事务中执行,而不是加入到外部方法的事务中。在springboot中,在方法或类上添加@Transactional注解,将会把该方法或类中的数据库操作放到一个事务中,中途发生异常时,则事务会回滚,代码如下。原创 2023-06-07 16:23:00 · 1334 阅读 · 0 评论 -
springboot 集成mybatis-plus
mybatis-plus的默认配置已经能够满足开箱即用,如需要个性配置,参考。生成代码,然后测试即可。原创 2023-05-11 10:06:34 · 159 阅读 · 0 评论 -
springboot 数据库连接池配置(hikari)
顾名思义,数据库连接池就是存放很多数据库连接的池子。它的原理就是在系统初始化的时候创建一定数量的数据库连接并存放在池子中,当应用程序需要访问数据库时,直接从池子里面拿空闲连接使用,使用完成连接也不用关闭,给后续要访问数据库的线程继续使用。JABC是JAVA访问关系型数据库的标注API,它为各种关系型数据的访问提供统一的接口标准,然后,各个关系型数据库厂商按照JBDC的标准,提供能使JAVA访问的驱动包。由此看出,执行一个sql的开销是比较大的,因此,为了节省资源提高效率,使用数据库连接池是很有必要的。原创 2023-05-09 14:29:39 · 13404 阅读 · 0 评论 -
spring-boot Jackson全局配置
springboot默认使用Jackson对请求载体进行反序列化和对响应数据进行序列化,那么,在序列化过程中,当我们希望加入一些特定规则时,spring-boot提供了几种解决方案,如下。注入自定义的ObjectMapper,覆盖默认的OjectMapper,可全局的配置特定的序列化规则,例如。使用Jackson注解,可针对单个对象的某个属性配置特定的序列化规则,例如。使用配置文件,可全局的配置特定的序列化规则,例如。原创 2023-04-19 15:53:52 · 1220 阅读 · 0 评论 -
spring-sercurity实现JWT认证
结合上述内容,可以分析出认证的核心是AuthenticationManager,所以,我们需要自定义jwt的AuthenticationManager并将其注入到认证过滤器里面去。Authentication:可以是AuthenticationManager的输入,以提供用户为身份验证或SecurityContext中的当前用户提供的凭据。AuthenticationManager:定义Spring Security的过滤器如何执行身份验证的API。原创 2023-04-18 15:22:06 · 153 阅读 · 0 评论 -
spring-sercurity实现JWT登录
基于上述流程图,我们需要实现一个登录的接口,代码如下。JWT的生成方式请参考。原创 2023-04-18 14:13:44 · 175 阅读 · 0 评论 -
springboot 密码加密
密码进行加密存储能够一定程度保护密码泄露,一般能做到一下两点,就能够满足大部分应用的密码保护要求。spring-security-crypto模块提供了对密码的加密支持,引入spring-security即可spring-security-crypto提供了以下几个类用于密码加密。以上类都实现了PasswordEncoder接口,功能大同小异,只是加密算法不一样,选其一即可,代码如下。原创 2023-03-23 11:40:25 · 1468 阅读 · 0 评论 -
springboot controller统一异常处理
在接口访问的过程中,经常会遇到错误信息响应的问题,常见的错误信息大致可分为两种情况1、系统运行时的未知异常,直接将这种异常返回给客户端是不怎么友好的。2、根据业务需求和程序设计,需要主动返回给客户端的异常或错误信息,这种情况会增加很多重复工作量。springboot中使用@RestControllerAdvice和@ExceptionHandler注解的结合使用,能够很好解决上面的问题。@RestControllerAdvice:使用再类上面,会将其使用了@ExceptionHandler的成员方法作用的到原创 2023-03-16 15:50:03 · 401 阅读 · 0 评论 -
springboot spring-mvc
spring-mvc是一个实现了mvc设计模式的web框架,mvc将web应用分为m(model)、v(view)、c(controller)三层来实现职责隔离,使得web开发更加便捷。mcv的结构划分如下图视图:负责跟客户端(浏览器)的交互,比如资源展示、数据填写、提交等等。控制器:负责将用户请求正确的交给模型层处理,然后返回处理结果,用户可能是视图层或外部系统等。模型:负责处理具体的业务逻辑、和数据库交互等。下面主要对控制器层的一些常用点展开叙述。原创 2023-03-15 16:27:28 · 270 阅读 · 0 评论 -
springboot 日志集成
springboot 日志原创 2023-03-09 16:56:54 · 510 阅读 · 0 评论 -
springboot 配置文件
springboot 配置文件原创 2023-03-08 16:49:52 · 168 阅读 · 1 评论 -
springboot 构建第一个web项目
至此,一个springboot的web项目已初建完成。后续将会基于这个项目,叠加web开发中一些常用的功能,以及最终搭建出一套基本可用的springcould框架。选择file>new>module>Spring Initializr,在Artifact处输入名称,JDK版本视情况选择,点击next。在Dependencise里面选择Spring Web,点击Finish。创建完成,会生成如下一个,包含pom.xml的maven项目。在java根目录下,新建启动类。原创 2023-03-08 11:49:15 · 143 阅读 · 0 评论