【IDEA Sprintboot】简单入门:整合SpringSecurity依赖、整合Thymeleaf框架

news/2024/10/31 1:33:00/

目录:

1、【IDEA】简单入门:请求数据库表数据_水w的博客-CSDN博客

目录

三、

1、整合SpringSecurity依赖

2、整合Thymeleaf框架

解决css样式等静态资源访问不到的问题


三、

1、整合SpringSecurity依赖

Spring Security是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架。主要用于登录中。

我们接着来整合一下SpringSecurity依赖,

(1)只需要导入SpringSecurity的Starter依赖即可:

        <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-security</artifactId></dependency>

导入依赖后,我们直接启动SpringBoot应用程序,可以发现SpringSecurity已经生效了。

SpringSecurity会自动为我们生成一个默认用户user,密码则是项目启动时随机生成的字符串,可以从启动的控制台日志中看到默认密码

 其中de505234-578f-452d-b552-94a4a66a8755就是随机生成的一个密码,我们可以使用此用户登录。

或者,也可以直接在 application.properties 文件中配置用户的基本信息,

spring.security.user.name=test
spring.security.user.password=123456

(2)浏览器访问http://localhost:8088,然后用sprintboot默认生成的用户名和密码进行登录,

跳转成功。

(3)在开发阶段我们往往会遇到Security的权限拦截问题。此时,我们可以直接在Springboot的主启动类增加以下配置,来关闭Spring Security,

// 给springboot主方法中的注解去除如下类
@SpringBootApplication(exclude= {SecurityAutoConfiguration.class })

2、整合Thymeleaf框架

Thymeleaf是用于Web和独立环境的现代服务器端Java模板引擎。

Thymeleaf的主要目标是将优雅的自然模板带到您的开发工作流程中—HTML能够在浏览器中正确显示,并且可以作为静态原型,从而在开发团队中实现更强大的协作。Thymeleaf能够处理HTML,XML,JavaScript,CSS甚至纯文本。

Thymeleaf的主要目标是提供一个优雅和高度可维护的创建模板的方式。 为了实现这一点,它建立在自然模板的概念之上,以不影响模板作为设计原型的方式将其逻辑注入到模板文件中。 这改善了设计沟通,弥合了前端设计和开发人员之间的理解偏差。

Thymeleaf也是从一开始就设计(特别是HTML5)允许创建完全验证的模板。

(1)整合Thymeleaf也只需导入对应的starter即可:

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>

(2)接着我们只需要直接使用即可:

    @RequestMapping("/login")public String login(){return "login";}

但是注意,这样只能正常解析HTML页面,但是js、css等静态资源我们需要进行路径指定,不然无法访问,我们在配文件中配置一下静态资源的访问前缀: 

