
SpringBoot单体应用学习
文章平均质量分 66
分享springboot源码+demo整合其他插件
pshdhx_albert
主要更新java全系列博文,包括学习过程中的基础笔记与工作过程中的经验分享,后续会分享面试题。
从一做起,脚踏实地,稳中求进,有质量的量变才会引起质变!pursue ~~~
展开
-
深入了解SpringBoot的自动装配
深入了解SpringBoot的自动装配原创 2021-12-11 16:39:51 · 844 阅读 · 0 评论 -
基于RSocket协议实现客户端与服务端通信
基于RSocket协议实现客户端与服务器通信原创 2021-12-09 15:45:59 · 1056 阅读 · 1 评论 -
一篇文章了解RSocket协议
RSocket是一个类似于HTTP的通讯协议。在了解Rsocket协议之前,先简单介绍下HTTP协议。之所以推出springboot的技术,一个原因是因为前后端设计的分离。因为基于HTTP协议可以直接返回REST数据内容。REST是一个简单且容易使用的异构处理架构,REST对于浏览器有这非常好的支持,同时也便于开发者进行测试。然而,当前所采用的REST架构大多是基于HTTP/1.1协议实现的,它存着这如下的问题。HTTP简介HTTP/1.1采用的是重文本传输,在某些场景下会给微服务带来巨.原创 2021-12-01 10:52:00 · 3716 阅读 · 0 评论 -
springboot响应式编程-整合webFlux
springboot整合webFlux原创 2021-11-30 16:30:51 · 760 阅读 · 0 评论 -
springboot异步任务的实现机制
springboot异步任务多种处理方式原创 2021-11-30 14:01:25 · 908 阅读 · 0 评论 -
springboot与异步任务+定时任务+邮件任务
1、异步任务1、pom文件,web即可2、@Async写在要异步执行的文件上,主启动类写上@EnableAsyncpackage pshdhx.task.demo.service;import org.springframework.scheduling.annotation.Async;import org.springframework.stereotype.Service;/** * @Authtor pshdhx * @Date 2021/4/120:29 * @Ver原创 2021-04-01 21:17:03 · 2198 阅读 · 0 评论 -
springboot快速整合elasticsearch+elasticsearch简介
1、ElasticSearch简介我们的应用经常需要添加检索功能,开源的ElasticSearch是目前全文搜索引擎的首选。他可以快速存储、搜索和分析海量数据。Spring Boot通过整合Spring Data Elasticsearch为我们提供了非常便捷的检索功能支持;ElasticSearch是一个分布式搜索服务,提供Restful API,底层基于Lucene,采用多shard(分片)的方式保证数据安全,并且提供自动resharding的功能,github等大型的站点也是采用了Ela...原创 2021-03-31 22:23:51 · 3372 阅读 · 0 评论 -
springboot整合rabbitmq的应用(全)
可视化操作rabbitmq1、docker容器拉取docker pull rabbitmq:3.8.14-management2、生成rabbitmq的docker容器docker run -d -p 5672:5672 -p 15672:15672 --name myrabbitmq 6d11713e4e3d-d:后台运行-p: 暴露端口,前边映射主机端口,后边映射虚拟机端口,这是主机与虚拟器通信的接口 第二个是rabbitmq管理界面的web端口映射3、物理机访问rabb原创 2021-03-30 21:30:49 · 2975 阅读 · 6 评论 -
java后台实现多次登陆失败锁定用户账户
1.实现方法:1.集成Spring Security框架[里边有登陆成功和失败的监听]2.集成Redis框架2.具体实现思路1.用户输入错误密码登陆失败的监听@Componentpublic class LoginLimitFailed implements ApplicationListener<AuthenticationFailureBadCredentialsEvent>{ @Autowired private SysUserMapper userMappe原创 2021-02-24 09:19:18 · 9739 阅读 · 2 评论 -
@Aspect 注解使用详解
AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术.AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。在spring AOP中业务逻辑仅仅只关注业务本身,将日志记录,性能统计,安全控制,事务处理,异常处理等代码从业务逻原创 2021-02-03 10:36:21 · 6825 阅读 · 0 评论 -
springboot从外部读取配置文件
springboot从外部读取配置文件--读取配置文件工具类,用于替换属性文件对应值public class ReadConfig{ private static Logger logger = LoggerFactory.getLogger(ReadConfig.class); private static final String CONFIG_URL = "/pshdhx/local.xml";// linux中配置文件路径 //读取配置文件,更改数据文件数据 p...原创 2021-02-03 09:59:29 · 5960 阅读 · 0 评论 -
后端工作中遇到的问题总结(一)
后端笔记:1、当我们在事件的监听中,无法使用service,自动注入@Autowired无法注入,获取不到service对象,其业务层的方法无法调用;可以使用工具类(SpringUtils.java),从spring容器中获取:并且主启动类中加入到import数组中;2、mybatis中的方法update table1 set title_status = '0' where id in<foreach item="id" collection="ids.split(',')" open="(原创 2021-01-15 15:32:30 · 7437 阅读 · 2 评论 -
springboot整合cache缓存+redis(三)
准备:docker镜像,redis镜像;redis桌面管理工具;redis desktop manager之后所有的代码都在github上:https://github.com/pshdhx/springboot-redis-cache-mysql1、下载docker中的redis镜像 docker pull redis2、生成redis容器;docker run -d --name redis1 -p 6379:6379 redis--requirepass "pshdhx"3、...原创 2020-12-14 20:54:34 · 5022 阅读 · 0 评论 -
springboot使用缓存的源码分析和demo代码上传(二)
demo的下载地址:https://github.com/pshdhx/springboot-redis-cache-mysql说明:我的mysql的版本是8.xx1、必要的准备,数据库中的两张表,很简单,根据代码中的实体类建立即可。application.properitiesspring.datasource.url=jdbc:mysql://localhost:3306/cache?serverTimezone=UTCspring.datasource.username=root原创 2020-12-13 22:34:09 · 5008 阅读 · 0 评论 -
springboot整合缓存(一)
一、Spring缓存抽象Spring从3.1开始定义了org.springframework.cache.Cache和org.springframework.cache.CacheManager接口来统一不同的缓存技术;并支持使用JCache(JSR-107)注解简化我们开发;• Cache接口为缓存的组件规范定义,包含缓存的各种操作集合;• Cache接口下Spring提供了各种xxxCache的实现;如RedisCache,EhCacheCache ,ConcurrentMapCache等;原创 2020-12-08 23:06:16 · 4952 阅读 · 0 评论 -
springboot嵌入式servlet容器启动原理(二)
###5)、嵌入式Servlet容器启动原理;什么时候创建嵌入式的Servlet容器工厂?什么时候获取嵌入式的Servlet容器并启动Tomcat;获取嵌入式的Servlet容器工厂:1)、SpringBoot应用启动运行run方法2)、refreshContext(context);SpringBoot刷新IOC容器【创建IOC容器对象,并初始化容器,创建容器中的每一个组件】;如果是web应用创建AnnotationConfigEmbeddedWebApplicationContext,否原创 2020-11-30 23:04:01 · 4883 阅读 · 0 评论 -
springboot配置嵌入式的servlet容器的原理(一)
使用IDEA打开pom文件,单击右键,如图所示:我么可以发现,springboot给我们内置了tomcat9.xx如此,我们就不需要再把springboot项目打包放到tomcat中发布了。因为它内置了嵌入式的tomcat;如何修改springboot的servlet容器设置在springboot2.0之前,我们通过编写一个EmbeddedServletContainerCustomizer:嵌入式的Servlet容器的定制器;来修改Servlet容器的配置@Bean //一原创 2020-11-30 22:22:57 · 5140 阅读 · 2 评论 -
springboot的错误处理机制(全)
我项目使用过程中,我们不希望我们的错误页面是springboot内置的,因此需要自己定制错误页面;默认效果:1)、浏览器,返回一个默认的错误页面这是代表浏览器请求,返回的是springboot内置的错误页面;{ "timestamp": "2020-11-29T13:40:06.107+0000", "status": 404, "error": "Not Found", "message": "No message available",原创 2020-11-29 22:21:19 · 5111 阅读 · 0 评论 -
springboot+thymeleaf实现增删改查全部操作-restful接口-案例(全)
区别: 普通CRUD(uri来区分操作) HTTP请求方式区分对资源CRUD操作 查询 getEmp emp---GET 添加 addEmp?xxx emp---POST 修改 updateEmp?id=xxx&xxx=xx emp/{id}---PUT 删除 deleteEmp?id=1 emp/{id}---DELETE 实验功能:实验功能 请求URI...原创 2020-11-29 19:35:31 · 5819 阅读 · 0 评论 -
thymeleaf实现公共元素的抽取,点击菜单栏高亮显示(全)
1、抽取公共片段<div th:fragment="copy">© 2011 The Good Thymes Virtual Grocery</div>2、引入公共片段<div th:insert="~{footer :: copy}"></div>~{templatename::selector}:模板名::选择器~{templatename::fragmentname}:模板名::片段名3、默认效果:insert的.原创 2020-11-29 15:44:55 · 5749 阅读 · 0 评论 -
springboot实现登录的拦截器控制(全)
背景:有些页面是只能登录之后访问的,因此我们需要对除了登录操作的相关页面进行拦截控制login.html<form class="form-signin" action="dashboard.html" th:action="@{/user/login}" method="post">LoginController.javapackage com.pshdhx.controller;import org.springframework.stereotype.Control原创 2020-11-29 14:23:53 · 5319 阅读 · 0 评论 -
springboot实现国际化案例(全)
在springmvc中实现国际化的步骤1、编写国际化配置文件,我们将要显示的内容都配置出来;2、使用resourcebundlemessagesource来管理国际化资源文件;3、如果是以前的jsp页面,可以使用fmt:message来取出国际化的内容;springboot的配置抽取页面需要显示的国际化消息;示例:在登录页面进行国际化的配置;login.properitieslogin.tip=请登录~login.username=用户名~login_en_US.原创 2020-11-29 13:11:26 · 6011 阅读 · 4 评论 -
springboot解决server.context-path=/crud 不生效的问题
原因:在springboot2.0.0之后,这个server.context-path过期了,换成了server.servlet.context-path=/crud这个配置。如此即可访问项目名原创 2020-11-29 11:06:35 · 5060 阅读 · 0 评论 -
解决spring5与thymeleaf版本冲突的问题
我的springboot版本是2.2.6.RELEASE但是我的thymeleaf是这样配置的 <thymeleaf.version>3.0.9.RELEASE</thymeleaf.version> <!-- 布局功能的支持程序 thymeleaf3主程序 layout2以上版本--> <thymeleaf-layout-diclect.version>2.2.2</thymeleaf-layout-dic原创 2020-11-29 10:55:13 · 7525 阅读 · 1 评论 -
springboot自定义starter源码笔记
starter:1、这个场景需要使用到的依赖是什么?2、如何编写自动配置@Configuration //指定这个类是一个配置类@ConditionalOnXXX //在指定条件成立的情况下自动配置类生效@AutoConfigureAfter //指定自动配置类的顺序@Bean //给容器中添加组件@ConfigurationPropertie结合相关xxxProperties类来绑定相关的配置@EnableConfigurationProperties //让xxxProperties原创 2020-11-14 10:29:28 · 5047 阅读 · 0 评论 -
springboot启动配置原理
几个重要的事件回调机制配置在META-INF/spring.factoriesApplicationContextInitializerSpringApplicationRunListener只需要放在ioc容器中ApplicationRunnerCommandLineRunner启动流程:1、创建SpringApplication对象initialize(sources);private void initialize(Object[] sources) { //保存主配原创 2020-11-14 10:22:14 · 4901 阅读 · 0 评论 -
springboot与数据访问整合mybatis与springData JPA
1、jdbc<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring‐boot‐starter‐jdbc</artifactId></dependency><dependency> <groupId>mysql</groupId> <artifactId>原创 2020-11-14 10:13:59 · 5076 阅读 · 0 评论 -
springboot整合web开发流程配置+源码分析笔记(二)
简介:使用SpringBoot;1)、创建SpringBoot应用,选中我们需要的模块;2)、SpringBoot已经默认将这些场景配置好了,只需要在配置文件中指定少量配置就可以运行起来3)、自己编写业务代码;自动配置原理这个场景SpringBoot帮我们配置了什么?能不能修改?能修改哪些配置?能不能扩展?xxxxAutoConfiguration:帮我们给容器中自动配置组件xxxxProperties:配置类来封装配置文件的内容SpringBoot对静态资源的映射规则;原创 2020-11-13 15:17:22 · 5305 阅读 · 0 评论 -
springboot日志框架学习整理笔记(一)
背景1、由原先的System.out.println()来打印日志;2、把日志通过IO流存储到日志文件夹中;3、封装一个日志框架来完善日志功能;4、通过封装API来调用日志框架的接口;5、最终形式==日志框架和使用方式和JDBC驱动差不多;写了一个统一的接口层;日志门面(日志的一个抽象层);logging-abstract.jar;给项目中导入具体的日志实现就行了;我们之前的日志框架都是实现的抽象层;市面上的日志框架JUL、JCL、Jboss-logging、logback原创 2020-11-11 21:33:28 · 5760 阅读 · 0 评论 -
springboot配置文件、注解、自动配置原理学习笔记(一)
一、springboot的简单运行原理首先,springboot一定有父项目,就是maven中的pom文件中引入的<parent><groupId>org.springframework.boot</groupId><artifactId>spring‐boot‐starter‐parent</artifactId><version>1.5.9.RELEASE</version>&l...原创 2020-11-08 19:40:13 · 5074 阅读 · 1 评论 -
HTTP常见报错原因 :401 、403、404、500等
http协议的状态码1xx(临时响应)表示临时响应并需要请求者继续执行操作的状态码。 100(继续) 请求者应当继续提出请求。服务器返回此代码表示已收到请求的第一部分,正在等待其余部分。 101(切换协议) 请求者已要求服务器切换协议,服务器已确认并准备切换。 2xx(成功)表示成功处理了请求的状态码。 200(成功) 服务器已成功处理了请求。通常,这表示服务器提...转载 2020-10-26 15:33:23 · 23807 阅读 · 0 评论 -
springboot整合视图层+持久层技术
整合持久层技术整合jsp 整合frameworker 整合thymeleaf整合jsp技术pom文件<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-原创 2020-10-26 11:58:38 · 4185 阅读 · 0 评论 -
文件处理工具类-来自若依
package com.ruoyi.common.utils.file;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;import java.io.OutputStream;import java.io.UnsupportedEncodingException;import java.net.URLEncod.原创 2020-10-21 08:40:14 · 4485 阅读 · 1 评论 -
java后端构造树结构列表的方法,前端一次请求,后端全部返回;
目的:构造部门上下级部门树列表,在业务层构建树结构,返回给前端,减少前端工作量。方式DeptVo.javapackage com.pshdhx.treebuild;import java.util.ArrayList;import java.util.List;/** * 部门实体类 * @author pshdhx * */public class DeptVo { private String deptId; //部门id private String paren原创 2020-10-20 12:41:15 · 5205 阅读 · 1 评论 -
springboot+vue+element-ui实现文件上传前后台代码+文件上传后台工具类
//新增模板接口@PreAuthorize("@ss.hasPermi('pshdhx:template:add')")@Log(title="template",businessType=BusinessType.INSERT)@PostMapping("add")@ResponseBodypublic AjaxResult add (Template template,MutipartFile file){ if(file!=null){ String filePath = MyPro.原创 2020-10-17 17:15:08 · 5349 阅读 · 2 评论 -
后台管理增删查改统一性代码--若依前后端分离版本
controller:@PreAuthorize("@ss.hasPermi('system:role:list')") //和数据库中的menu中的字段有关系@GetMapping("list")public TableDataInfo list(SysRole role){ startPage(); List<SysRole> list = roleService.selectRoleList(role); return getDataInfo(list);}表格分页数.原创 2020-10-08 19:10:00 · 5023 阅读 · 0 评论 -
springboot初步整合web(一)
1、整合filterspringboot-整合filter方式1@WebFilter(filtername urlpattern="拦截多个请求,{"*.do","*.action","/firstServlet",}")public clsss FirstFilter implements Filter{ //重写方法 }主启动@ServletComponentScan@SpringBootApplication方式2public class SecondFilter i原创 2020-09-30 17:33:55 · 4005 阅读 · 0 评论 -
Thymeleaf中文文档api地址
https://fanlychie.github.io/post/thymeleaf.html原创 2020-09-16 10:31:20 · 4974 阅读 · 0 评论 -
springboot的 application-dev.yml配置
server: port: 8888 servlet: context-path: /pshdhx compression: enabled: true mime-types: application/javascript,application/json,application/xml,text/html,text/xml,text/plain,text/css,images/* use-forwar.原创 2020-08-17 10:32:46 · 10586 阅读 · 0 评论