您现在的位置是:首页 > 编程 > 

【Spring Boot】01

2025-07-28 19:18:02
【Spring Boot】01 一、环境搭建1、创建一个spring boot项目,导入web依赖2、导入thymeleaf依赖代码语言:javascript代码运行次数:0运行复制 <!--thymeleaf--> <dependency> <groupId>org.springframework.boo

【Spring Boot】01

一、环境搭建

1、创建一个spring boot项目,导入web依赖

2、导入thymeleaf依赖

代码语言:javascript代码运行次数:0运行复制
        <!--thymeleaf-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>
        <dependency>
            <groupId></groupId>
            <artifactId>thymeleaf-extras-java8time</artifactId>
        </dependency>

、在templates文件夹新建一个index.html页面

代码语言:javascript代码运行次数:0运行复制
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <h1>首页</h1>
</body>
</html>

4、创建MyController类

代码语言:javascript代码运行次数:0运行复制
package com.;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class MyController {

    @RequestMapping({"/","/index"})
    public String toIndex(Model model){
        model.addAttribute("msg","Hello Shiro!");
        return "index";
    }
}

5、修改index.html页面

代码语言:javascript代码运行次数:0运行复制
<!DOCTYPE html>
<html lang="en" xmlns:th=";>
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <h1>首页</h1>
    <p th:text="${msg}"></p>
</body>
</html>

6、运行测试结果

至此,我们的环境搭建完毕!

二、整合Shiro

1、导入shiro整合springboot的包

代码语言:javascript代码运行次数:0运行复制
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns=".0.0" xmlns:xsi=";
         xsi:schemaLocation=".0.0 .0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2..4.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.zibo</groupId>
    <artifactId>shiro_spring_boot</artifactId>
    <version>0.0.1-SAPSHOT</version>
    <name>shiro_spring_boot</name>
    <description>Demo project for Spring Boot</description>

    <properties>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>

        <!--
            Subject:用户
            SecurityManager:管理所有用户
            Realm:连接数据
        -->
        <!--导入shiro整合springboot的包-->
        <dependency>
            <groupId>org.apache.shiro</groupId>
            <artifactId>shiro-spring-boot-web-starter</artifactId>
            <version>1.6.0</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
            <exclusi>
                <exclusion>
                    <groupId>org.junit.vintage</groupId>
                    <artifactId>junit-vintage-engine</artifactId>
                </exclusion>
            </exclusi>
        </dependency>

        <!--thymeleaf-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>
        <dependency>
            <groupId></groupId>
            <artifactId>thymeleaf-extras-java8time</artifactId>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

2、编写配置类

第一步:先创建一个自定义的AccountRealm
代码语言:javascript代码运行次数:0运行复制
package com.;

import org.apache.shiro.authc.AuthenticationException;
import org.apache.shiro.authc.AuthenticationInfo;
import org.apache.shiro.authc.AuthenticationToken;
import org.apache.shiro.authz.AuthorizationInfo;
import org.apache.shiro.realm.AuthorizingRealm;
import org.apache.shiro.subject.PrincipalCollection;

//自定义的AccountRealm,需要继承AuthorizingRealm
public class AccountRealm extends AuthorizingRealm {
    //授权
    @Override
    protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principalCollection) {
        println("执行了授权方法doGetAuthorizationInfo!");
        return null;
    }

    //认证
    @Override
    protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken authenticationToken) throws AuthenticationException {
        println("执行了认证方法doGetAuthenticationInfo!");
        return null;
    }
}
第二步:编写配置类
代码语言:javascript代码运行次数:0运行复制
package com.;

import com.sun.apache.regexp.internal.RE;
import org.apache.shiro.spring.web.ShiroFilterFactoryBean;
import org.apache.shiro.DefaultWebSecurityManager;
import org.springframework.beans.factory.annotation.Qualifier;
import org.annotation.Bean;
import org.annotation.Configuration;

@Configuration
public class ShiroConfig {

    //1、创建Realm对象,需要自定义
    @Bean
    public AccountRealm accountRealm(){
        return new AccountRealm();
    }

    //2、DefaultWebSecurityManager
    @Bean(name = "securityManager")
    public DefaultWebSecurityManager getDefaultWebSecurityManager(@Qualifier("accountRealm")AccountRealm accountRealm){
        DefaultWebSecurityManager manager = new DefaultWebSecurityManager();
        //关联accountRealm
        manager.setRealm(accountRealm);
        return manager;
    }

    //、ShiroFilterFactoryBean
    @Bean
    public ShiroFilterFactoryBean getShiroFilterFactoryBean(@Qualifier("securityManager")DefaultWebSecurityManager manager){
        ShiroFilterFactoryBean bean = new ShiroFilterFactoryBean();
        //设置安全管理器
        bean.setSecurityManager(manager);
        return bean;
    }



}

、新建页面

第一步:新建add.html页面
代码语言:javascript代码运行次数:0运行复制
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <H1>添加账户</H1>
</body>
</html>
第二步:新建update.html页面
代码语言:javascript代码运行次数:0运行复制
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <H1>更新账户</H1>
</body>
</html>

4、修改MyController类