# 表示只有静态资源的访问路径为/root/**时,才会处理请求
spring.mvc.static-path-pattern=/static/**

设置application方法很简单,主要涉及两个配置项:

  • spring.mvc.static-path-pattern:根据官网的描述和实际效果,可以理解为静态文件URL匹配头,也就是静态文件的URL地址开头。
    • Springboot默认为:/**。
    • 代表的含义是我们应该以什么样的路径来访问静态资源,换句话说,只有静态资源满足什么样的匹配条件,Spring Boot才会处理静态资源请求。
  • spring.web.resources.static-locations:根据官网的描述和实际效果,可以理解为实际静态文件地址,也就是静态文件URL后,匹配的实际静态文件。
    • Springboot默认为:
        classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/
      

解决css样式等静态资源访问不到的问题

在SpringBoot中的resources/static/目录下创建了静态资源目录,然后在html文件中我一开始如下所示进行引用。

<img th:src="@{/static/picture/auth-img1.png}" alt="">

但是,没有出现样式。

原因分析:这是因为Springboot默认的静态资源路径为static,我们不需要再添加/static/前缀,所以需要使用正确的方式来引用,否则就会导致404的问题。

<img th:src="@{/picture/auth-img1.png}" alt="">

(3)如果templates下的文件还是访问不到,

解决方法:新建config文件夹,然后在里面创建一个WebConfiguration类,

@Configuration
public class WebConfiguration implements WebMvcConfigurer {@Overridepublic void addResourceHandlers(ResourceHandlerRegistry registry) {//这里是指在url上面打的内容registry.addResourceHandler("/**")//下面的是指可以对应resources文件下那些内容.addResourceLocations("classpath:/").addResourceLocations("classpath:/templates/").addResourceLocations("classpath:/static/**");}
}

(4)当前目录结构如下图所示: 

再次启动项目,成功,没有报错。

浏览器访问http://localhost:8088/user/findAll,可以看到,


http://www.ppmy.cn/news/58650.html

相关文章

三、进度管理

3、 [单选] 一个项目实施团队需要满足一份非常严格的进度计划。相对于已完成的事项&#xff0c;这样会导致正在进行的工作超过负荷。为了解决这个问题&#xff0c;项目经理需要获得额外的资源。项目经理应该向发起人提供什么理由来支持追加资源的请求&#xff1f; A project im…

【第十一届泰迪杯B题】问题一和问题二的分析

文章目录 一、问题一的分析1.1 总体分析1.2 不同价格对需求量的影响1.3 不同区域对需求量的影响1.4 不同销售方式的需求量特性1.5 不同品类的需求量特性1.6 不同时间段的需求量特性1.7 节假日对需求量的影响1.8 促销对需求量的影响1.9 季节因素对需求量的影响二、问题二的分析一…

LeetCode单链表OJ题目做题思路分享

目录 移除链表元素链表的中间节点链表中倒数第K个节点合并两个有序链表 移除链表元素 链接: link 题目描述&#xff1a; 思路分享&#xff1a; 我们上个博客分享了第一种方法&#xff0c;下面我们分析第二种方法&#xff1a;思路就是将每一个不等于我们要删除的值的节点依次尾…

【JS笔记】JS操作字符串、对象、数组、时间对象、数值操作、定时器

这篇文章,主要介绍JS操作字符串、对象、数组、时间对象、数值操作、定时器。 目录 一、字符串 1.1、定义字符串 1.2、字符串方法 1.3、模板字符串 1.4、JSON字符串

UG NX二次开发(C++)-建模-修改NXObject或者Feature的颜色(一)

文章目录 1、前言2、在UG NX中修改Feature的颜色操作3、采用NXOpen(C)实现3.1 创建修改特征的方法3.2 调用ModifyFeatureColor方法3.3 测试结果 1、前言 在UG NX中&#xff0c;改变NXObject和Feature的操作是不相同的&#xff0c;所以其二次开发的代码也不一样&#xff0c;我们…

基于松鼠算法的极限学习机(ELM)回归预测-附代码

基于松鼠算法的极限学习机(ELM)回归预测 文章目录 基于松鼠算法的极限学习机(ELM)回归预测1.极限学习机原理概述2.ELM学习算法3.回归问题数据处理4.基于松鼠算法优化的ELM5.测试结果6.参考文献7.Matlab代码 摘要&#xff1a;本文利用松鼠算法对极限学习机进行优化&#xff0c;并…

unity NGUI使用方法

基本用法 很多基本模块比如按钮、slider等都能从Prefab中直接拖拽到场景中实现&#xff0c;但都需要有一个Collider&#xff08;Prefab已经自带&#xff09; 因为不仅是UI&#xff0c;所有带有Collider的游戏物体都能接收到OnClick&#xff0c; OnPress这样的事件——前提是需…

加强网络风险生命周期

当今业务环境中云原生应用程序的激增帮助组织简化了运营。 企业现在可以近乎实时地监控数据、与客户互动并分享见解&#xff0c;帮助他们克服曾经阻碍生产力的低效率问题。 然而&#xff0c;使用云也极大地扩展了企业可利用的攻击面。 CSPM、CWPP、CNAPP、SAST、SCA、IaC、D…