![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
SpringBoot
文章平均质量分 63
༺鲸落༻
Life is transient
展开
-
SpringBoot和MybatisPlus的多数据源配置及两者的区别
SpringBoot和MybatisPlus的多数据源配置及两者的区别原创 2023-10-21 16:41:06 · 474 阅读 · 0 评论 -
MybatisPLus输出sql语句到指定文件(附带完整的参数)
MybatisPLus输出sql语句到指定文件(附带完整的参数)原创 2023-05-02 16:49:32 · 3523 阅读 · 0 评论 -
使用百度云AI实现刷脸登录
前言刷脸登录是基于人工智能、生物识别、3D传感、大数据风控技术,最新实现的登录形式。用户在无需输入用户名密码的前提下,凭借“刷脸”完成登录过程。实现刷脸登录的核心是人脸处理,在人脸处理中有两个概念:人脸检测:检测图中的人脸,并为人脸标记出边框。检测出人脸后,可对人脸进行分析,获得眼、口、鼻轮廓等72个关键点定位准确识别多种人脸属性,如性别,年龄,表情等信息人脸识别(对比):通过提取人脸的特征,计算两张人脸的相似度,从而判断是否同一个人,并给出相似度评分。作为中小型企业,可以采取世面上流行的人工智转载 2020-10-12 14:25:36 · 1921 阅读 · 1 评论 -
37 | (加深印象)SpringBoot整合shiro和redis实现授权、认证和会话管理
前言之前我写过一篇关于shiro的,但时间长了,忘了且感觉写得不是很完整,再写一篇加深印象,这里建议你先看完之前那篇文章,因为这里将不重点介绍shiro的基础知识1. spring和shiro的整合依赖<dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-spring</artifactId> <version>1.3.2</vers原创 2020-10-05 18:12:08 · 332 阅读 · 0 评论 -
基于JWT的API鉴权如何实现?
前言如果我们每个方法都去写一段代码,冗余度太高,不利于维护,那如何做使我们的代码看起来更清爽呢?我们可以将这段代码放入拦截器去实现1. Spring中的拦截器Spring为我们提供了org.springframework.web.servlet.handler.HandlerInterceptorAdapter这个适配器,继承此类,可以非常方便的实现自己的拦截器。他有三个方法:分别实现预处理、后处理(调用了Service并返回ModelAndView,但未进行页面渲染)、返回处理(已经渲染了页面)原创 2020-10-04 16:10:03 · 536 阅读 · 0 评论 -
解决Jpa经典的noSession问题(基于springboot的项目中)
前言could not initialize proxy - no Session; 基于JPA的实现来分析,就是在进行数据库访问之时,当前针对数据库的访问与操作session已经关闭且释放了,故提示no Session可用。解决在启动类中注入一个Beanpackage com.ihrm.system;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.S原创 2020-10-04 14:35:35 · 872 阅读 · 0 评论 -
有状态服务和无状态服务的区别是啥?
1. 什么是服务中的状态有状态和无状态服务是两种不同的服务架构,两者的不同之处在于对于服务状态的处理。服务状态是服务请求所需的数据,它可以是一个变量或者一个数据结构。无状态服务不会记录服务状态,不同请求之间也是没有任何关系;而有状态服务则反之。对服务器程序来说,究竟是有状态服务,还是无状态服务,其判断依据——两个来自相同发起者的请求在服务器端是否具备上下文关系。2.无状态服务(常见JWT)无状态请求,服务器端所能够处理的数据全部来自于请求所携带的信息,无状态服务对于客户端的单次请求的处理,不依原创 2020-10-04 12:08:33 · 14307 阅读 · 3 评论 -
通过JJWT开源类库实现JWT签发和验证,香吗?
1. 什么是TOKEN签发与验证?看上一篇四种常见的认证机制2. 什么是JWT?JSON Web Token(JWT)是一个非常轻巧的规范。这个规范允许我们使用JWT在用户和服务器之间传递安全可靠的信息。在Java世界中通过JJWT开源类库实现JWT创建和验证。3. JJWT的快速入门3.1 token的创建(加密)(1)创建maven工程,引入依赖<!-- https://mvnrepository.com/artifact/io.jsonwebtoken/jjwt -->&原创 2020-10-02 18:02:26 · 325 阅读 · 0 评论 -
通用代码套用(结果返回码+分页返回码+雪花算法代码实现自动生成Id)
1. 结果返回码package com.nsx.common.entity;//公共的返回码public enum ResultCode { SUCCESS(true, 10000, "操作成功!"), //---系统错误返回码----- FAIL(false, 10001, "操作失败"), UNAUTHENTICATED(false, 10002, "您还未登录"), UNAUTHORISE(false, 10003, "权限不足"), SERV原创 2020-09-20 11:00:35 · 134 阅读 · 0 评论 -
36 | SpringBoot开启热部署
转载:SpringBoot开启热部署,亲测有效,实用教程一、开启项目静态自动编译点击 File >>> Settings >>> Default Settings >>> Build >>> Compiler 勾选 Build project automatically二、开启动态自动编译同时按住 Ctrl + Shift + Alt + / 然后进入Registry ,勾选自动编译并调整延时参数,(延时参数也就是代码更改后多转载 2020-09-06 16:28:50 · 100 阅读 · 0 评论 -
35 | SpringBoot整合Shiro之MD5盐值加密
前言这篇文章是对上一篇 34 | Spring Boot整合Shiro框架(Shiro简介+实现登录拦截、用户认证、请求授权并整合Mybatis和Thymeleaf)的扩展1. MD5盐值加密和MD5加密的区别当两个用户的密码相同时,单纯使用不加盐的MD5加密方式,会发现数据库中存在相同结构的密码,这样是不安全的。为了实现两个人的原始密码一样,但加密后的结果是不一样的效果,就要使用加了盐的MD5加密方式。其实就好像炒菜一样,两道一样的鱼香肉丝,加的盐不一样,炒出来的味道就不一样。2. 使用步骤2.原创 2020-09-03 19:02:51 · 894 阅读 · 2 评论 -
34 | Spring Boot整合Shiro框架(Shiro简介+实现登录拦截、用户认证、请求授权并整合Mybatis和Thymeleaf)
1. Shiro简介1.1 什么是Shiro?Apache Shiro 是一个功能强大且易于使用的 Java 安全框架Apache Shiro 不仅可以用在JavaSE环境,也可以用在JavaEE环境Apache Shiro 可执行身份验证、授权、加密、会话管理、Web集成、缓存等下载地址1.2 有哪些功能?1.3 Shiro架构(外部)从外部来看Shiro,即从应用程序角度来观察如何使用shiro完成工作1.4 Shiro架构(内部)2. 10分钟快速上手2.1原创 2020-09-02 18:52:15 · 474 阅读 · 0 评论 -
32 | Spring Boot与分布式(zookeeper+dubbo)
一、分布式应用分布式应用(distributed application)指的是应用程序分布在不同计算机上,通过网络来共同完成一项任务的工作方式。单一应用架构当网站流量很小时,只需一个应用,将所有功能都部署在一起,以减少部署节点和成本。此时,用于简化增删改查工作量的数据访问框架(ORM)是关键。垂直应用架构当访问量逐渐增大,单一应用增加机器带来的加速度越来越小,将应用拆成互不相干的几个应用,以提升效率。此时,用于加速前端页面开发的Web框架(MVC)是关键。分布式服务架构当垂直应用越来越多原创 2020-08-05 21:01:05 · 156 阅读 · 0 评论 -
33 | Spring Boot与监控管理
通过引入spring-boot-starter-actuator,可以使用Spring Boot为我们提供的准生产环境下的应用监控和管理功能。我们可以通过HTTP,JMX,SSH协议来进行操作,自动得到审计、健康及指标信息等一、 Actuator监控管理导入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-bo原创 2020-08-05 20:55:36 · 122 阅读 · 0 评论 -
31 | SpringBoot安全之整合Spring Security
一、安全应用程序的两个主要区域是“认证”和“授权”(或者访问控制),这两个主要区域是安全的两个目标。 身份验证意味着确认您自己的身份,而授权意味着授予对系统的访问权限认证身份验证是关于验证您的凭据,如用户名/用户ID和密码,以验证您的身份。系统确定您是否就是您所说的使用凭据。在公共和专用网络中,系统通过登录密码验证用户身份。身份验证通常通过用户名和密码完成,授权另一方面,授权发生在系统成功验证您的身份后,最终会授予您访问资源(如信息,文件,数据库,资金,位置,几乎任何内容)的完全权限。简单来说,授原创 2020-08-05 00:12:56 · 179 阅读 · 0 评论 -
30 | SpringBoot之邮件任务
springboot自动配置包中MailSenderAutoConfiguration通过@Import注解向容器中导入了MailSenderJndiConfiguration,而MailSenderJndiConfiguration向容器中导入了JavaMailSenderImpl类,我们可以使用该类发送邮件首先登录自己的qq邮箱,进入 设置 - 账户 开启所有服务点POP3的开启获取授权码加入依赖<dependency> <groupId>org.sprin原创 2020-08-05 00:12:22 · 418 阅读 · 0 评论 -
29 | SpringBoot之缓存的使用
创建项目使用Idea创建一个SpringBoot项目环境搭建(1)导入数据库文件,创建出department和employee表/*Navicat MySQL Data TransferSource Server : 本地Source Server Version : 50528Source Host : 127.0.0.1:3306Source Database : springboot_cacheTarget Server Typ原创 2020-08-05 00:08:03 · 160 阅读 · 0 评论 -
28 | 浅谈SpringBoot缓存的几个重要概念和注解
原创 2020-08-04 23:58:59 · 113 阅读 · 0 评论 -
27 | 浅谈SpringBoot缓存之JSR107和Spring缓存抽象
JSR107(麻烦)Java Caching定义了5个核心接口,分别是CachingProvider, CacheManager, Cache, Entry 和 Expiry。• CachingProvider定义了创建、配置、获取、管理和控制多个CacheManager。一个应用可以在运行期访问多个CachingProvider。• CacheManager定义了创建、配置、获取、管理和控制多个唯一命名的Cache,这些Cache存在于CacheManager的上下文中。一个CacheManager原创 2020-08-04 23:56:59 · 155 阅读 · 0 评论 -
26 | SpringBoot之自定义starter
starter: 1、这个场景需要使用到的依赖是什么? 2、如何编写自动配置@Configuration //指定这个类是一个配置类@ConditionalOnXXX //在指定条件成立的情况下自动配置类生效@AutoConfigureAfter //指定自动配置类的顺序@Bean //给容器中添加组件@ConfigurationPropertie结合相关xxxProperties类来绑定相关的配置@EnableConfigurationProperties //让xxxPro原创 2020-08-04 14:44:15 · 113 阅读 · 0 评论 -
25 | SpringBoot整合JPA
SpringData简介整合SpringData JPAJPA:ORM(Object Relational Mapping);(1)编写一个实体类(bean)和数据表进行映射,并且配置好映射关系;//使用JPA注解配置映射关系@Entity //告诉JPA这是一个实体类(和数据表映射的类)@Table(name = "tbl_user") //@Table来指定和哪个数据表对应;如果省略默认表名就是user;public class User { @Id //这是一个主键原创 2020-08-04 14:43:35 · 116 阅读 · 0 评论 -
24 | SpringBoot整合Mybatis(配置方式)
https://mybatis.org/mybatis-3/zh/getting-started.html加入依赖<dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.1.3</version></depe原创 2020-08-04 14:42:47 · 133 阅读 · 0 评论 -
23 | SpringBoot整合Mybatis(注解方式)
加入依赖<dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.1.3</version></dependency>指定一个操作数据库的mapper//指定这是一个操作数据库的mapper@Map原创 2020-08-04 14:42:08 · 453 阅读 · 0 评论 -
22 | SpringBoot整合Druid数据源
添加依赖<dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1.9</version> </dependency>编写配置文件spring: datasource:# 数据源基本配置原创 2020-08-04 14:41:36 · 100 阅读 · 0 评论 -
21 | Docker之安装与启动Mysql实例
安装docker pull mysql启动[root@localhost ~]# docker run -p 3306:3306 --name mysql02 -e MYSQL_ROOT_PASSWORD=123456 -d mysqlad10e4bc5c6a0f61cbad43898de71d366117d120e39db651844c0e73863b9434[root@localhost ~]# docker psCONTAINER ID IMAGE原创 2020-08-04 14:40:31 · 127 阅读 · 0 评论 -
20 | Docker常用命令&操作
1、镜像操作操作命令说明检索docker search 关键字 eg:docker search redis我们经常去docker hub上检索镜像的详细信息,如镜像的TAG。拉取docker pull 镜像名:tag:tag是可选的,tag表示标签,多为软件的版本,默认是latest列表docker images查看所有本地镜像删除docker rmi image-id删除指定的本地镜像https://hub.docker.com/原创 2020-08-02 10:22:17 · 134 阅读 · 0 评论 -
19 | Docker简介、安装与使用
1、简介你也许会很奇怪,为什么要讲解Docker??首先,Docker是一个开源的应用容器引擎,类似于虚拟机技术,但它并不是虚拟机,是一个轻量级容器技术,实现了虚拟机技术的资源隔离,而且,性能是远远高于虚拟机的,以前,我们要启动一个虚拟机可能要几分钟,但启动一个Docker容器可能几秒钟就行了,甚至毫秒级别那他究竟用来做什么呢,如下图所示Docker支持将你安装好的软件,如MySql、Redis等等,可以打包成一个镜像,那么如果别人的电脑想安装mysql,只需要把这个镜像放到linux服务器里(原创 2020-08-02 10:21:15 · 669 阅读 · 0 评论 -
18 | SpringBoot如何定制错误页面
由于我在网上看到的SpringBoot + thymeleaf 的 CRUD 实验较为简单,而且大家都想用vue来想前端,所以我就不在这里在写笔记了,如果你想了解代码,点链接链接:https://pan.baidu.com/s/1QjBJ3wwE7vHZZdzHKjfxdg提取码:1234回到正题。如何定制错误的页面 1)、有模板引擎的情况下;error/状态码; 【将错误页面命名为 错误状态码.html 放在模板引擎文件夹里面的 error文件夹下】,发生此状态码的错误就会来到原创 2020-08-02 10:19:32 · 241 阅读 · 0 评论 -
17 | SpringBoot + thymeleaf的CRUD-员工列表满足Rest风格
1、按URI区分普通CRUD和RESTFULCRUD普通CRUD(URI来区分操作)RESTFULCRUD查询getEmpemp—GET添加addEmp?xxxemp—POST修改emp—POST修改updateEmp?id=xxx&xxx=xxemp/{id}—PUT删除deleteEmp?id=1emp/{id}—DELETE2、实验——获得员工列表(1)新建一个EmployeeController@Controllerpub原创 2020-08-02 10:18:48 · 337 阅读 · 0 评论 -
16 | SpringBoot + thymeleaf 登录页面的重定向跳转、数据校验和拦截器
为了调试方便,禁用模板引擎的默认缓存机制,即修改页面会实时生效spring: messages: basename: i18n.login# 禁用模板引擎缓存,修改页面会自动更新 thymeleaf: cache: falseedit configuration下do nothing 改成 update resources1、登录页面的跳转(1)首先创建一个controller文件夹下的LoginController类@Controllerpublic class原创 2020-08-02 10:16:25 · 2885 阅读 · 0 评论 -
15 | SpringBoot + thymeleaf 的登陆页面如何实现国际化
1、编写国际化配置文件,抽取页面需要显示的国际化消息(1)在resources文件夹下创建i18n文件夹,用来存放国际化配置文件,为什么是i18n???i18n(其来源是英文单词 internationalization的首末字符i和n,18为中间的字符数)是“国际化”的简称。然后任意打开一个配置文件,如login_en_US.properties,点击Resources Bundle,输入你想要国际化的属性(2)在全局配置文件中绑定这些自定义的国际化配置SpringBoot自动配置好了管理国原创 2020-08-02 10:10:58 · 537 阅读 · 0 评论 -
14 | 基于SpringBoot的RestfulCRUD之引入资源文件
首先简单地创建一个SpringBoot项目导入文件因为这节主要说说如何引入资源文件,譬如登录页面,所以实体类、dao层的编写不详细说,链接:https://pan.baidu.com/s/16q6mMMLSzg-YYPMap-pF-w提取码:1234导入依赖因为此项目,页面均采用thymeleaf模板,所以要导入spring-boot-starter-thymeleaf<dependency> <groupId>org.springfr原创 2020-08-02 10:07:25 · 152 阅读 · 0 评论 -
13 | SpringBoot如何扩展和全面接管SpringMVC
如果我们使用SSM框架,我们都会在springmvc-config.xml的配置文件,都会写。。举个栗子: <mvc:view-controller path="/hello" view-name="success"/> <mvc:interceptors> <mvc:interceptor> <mvc:mapping path="/hello"/> <bean></原创 2020-08-02 10:04:20 · 176 阅读 · 0 评论 -
12 | SpringBoot对静态资源的映射规则
如果,你会前后端分离的小伙伴,可以选择跳过这篇因为SpringBoot比SSM的配置更加简单,并不需要配置SpringMVC就能访问页面,但是它是怎么做到的呢??SpringBoot对静态资源的映射规则到底做了什么?打开 WebMvcAutoConfiguration 类@Override public void addResourceHandlers(ResourceHandlerRegistry registry) { if (!this.resourceProperties.isAdd原创 2020-08-02 10:03:40 · 138 阅读 · 0 评论 -
11 | SpringBoot日志的使用
1、默认日志配置SpringBoot默认帮我们配置好了日志 //记录器 Logger logger = LoggerFactory.getLogger(getClass()); @Test public void contextLoads() { //日志的级别; //由低到高 trace<debug<info<warn<error //可以调整输出的日志级别;日志就只会在这个级别以以后的高级别生效 logger.trace("这是tra原创 2020-08-02 10:03:33 · 138 阅读 · 0 评论 -
10 | SLF4j的使用原理
1、浅谈如何在系统中使用SLF4j以后开发的时候,日志记录方法的调用,不应该来直接调用日志的实现类,而是调用日志抽象层里面的方法;给系统里面导入slf4j的jar和 logback的实现jarimport org.slf4j.Logger;import org.slf4j.LoggerFactory;public class HelloWorld { public static void main(String[] args) { Logger logger = LoggerFact原创 2020-07-31 14:16:41 · 212 阅读 · 0 评论 -
9 | 日志框架和选择
市面上的日志框架;JUL、JCL、Jboss-logging、logback、log4j、log4j2、slf4j…日志门面 (日志的抽象层)日志实现JCL(Jakarta Commons Logging) SLF4j(Simple Logging Facade for Java) jboss-loggingLog4j JUL(java.util.logging) Log4j2 Logback左边选一个门面(抽象层)、右边来选一个实现;推荐使用:日志门面: SLF4J;日原创 2020-07-31 14:14:01 · 123 阅读 · 0 评论 -
8 | 浅谈配置文件加载位置
springboot 启动会扫描以下位置的application.properties或者application.yml文件作为Spring boot的默认配置文件–file:./config/–file:./–classpath:/config/–classpath:/优先级由高到底,高优先级的配置会覆盖低优先级的配置;SpringBoot会从这四个位置全部加载主配置文件;互补配置我们还可以通过spring.config.location来改变默认的配置文件位置,但是这种配置需要打包后才生效原创 2020-07-31 14:12:14 · 135 阅读 · 0 评论 -
7 | SpringBoot之Profile多环境支持
我们在做一个项目,未免有很多个环境进行开发,譬如,开发环境、生产环境。。而不同的环境,当然要配置不同的端口号,那么Profile就起到配置多环境的作用,怎么做呢??我们在主配置文件编写的时候,文件名可以是 application-{profile}.properties/yml,默认使用application.properties的配置.propertie的配置文件的多环境配置如果我们使用 .properties的配置文件进行开发项目,那么我们需创建三个.properties的配置文件,如 appli原创 2020-07-31 14:10:35 · 271 阅读 · 0 评论 -
6 | SpringBoot中application.yml配置文件的占位符使用方法
1、随机数的占位符${random.value}、${random.int}、${random.long}${random.int(10)}、${random.int[1024,65536]}2、占位符获取之前配置的值,如果没有可以是用:指定默认值person: lastName: 张三${random.uuid} age: ${random.int} boss: false birth: 2017/12/12 maps: {k1: v1,k2: 12} lists:原创 2020-07-31 14:06:37 · 4587 阅读 · 0 评论