springBoot
文章平均质量分 66
springBoot
爱JAVA的少年闰土
现在的你,是十年前你的决定;十年后的你,是现在的你决定。
种一棵树,最好是十年前,其次是现在,想要改变,从此刻开始,一切还不晚。
星光不问赶路人,时光不负有心人。愿你十年后的今天,不为虚度年华而悔恨,所得皆所愿。我们各自努力,顶峰相见。
展开
-
SpringBoot集成Redis
在 SpringBoot 中整合 Redis 十分简单,目前来看,对 Redis 的整合支持两种使用方式:Lettuce(推荐) 和 Jedis;默认的是 Lettuce,也是推荐的方式。原创 2023-03-20 16:14:45 · 582 阅读 · 0 评论 -
SpringBoot集成Kaptcha验证码
在开发中,验证码功能是一个常见且重要的功能,Kaptcha 是大名鼎鼎的谷歌公司提供的一款用于生成验证码的插件,支持高度可配置;本章将通过一个简单的示例展示如何实现验证码功能。原创 2023-03-14 11:46:55 · 628 阅读 · 0 评论 -
SpringBoot集成Token
在项目开发中,Token 是常见且重要的一个功能,目前对于 Token 设计有很多成熟的方案;比如使用 Redis 存储管理 Token,不过这种方式需要而额外集成 Redis 服务,虽然 Redis 查询效率很高,但是对于普通项目来说,还是增加了开发难度;原创 2023-03-14 10:26:23 · 1214 阅读 · 1 评论 -
SpringBoot+Maven搭建分模块项目
前面介绍的项目都是一个整体的 SpringBoot 项目,在实际的开发过程中,特别是微服务部分,经常需要将各个功能模块分开,使用 Maven 就能很好的实现这个效果1. 父级项目添加子模块的配置有两处,分别在 和 下,子模块的信息一定要填写准确2. 由于 Controller 模块还作为启动模块,特别要主要各个模块之间的包名的关系。原创 2023-03-14 09:50:07 · 953 阅读 · 0 评论 -
SpringBoot启用GZIP压缩
Gzip 压缩算法的压缩比非常高,能有效减少数据大小和网络传输负担,而且现代浏览器基本上都支持 Gzip 压缩技术,所以在项目中使用数据压缩技术是非常好的方案;启用 GZIP 压缩可以大大提高数据传输效率,像 js 等文件压缩比能达到 4 倍左右;使得网页访问速度大大增加。原创 2023-03-14 10:13:44 · 2455 阅读 · 0 评论 -
SpringBoot使用Redis实现缓存
上一章已经介绍了如何在 SpringBoot 中如何使用缓存,本章将介绍如何将缓存和 Redis 结合使用。原创 2023-03-10 16:16:59 · 616 阅读 · 0 评论 -
SpringBoot使用缓存
Spring 框架已经具备了缓存机制,虽然我们可以使用 Redis 等作为缓存处理机制,不过对于非常零碎的数据交互其实使用 Spring 的缓存机制反而显得简单;而且我们可以将 Spring 的缓存机制融合 Redis 和 关系型数据库建立一个完备的数据处理方案,相当于实现了 3 级缓存,将非常有助于超大型系统的数据交互压力。原创 2023-03-09 14:41:57 · 1421 阅读 · 0 评论 -
SpringBoot集成MyBatis
1. xxxMapper.class 上添加 @Mapper 注解表明这是一个 Mapper 类,也可以在项目启动类或添加了 @Configuration 注解的配置类上添加 @MapperScan("com.study.springboot.mapper") 注解表明这个包路径下的所有接口类都是 Mapper 类;3. 对于自增的记录,有时候我们需要插入操作后直接返回插入的结果,但是得不到自增的主键,如果是使用 xxxMapper.xml 文件方式,可以通过添加如下属性解决这个问题。原创 2023-03-08 13:36:14 · 578 阅读 · 0 评论 -
SpringBoot使用log
SpringBoot 默认的 log 插件是 Logback + slf4j,所以根本不用再配置再 log4j。原创 2023-03-08 13:33:42 · 376 阅读 · 0 评论 -
SpringBoot部署War包到Tomcat
SpringBoot 项目可以以 jar 和 war 包格式启动,jar 包部署的方法非常简单,只需要在 pom.xml 文件中将 packaging 这项设置为 jar,直接打包即可;将打好的 jar 包,通过命令 java -jar xxx.jar 启动就好了;本章主要介绍如何打成 war 包,并部署到 tomcat 服务器。原创 2023-03-08 09:53:59 · 444 阅读 · 0 评论 -
SpringBoot集成数据源
spring-boot-starter-data-jdbc 是 SpringBoot 中一个比较简单的数据操作框架,它集成了 JdbcTemplate 来操作数据库;当引入了 spring-boot-starter-data-jdbc 后,有如下自动配置类帮助我们完成自动配置。:因为我们使用的 SpringBoot 的版本是 2.3.4.RELEASE,默认该版本引入的 MySQL 的版本是 8.0.21;Druid 是阿里的数据源框架,是非常受欢迎的一款数据源整合框架;原创 2023-03-08 09:48:07 · 709 阅读 · 0 评论 -
SpringBoot之Session共享问题
使用 @CrossOrigin 注解即可实现跨域请求,不过由此带来的问题是 HttpSession 不一致的问题;真实情景:用户请求后台验证码,后台 session 保存验证码 5 分钟,当用户在前端输入验证码后,点击确认再次发送请求到后台验证是否和上一次请求中 session 保存的验证码一致;如果前端和后台是分离开发的,请求都是跨域请求的话,就会导致两次请求方法中的 session 不一致,从而导致验证失败。原创 2023-03-08 09:44:12 · 883 阅读 · 0 评论 -
SpringBoot跨域请求处理
通过 cors 协议处理跨域问题,需要在添加了 @Configuration 注解的配置类中实现如下方法。在控制层类上或者方法上直接添加 @CrossOrigin 注解即可。原创 2023-03-08 09:40:12 · 126 阅读 · 0 评论 -
SpringBoot定制化组件
也就是说 WebMVCAutoConfiguration.class 中的默认配置将全部失效!所有这些默认配置都需要我们自己实现;例如系统默认静态资源 /static/,/public/ 等等默认访问路径将全部失效!SpringBoot 项目中对组件的普通定制化可通过实现 WebMvcConfigurer 接口实现对应方法定制 Web 功能;例如:修改静态文件默认访问地址。对 WebMVC 模块全面接管;但要注意:添加了 @EnableWebMvc 注解后,系统的静态资源、视图解析器,欢迎页面等等配置会。原创 2023-03-08 09:36:07 · 197 阅读 · 0 评论 -
SpringBoot嵌入式Servlet容器
默认情况下,我们通过在 application.properties 配置文件中添加 server.xxx 配置即可修改 WebServer 的默认配置;如果要自定义修改配置,可参考如下实现方法新建 CustomServer.class 并实现 WebServerFactoryCustomizer 接口,重写 customize() 方法即可@Component@Override// 修改服务启动端口。原创 2023-03-02 09:55:52 · 179 阅读 · 1 评论 -
SpringBoot之Web原生组件注入(Servlet,Filter,Listener)
在 SpringBoot 中要使用 Servlet、Filter、Listener 的话,可通 过 @WebServlet/@WebFilter/@WebListener + @ServletComponentScan 注解组合实现;假如我们的 Servlet、Filter、Listener 都放在 com.study.springboot.servlet 这个包下,那么在使用这些原生组件之前,在项目的启动类或项目的配置类上添加如下注解。新建 MyServlet.class 添加如下测试代码即可。原创 2023-03-02 09:53:54 · 288 阅读 · 0 评论 -
SpringBoot访问jsp页面
SpringBoot 也可以像 SpringMVC 项目一样支持 web 开发,对于前端页面的访问,配置是十分相近。原创 2023-03-02 09:49:06 · 3786 阅读 · 0 评论 -
SpringBoot异常处理
1. 新建 GlobalErrorController.class 实现 ErrorController 接口并实现如下逻辑// 错误请求路径@Resource@Override/*** JSON格式错误信息*/注意1)ERROR_PATH = "/error" 这个路径其实就是 SpringBoot 错误处理机制中自动配置的路径;在 ErrorProperties.class 中可找到这个配置。原创 2023-03-02 09:25:51 · 1486 阅读 · 0 评论 -
SpringBoot文件上传
在 SpringBoot 中文件上传实现方式有很多种,对于 SpringBoot 而言,如下这种方式是最简单的。#单个上传文件最大限制。#多个文件上传最大限制。原创 2023-02-20 10:01:30 · 157 阅读 · 0 评论 -
SrpingBoot拦截器
我们可以通过实现 HandlerInterceptor 接口并实现其 preHandler(),postHandle(),afterCompletion() 方法构建自定义拦截器需求:实现一个拦截器对所有添加了 @LogRecord 注解的方法进行拦截,并打印出请求信息新建 LogRecord.class 作为日志功能标识新建 LogInterceptor.class 实现日志记录功能/*** 日志记录*//*** 目标方法执行之前*/@Override// 记录请求开始时间。原创 2023-02-20 09:59:45 · 291 阅读 · 0 评论 -
SpringBoot之@ControllerAdvice,@ModelAttribute,@InitBinder详解
通过@ControllerAdvice,我们可以将控制器的全局配置放置在同一个位置,注解了@Controller 的类的方法可使用 @ExceptionHandler、@InitBinder、@ModelAttribute 注解到方法上,这对所有注解了@RequestMapping 的控制器内的方法有效。主要作用于 GET 请求,常用来校验接收的值,设置不返回的值,或者初始化传递来的值(常用来对前端传递来的日期的转化处理)这种情况下,返回值 String(或者其他对象),就不再是视图了;原创 2023-02-20 09:56:06 · 882 阅读 · 0 评论 -
SpringBoot参数请求处理
在默认情况下,SpringBoot 会对所有添加了 @ResponseBody(或 @RestController) 注解的方法的返回值转化为 JSON 格式返回(转换器为上图的 MappingJackson2HttpMessageConverter);如果不是通过 ajax 请求的方式(设置 content-type),直接在浏览器访问的 GET 请求无法设置请求头类型,那么可通过携带 format 参数的形式实现动态请求头功能;注意:取出的请求头名称全小写。@RequestParam:获取请求参数;原创 2023-02-19 08:00:00 · 1029 阅读 · 0 评论 -
SpringBoot静态资源访问
类路径下:/resources/static/、/resources/public/、/resources/resources/、/resources/META-INF/resources 这些路径下的资源均可直接访问;通过 http://ip:port/资源名称 访问即可可在配置文件中对访问路径和访问拦截规则进行设置,如下是 SpringBoot 默认的配置和开发过程中常用配置#可直接访问的静态资源路径#访问拦截规则#静态资源缓存时间(秒)原创 2023-02-18 07:00:00 · 695 阅读 · 0 评论 -
SpringBoot分页实现
分页功能是一个简单但必需的功能,在 SpringBoot 中分页实现非常的简单,有多种实现方式;主要和项目集成的持久层框架有关;这里主要介绍集成 MyBatis 和 SpringDataJpa 的分页实现。原创 2023-02-17 15:42:20 · 3603 阅读 · 1 评论 -
SpringBoot配置自动提示
我们在配置文件中添加配置的时候,会发现当我们输入配置项的时候,会出现自动提示;但我们自己定义的类绑定 properties 配置的时候却没有提示功能,如果我们这个配置要由其他用户设置的话,其他用户根本就不知道有哪些配置;SpringBoot 提供了一个自动配置依赖用来解决这个问题实现步骤在 pom.xml 配置文件中引入 spring-boot-configuration-processor 依赖在 User.class 类中添加如下代码,该对象的两个属性从配置文件中设置@Data。原创 2023-02-16 10:11:10 · 578 阅读 · 0 评论 -
SpringBoot项目热部署
在开发阶段,有时候会频繁修改代码不停的重启项目,还是比较费时间的;所以 SpringBoot 提供了热部署机制,方便我们修改代码后快速重启项目;IDEA 的重启快捷键是 shift + F10,但是启动速度不如 devtools实现步骤在项目的 pom.xml 配置文件中添加 spring-boot-devtools 依赖当我们修改了代码或配置信息,只需要按下 ctrl + F9 键,即可快速重启项目;如果没有更新程序,那么重启不会发生。原创 2023-02-16 10:09:22 · 134 阅读 · 0 评论 -
SpringBoot之@ConfigurationProperties详解
该注解主要用于将配置文件中的属性映射到实体类属性;通过注解中的 prefix 属性筛选出配置文件中所有以 prefix 配置项开头的配置,然后映射到实体类中对应的属性上,使用方式有如下 2 种@ConfigurationProperties + @Component 组合注解在 application.properties 配置文件中添加如下配置在 User.class 类中添加如下代码@Data@Component。原创 2023-02-16 10:06:43 · 403 阅读 · 0 评论 -
SpringBoot之@ImportResource详解
该注解主要用于导入其他 Spring 配置文件。原创 2023-02-16 10:04:46 · 276 阅读 · 0 评论 -
SpringBoot之@Conditional详解
条件装配,满足 @Conditional 指定的条件则进行组件注入;进入到 @Conditional 注解类,按 ctrl + H 键可以查看该注解的继承树结构如下。原创 2023-02-16 10:02:08 · 144 阅读 · 0 评论 -
SpringBoot之@Import详解
我们发现,通过 @Import 注解引入的 User Bean 对象的实例名是类的全路径,这和 @Bean 注解注册的 Bean 对象的实例名是有差别的, @Bean 注解如果没有指定 Bean 名字的话,默认名字是方法名。@Import 注解主要添加在配置类上,它的作用是添加不同的组件到项目容器中,通过调用指定类的无参构造函数创建 Bean 对象并注册到容器中。原创 2023-02-15 14:27:31 · 235 阅读 · 1 评论 -
SpringBoot之@Configuration详解
这是因为配置类上添加了 @Configuration 注解,容器中的 appConfig Bean对象不是普通对象,而是一个代理对象(CGLIB 增强代理对象),从上面打印出的 appConfig 可以看出;代理对象调用 user() 方法,SpringBoot 总会检查 user() 返回的 User 对象在容器中是否已经存在,如果存在就直接返回容器中的 User Bean 对象。如果组件之间没有依赖,可以设置proxyBeanMethods = false,这将有助于提高容器初始化速度。原创 2023-02-15 14:27:14 · 2532 阅读 · 1 评论 -
SpringBoot自动配置特性
当我们引入了 SpringBoot 父级依赖和 spring-boot-starter-web 依赖后;SpringBoot 会帮我们实现如下自动配置。原创 2023-02-13 16:44:08 · 279 阅读 · 0 评论 -
SpringBoot依赖管理特性
官方所有的 starter 在官网:https://docs.spring.io/spring-boot/docs/2.3.4.RELEASE/reference/html/using-spring-boot.html#using-boot-starter 下找到。这里面已经声明了我们开发中可能会遇到的所有的依赖版本信息;所有场景启动器最底层的依赖是 spring-boot-starter 依赖,该依赖在 spring-boot-starter-web-2.3.4.RELEASE.pom 中。原创 2023-02-13 16:34:33 · 3306 阅读 · 0 评论 -
SpringBoot简介
SpringBoot 官网地址:https://spring.io/projects/spring-boot/SpringBoot 文档地址:https://docs.spring.io/spring-boot/docs/2.3.4.RELEASE/reference/html/第一个 SpringBoot 项目打开 IDEA 工具,新建 SpringInitializr 项目;注意选择正确的打包方式和 Java 版本。原创 2023-02-13 14:26:29 · 83 阅读 · 1 评论