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

目录:

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

目录

三、

1、整合SpringSecurity依赖

2、整合Thymeleaf框架

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


三、

1、整合SpringSecurity依赖

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

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

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

        
            org.springframework.boot
            spring-boot-starter-security
        

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

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

【IDEA Sprintboot】简单入门:整合SpringSecurity依赖、整合Thymeleaf框架_第1张图片

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

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

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

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

【IDEA Sprintboot】简单入门:整合SpringSecurity依赖、整合Thymeleaf框架_第2张图片

【IDEA Sprintboot】简单入门:整合SpringSecurity依赖、整合Thymeleaf框架_第3张图片

跳转成功。

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

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

【IDEA Sprintboot】简单入门:整合SpringSecurity依赖、整合Thymeleaf框架_第4张图片

2、整合Thymeleaf框架

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

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

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

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

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


    org.springframework.boot
    spring-boot-starter-thymeleaf

(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文件中我一开始如下所示进行引用。

但是,没有出现样式。

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

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

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

@Configuration
public class WebConfiguration implements WebMvcConfigurer {

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

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

【IDEA Sprintboot】简单入门:整合SpringSecurity依赖、整合Thymeleaf框架_第5张图片

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

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

【IDEA Sprintboot】简单入门:整合SpringSecurity依赖、整合Thymeleaf框架_第6张图片

你可能感兴趣的:(#,sprintboot,java,spring,boot,spring,intellij-idea,开发语言)