Spring Boot常见的一些问题

这篇博客是记录自己从0基础学习Springboot遇到的一些小问题,会一直持续更新。方便大家以后少踩坑(大神绕道)

1、SpringBoot异常之Whitelabel Error Page解决办法

真正的原因是【Application启动类放的位置不对】要将Application放在最外层,也就是要包含所有子包。
比如你的groupId是com.google,子包就是所谓的com.google.xxx,所以要将Application类要放在com.google包下。springboot会自动加载启动类所在包下及其子包下的所有组件。

2、SpringBoot之Service(这在一些公司是强制规定)

Service主要是负责逻辑的,判断用户输入的是否为空。Mapper是直接调用的。一般给用户使用的是Service里面的接口,不允许用户直接调用Mapper里面的方法。Serviceimpl是实现类,需要用@Service注解

3、SpringBoot之乱码解决方案

下载properties插件,新建文件夹的时候搜索properties

4、SpringBoot之AOP切面介绍

贴出几个非常详细的博客地址:
https://www.cnblogs.com/hhhshct/p/8428045.html
https://www.jianshu.com/p/d195e6f09381 非常详细
@Before:前置通知,在调用目标方法之前执行通知定义的任务
@After:后置通知,在目标方法执行结束后,无论执行结果如何都执行通知定义的任务
@After-returning:后置通知,在目标方法执行结束后,如果执行成功,则执行通知定义的任务
@After-throwing:异常通知,如果目标方法执行过程中抛出异常,则执行通知定义的任务
@Around:环绕通知,在目标方法执行前和执行后,都需要执行通知定义的任务
https://www.tianmaying.com/tutorial/spring-aop-point-advice
spring增强方式常用的两种:
https://blog.csdn.net/weixin_40648117/article/details/80535947

5、SpringBoot之注解

@RestController注解相当于@ResponseBody + @Controller合在一起的作用。

  1. 如果只是使用@RestController注解Controller,则Controller中的方法无法返回jsp页面,或者html,配置的视图解析器 InternalResourceViewResolver不起作用,返回的内容就是Return 里的内容。
  2. 如果需要返回到指定页面,则需要用 @Controller配合视图解析器InternalResourceViewResolver才行。
    如果需要返回JSON,XML或自定义mediaType内容到页面,则需要在对应的方法上加上。
6、WEB-INFO下访问静态的js与css

改进的方法,就是用绝对路径,即在访问的路径前加上项目名,如下
动态获取项目名: p a g e C o n t e x t . r e q u e s t . c o n t e x t P a t h 如 : &lt; s c r i p t s r c = &quot; {pageContext.request.contextPath} 如:&lt;script src=&quot; pageContext.request.contextPath<scriptsrc="{pageContext.request.contextPath}/resources/layui/layui.all.js">

7、SpringBoot默认访问界面设置

spring boot 默认会访问 static文件下面的index.html。不需要任何配置就能访问。就像常规web项目默认访问web.xml下的index.jsp是一样的。

8、Spring Security的原理简介

Spring Security的安全访问控制分为Authentication(认证)和Authorization(授权,也叫“访问控制”)。认证指的是用户登录的信息验证,判断你账号密码是否正确;授权指的是当用户访问一个页面时判断他有没有这个权限。

一般流程为:

①当用户登录时,前端将用户输入的用户名、密码信息传输到后台,后台用一个类对象将其封装起来,通常使用的是UsernamePasswordAuthenticationToken这个类。

②程序负责验证这个类对象。验证方法是调用Service根据username从数据库中取用户信息到实体类的实例中,比较两者的密码,如果密码正确就成功登陆,同时把包含着用户的用户名、密码、所具有的权限等信息的类对象放到SecurityContextHolder(安全上下文容器,类似Session)中去。

③用户访问一个资源的时候,首先判断是否是受限资源。如果是的话还要判断当前是否未登录,没有的话就跳到登录页面。

④如果用户已经登录,访问一个受限资源的时候,程序要根据url去数据库中取出该资源所对应的所有可以访问的角色,然后拿着当前用户的所有角色一一对比,判断用户是否可以访问。

9、Springboot 一些使用配置
  1. 显示SQL语句
#显示SQL语句
logging.level.com.jimi.how.mapper.* = debug
  1. 打包跳过测试
 <skipTests>true</skipTests>
10、SpringBoot测试继承的基础类

在测试类的时候必须填写上面两个注解

@RunWith(SpringRunner.class)
@SpringBootTest(classes = TogetherApplication.class, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
public class BaseTest {

    protected final Logger logger = LoggerFactory.getLogger(this.getClass());
}
11、mapper注解配置文件

@MapperScan
作用:将对应的mapper下面的mapper类自动添加@mapper
1、单个包
@MapperScan(basePackages = “com.jimi.**.mapper”)

2、多个包
@MapperScan({“com.kfit.demo”, “com.kfit.user”})

3、如果mapper类没有在Spring Boot主程序可以扫描的包或者子包下面,可以使用如下方式进行配置
@MapperScan({“com.kfit..mapper","org.kfit..mapper”})

12、自己的小技巧

SQL语句错误类型
在这里插入图片描述
在这里插入图片描述

13、关于MapperXML扫描问题

如果将XML放在java目录下,则需要在pom包里配置路径。或者就扫描不到。
如下图所示:

在这里插入图片描述
如果放resources下,则在.properties下配置如下图所示:
在这里插入图片描述

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Anyan-T

你的鼓励将是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值