
【JavaEE框架】
文章平均质量分 52
框架
晓风残月一望关河萧索
志存高远,脚踏实地。
路漫漫其修远兮,吾将上下而求索。
展开
-
【详解】面试必问:SpringBoot自动配置原理
前言 SpringBoot框架是开发中的一大利器,其简化了spring的xml的配置,遵循了”约定大于配置“的原则,使用注解对常用的配置做默认配置,减少使用xml配置模式。SpringBoot为常用框架封装了大量的starter,比如spring-boot-starter-web会整合springmvc和内嵌的tomcat。SpringBoot在底层封装了默认的配置,修改配置在application.yml全局配置文件。如今在pom.xml文件中引用starter就可以使用这个框架,使用...原创 2021-11-10 15:19:33 · 10771 阅读 · 0 评论 -
@TableName,@TableId用法详解
@TableName是表名注解。里面有一些属性。一般这个属性用的比较多。映射实体类和表名@TableName(value = "table_name")@TableName(value = "table_name" autoResultMap = true|false)@TableId:作用是指定实体类属性和表中的主键字段对应其余的请查看官网:https://mp.baomidou.com/guide/annotation.html#sqlparser...原创 2021-07-22 09:21:45 · 12270 阅读 · 0 评论 -
【快速学习】SpringBoot整合MyBatis Plus
目录官方文档地址:1、相关pom.xml依赖2、相关包通用实现3、相关注解4、增删查改5、MyBatis Plus的分页官方文档地址:https://mp.baomidou.com/guide/MyBatis Plus 其实就是MyBatis的一个增强工具包,只做增强,不做改变。对普通的CRUD方法可以直接调用MyBatis Plus的CRUD方法。简化开发。这里直接是SpringBoot整合MyBatis Plus1、相关pom.xml依赖<de原创 2021-06-28 20:18:59 · 558 阅读 · 2 评论 -
【持续更新】SpringBoot注解大全总结
1、@RequestParam(value = "video_id",required = true) int videoId 请求参数注解,当浏览器前端需要传入参数时候,value是给方法中的参数起别名 required = true 表示前端必须传入参数,required=false表示前端不传参数的时候,会将参数置 为null。因此假如参数是int这种不能赋值为null的类型,就可能会报错。使用了defaultValue,required只能为false,前端不...原创 2021-06-23 17:21:40 · 215 阅读 · 0 评论 -
SpringBoot配置类实现实体类驼峰和数据库表字段下划线之间的映射,如userId映射到user_id
以下在springBoot配置文件中配置:带有下划线的表字段映射为驼峰格式的实体类属性# 解决mysql表字段和实体类属性名不对应的问题,比如mysql中使用的是 user_id,在实体类中写的是userId,这个配置会自动转化mybatis.configuration.map-underscore-to-camel-case=true数据库表字段:create table user( user_id int(11) not null);实体类:class Person..原创 2021-05-14 10:23:28 · 1897 阅读 · 0 评论 -
@JsonProperty注解的使用
1、@JsonProperty的作用 @JsonProperty是作用在实体类的属性上的,把属性的名称序列化另一个名称,属性名称和@JsonProperty("")里面的名称是映射关系。比如数据库使用下划线命名字段user_id,但是在实体类属性命名是驼峰式的userId,通过在userId上添加@JsonProperty("user_id"),在进行数据库查询返回给客户端的时候,可以控制输出的字段。 简单的说,就是在给实体类属性名起别名,应用在不同的场合。2、测试代码如下...原创 2021-05-14 08:58:53 · 11275 阅读 · 0 评论 -
【已解决】jwt验证token的时候报错:io.jsonwebtoken.UnsupportedJwtException: Signed Claims JWSs are not supported.
直接看代码,你确定你的checkJWT写对了吗!?Jwts.parser().setSigningKey(SECRET).parseClaimsJwt(token.replace(TOKEN_PREFIX, "")).getBody();Jwts.parser().setSigningKey(SECRET).parseClaimsJws(token.replace(TOKEN_PREFIX, "")).getBody();是parseClaimsJws不是parseCla...原创 2021-05-12 20:34:45 · 38559 阅读 · 6 评论 -
【超详细】idea中热部署配置
1、什么是热部署? 热部署就是在正在运行状态的应用,修改了他的源代码后,在不重新启动项目的情况下,能够自动把增量的内容编译并且部署在服务器上,使得修改立即生效。热部署为了解决的问题有两个。一是在开发的时候,修改代码不需要重启应用就能看到效果,大大的提升开发的效率;二是生产上运行的程序,可以在不停止运行的情况下,进行升级,不影响用户的正常使用。2、idea中热部署的配置 ①pom配置<dependency> <groupId>org.spr...原创 2021-05-06 19:48:16 · 807 阅读 · 0 评论 -
【经典】深入理解令牌JWT之token
目录1、什么是JWT2、JWT能做什么3、为什么是JWT 基于传统的Session认证 基于JWT的认证4、JWT的结构是什么5、使用JWT总结1、什么是JWT JWT官网地址:https://jwt.io/introduction/ 官方解释:JWT是Java Web Token的首字母简写,它定义了一个紧凑的,自包含的方式,用于在各方之间以Json对象安全的传输信息。此信息可以验证和信任,因为它是数字签名。jwt可以使用签名算法进行签名...原创 2021-04-06 15:12:42 · 928 阅读 · 0 评论 -
【详细清晰】@Mapper和@Repository的使用和区别
先讲解这两个注解是啥意思,它们之间的区别和联系。① @Mapper是MyBatis的注解,@Repository是Spring中的注解,这些注解就是声明一个Bean。② @Mapper注解不需要在SpringBoot启动类上配置扫描类;通过xml里面的namespace里面的接口地址,生成bean对象后注入到Service里面。 在连接数据库的接口上添加@Mapper,然后在xml中的namespace指向mapper,会生成一个动态bean,然后在servcieImpl...原创 2021-04-05 21:09:23 · 7084 阅读 · 2 评论 -
【详解】@RequestParam注解的用法
@RequestParam用于将指定参数赋值给方法中的形参。意思就是标注浏览器地址栏参数名称。 @RequestParam有3个名称:1、 value:在浏览器地址栏请求参数的名称,如http://localhost:8080/login?name=zhangsan ,也就是@RequestParam(value = "name") 如果不写value的值,则默认形参的参数名为该变量名,http://localhost:8080/login?userName=zhangsa...原创 2021-03-12 19:34:33 · 7939 阅读 · 0 评论 -
【详解】@Param注解的用法
1、概述 首先明确这个注解是为SQL语句中参数赋值而服务的。 @Param的作用就是给参数命名,比如在mapper里面某方法A(int id),当添加注解后A(@Param("userId") int id),也就是说外部想要取出传入的id值,只需要取它的参数名userId就可以了。将参数值传如SQL语句中,通过#{userId}进行取值给SQL的参数赋值。2、实例: 实例一:@Param注解基本类型的参数 mapper中的方法:public Use...原创 2021-03-12 16:06:28 · 240922 阅读 · 33 评论 -
【详解】SpringBoot项目启动成功,页面报错404
出错的原因可能有以下几种:1、SpringBoot启动类和Controller在不同级的路径下应该是:springboot的配置文件application.java默认扫描的位置是Application所在目录的同级目录和子目录改为:2、路径错误路径不正确...原创 2021-03-11 14:40:16 · 694 阅读 · 0 评论 -
【详解】springboot主配置文件配置,mybatis配置项mybatis.configuration.map-underscore-to-camel-case=true/false
在springboot配置的时候,一般添加上:mybatis配置项 mybatis.configuration.map-underscore-to-camel-case=true/false,原因如下 当我们在MySQL定义表的字段的时候,有的字段定义成比如user_name,user_password的形式,但是在我们Java语言创建实体类的时候遵循实体类的属性是驼峰原则,一般实体类属性写成userName,userPassword的形式。使用mybatis框架的时候,mybat...原创 2021-03-11 09:54:31 · 1529 阅读 · 0 评论 -
【详解】Thymeleaf中的基本表达式:@{},#{},${},*{}
1、@{}:thymeleaf中的超链接表达式话说例子如下:<a th:href="@{/user/login}"></a><a th:src="@{/user/login}"/>2、#{}:thymeleaf中的消息表达式、或者是资源表达式一般和 th:text一起使用多一点,#{}取出来的值取代了标签中的值,#{key}对应的value。如果标签中间已经有值,#{}取出来的值会覆盖标签中的值话说例子如下:<div th:text=原创 2021-03-09 19:12:17 · 17168 阅读 · 2 评论 -
详解Thymeleaf中的[[...]]内联
thymeleaf中的[[.....]]内联简化了thymeleaf的取值问题,举例如下:<-- 从session中取值 --><div>[[${session.username}]]</div> 等价于:<div th:text="${session.username}"></div>说白了,就是文本取值。但是在JavaScript中的需要加th:inline="javascript"><scri...原创 2021-03-09 18:50:28 · 515 阅读 · 0 评论 -
【经典详解】Spring中的AOP(面向切面编程)
1、什么是AOP? (1)AOP是面向切面编程,是OOP(面向对象编程)的延续。AOP可以对业务的各个部分进行隔离,从而使业务逻辑各个部分之间的耦合度降低,提高程序的可重用性,提高开发的效率。 (2)通俗的讲:AOP主要作用就是在不修改源代码的前提下,对主干功能进行增强。 下面是一个登录的功能,现在想在一个登录的情况下,在不修改源代码前提下,添加一个权限功能。 假如添加功能,AOP可以另外写一个模块,和当前登录模块联系耦合度低,独立性较强。2、AOP底层原理(...原创 2021-01-22 22:33:59 · 521 阅读 · 0 评论 -
【绝对经典】Spring中的IOC(控制反转)
一、Spring框架概念 Spring是轻量级的开源的JavaEE框架,轻量级指的是很少使用jar包。Spring可以解决企业应用开发的复杂性。Spring有两个核心部分:IOC和AOP。 (1)IOC:控制反转把创建对象的过程交给Spring进行管理。之前创建对象的过程是通过new关键字在堆内存中进程创建,而现在通过Spring进行对象的创建和管理。 (2)AOP:面向切面编程,在不修改源代码的前提下进行功能的增强,之前增加功能是修改源代码,现在使用AOP更加的增强了程序高内聚...原创 2021-01-12 18:31:34 · 686 阅读 · 0 评论