代码语言:javascript代码运行次数:0运行复制
package com.;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class MyController {

    @RequestMapping({"/","/index"})
    public String toIndex(Model model){
        model.addAttribute("msg","Hello Shiro!");
        return "index";
    }

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

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

5、运行测试结果

首页:
add页面:
update页面:
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。 原始发表:2025-01-06,如有侵权请联系 cloudcommunity@tencent 删除bootimport测试环境搭建spring

#感谢您对电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格的认可,转载请说明来源于"电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格

本文地址:http://www.dnpztj.cn/biancheng/1198868.html

相关标签:无
上传时间: 2025-07-23 13:07:37

上一篇:【Spring Boot】014

下一篇:【Spring Boot】012

留言与评论(共有 14 条评论)
本站网友 腊八蒜的功效
25分钟前 发表
运行测试结果首页:add页面:update页面:本文参与 腾讯云自媒体同步曝光计划
本站网友 彼得潘与辛德瑞拉
22分钟前 发表
运行测试结果首页:add页面:update页面:本文参与 腾讯云自媒体同步曝光计划
本站网友 韩树明
28分钟前 发表
运行测试结果首页:add页面:update页面:本文参与 腾讯云自媒体同步曝光计划
本站网友 婴儿哭闹的原因
8分钟前 发表
创建Realm对象
本站网友 对对对
18分钟前 发表
schemaLocation=".0.0 .0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2..4.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.zibo</groupId> <artifactId>shiro_spring_boot</artifactId> <version>0.0.1-SAPSHOT</version> <name>shiro_spring_boot</name> <description>Demo project for Spring Boot</description> <properties> <java.version>1.8</java.version> </properties> <dependencies> <!-- Subject:用户 SecurityManager:管理所有用户 Realm:连接数据 --> <!--导入shiro整合springboot的包--> <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-spring-boot-web-starter</artifactId> <version>1.6.0</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> <exclusi> <exclusion> <groupId>org.junit.vintage</groupId> <artifactId>junit-vintage-engine</artifactId> </exclusion> </exclusi> </dependency> <!--thymeleaf--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> <dependency> <groupId></groupId> <artifactId>thymeleaf-extras-java8time</artifactId> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>2
本站网友 紫玫瑰代表什么
28分钟前 发表
"Hello Shiro!"); return "index"; } @RequestMapping("/account/add") public String add(){ return "account/add"; } @RequestMapping("/account/update") public String update(){ return "account/update"; } }5
本站网友 石家庄无痛人流
18分钟前 发表
修改index.html页面代码语言:javascript代码运行次数:0运行复制<!DOCTYPE html> <html lang="en" xmlns
本站网友 菲律宾美食
21分钟前 发表
需要继承AuthorizingRealm public class AccountRealm extends AuthorizingRealm { //授权 @Override protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principalCollection) { println("执行了授权方法doGetAuthorizationInfo!"); return null; } //认证 @Override protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken authenticationToken) throws AuthenticationException { println("执行了认证方法doGetAuthenticationInfo!"); return null; } }第二步:编写配置类代码语言:javascript代码运行次数:0运行复制package com.; import com.sun.apache.regexp.internal.RE; import org.apache.shiro.spring.web.ShiroFilterFactoryBean; import org.apache.shiro.DefaultWebSecurityManager; import org.springframework.beans.factory.annotation.Qualifier; import org.annotation.Bean; import org.annotation.Configuration; @Configuration public class ShiroConfig { //1
本站网友 阿那曲唑
6分钟前 发表
需要继承AuthorizingRealm public class AccountRealm extends AuthorizingRealm { //授权 @Override protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principalCollection) { println("执行了授权方法doGetAuthorizationInfo!"); return null; } //认证 @Override protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken authenticationToken) throws AuthenticationException { println("执行了认证方法doGetAuthenticationInfo!"); return null; } }第二步:编写配置类代码语言:javascript代码运行次数:0运行复制package com.; import com.sun.apache.regexp.internal.RE; import org.apache.shiro.spring.web.ShiroFilterFactoryBean; import org.apache.shiro.DefaultWebSecurityManager; import org.springframework.beans.factory.annotation.Qualifier; import org.annotation.Bean; import org.annotation.Configuration; @Configuration public class ShiroConfig { //1
本站网友 上书房
21分钟前 发表
运行测试结果首页:add页面:update页面:本文参与 腾讯云自媒体同步曝光计划
本站网友 两会日程
16分钟前 发表
新建页面第一步:新建add.html页面代码语言:javascript代码运行次数:0运行复制<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <H1>添加账户</H1> </body> </html>第二步:新建update.html页面代码语言:javascript代码运行次数:0运行复制<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <H1>更新账户</H1> </body> </html>4
本站网友 长胡子
30分钟前 发表
环境搭建1
本站网友 美白祛斑面膜怎么做
20分钟前 发表
DefaultWebSecurityManager @Bean(name = "securityManager") public DefaultWebSecurityManager getDefaultWebSecurityManager(@Qualifier("accountRealm")AccountRealm accountRealm){ DefaultWebSecurityManager manager = new DefaultWebSecurityManager(); //关联accountRealm manager.setRealm(accountRealm); return manager; } //