最近在csdn上面下载了个spring-boot+shiro的框架,楼主最近正在学习spring-boot, 就在这个框架的基础上面做了一些修改,现在记录修改过程中的一些问题。

框架具体地址:http://blog.csdn.net/zjcjava/article/details/71606144?locationNum=14&fps=1

这个框架写的很清楚,能直接通过java application直接运行出来,运行结果如下:

对spring-boot+shiro的学习(借助别人家的框架来理解)对spring-boot+shiro的学习(借助别人家的框架来理解)

对spring-boot+shiro的学习(借助别人家的框架来理解)对spring-boot+shiro的学习(借助别人家的框架来理解)

因为对spring-boot和shiro不熟悉。通过debug applicatioon对方法一个一个的查看(理解一下菜鸟的心理,O(∩_∩)O哈哈~)

启动过程中主要是:有@SpringBootApplication注解的启动类和shiro配置项的类。

@SpringBootApplication:是一个组合注解,包括@EnableAutoConfiguration及其他多个注解,是一个项目的启动注解

主要说明一下shiro配置项的类。在这个项目中没有使用xml注解,shiro的配置就都使用的代码实现。

下图是shiro配置类的一部分。主要是使用了@Configuration和@Bean。

对spring-boot+shiro的学习(借助别人家的框架来理解)

对spring-boot+shiro的学习(借助别人家的框架来理解)

@Configuration:使用了该注解的类,等同于在xml中配置beans

@Bean:该注解等同于xml中配置bean


运行成功后。在浏览器输入:localhost:8080 此时进入controller类中运行。

下图为该框架中的controller类:

对spring-boot+shiro的学习(借助别人家的框架来理解)对spring-boot+shiro的学习(借助别人家的框架来理解)

在这里,使用的是@RestController注解。

@RestController:相当于是@ResponseBody和@Controller。使用了@ResponseBody就无法返回jsp页面,视图解析器不会起作用,所以会返回return内的内容。

在shiro配置类中的shiro filter方法中设置了如下配置:

对spring-boot+shiro的学习(借助别人家的框架来理解)对spring-boot+shiro的学习(借助别人家的框架来理解)

所以会进入 @RequestMapping(value="login")的方法中,返回内容为:login。

整个运行过程是直接从controller类回到jsp页面。

以上是我的大致理解。

下面是我自己的一些修改。

1、是能够返回jsp页面。

spring-boot添加jsp支持同时把启动方式从java application启动修改成通过tomcat启动

spring-boot使用tomcat启动的话,必须要extends SpringBootServletInitializer。

在application.properties配置文件中,配置如下内容:

spring.mvc.view.prefix:/pages/

spring.mvc.view.suffix:.jsp

这里的/pages/是src/main/webapp下面的文件夹

把controller类中的注入改为@Controller注入。

使用tomcat启动,在server的web.xml中设置了默认启动登录index.jsp页面。

因为个人设计,所以我的登录流程是:先localhost:8080/【项目名称】进入index.jsp界面,再从界面中点击“登录”按钮进入登录界面。

webapp下编写一个index.jsp,在pages文件夹下面编写login.jsp

这里需要注意的是shiro Filter里面的配置,因为我是自己学习,所以我设计了所有的jsp页面都是可以匿名进入。

如果能出现index.jsp页面,那spring-boot添加jsp支持就成功了。同时tomcat启动也成功。

2、能够通过ajax传参数到后台,同时后台能够返回json参数到前台

我是通过登录过程来实现数据传输的。要通过ajax数据验证登录信息,那肯定会和数据库进行交互。

这里使用mybatis。框架中原本是存在mybatis的mapper.xml部分,但是我为了个人习惯问题,删除了框架中的mybatis部分,使用generatorConfig.xml重新生成。

同时修改了框架中注入的xxDao 改成Service,并添加server的实现类。整个运行过程就是从controller-->service-->serviceImpl-->mapper.java-->mapper.xml,再依次返回回到jsp页面

对spring-boot+shiro的学习(借助别人家的框架来理解)

在ShiroRealm.java类中,框架作者解释要使用dao而不使用Service

对spring-boot+shiro的学习(借助别人家的框架来理解)

对spring-boot+shiro的学习(借助别人家的框架来理解)

对spring-boot+shiro的学习(借助别人家的框架来理解)


框架中给出了一个ajaxLogin的方法。

通过ajax把数据传输到ajaxLogin的方法中。这里需要注意的是,我是自己写了一个ajax来传输数据。框架中的逻辑直接重定向到指定jsp页面对spring-boot+shiro的学习(借助别人家的框架来理解)如下:对spring-boot+shiro的学习(借助别人家的框架来理解)

所以我是直接把重定向到xx界面这个方式,修改成返回json数据的方式。

对spring-boot+shiro的学习(借助别人家的框架来理解)

对spring-boot+shiro的学习(借助别人家的框架来理解)

至此:使用该框架可以支持jsp页面,通过tomcat登录,能在前后台之间传输json数据,再来就是往里面填加各种功能。


这都是借助别人成熟的框架,再自己在上面做了些微不足道的增长。如果原作者看到就不要介意。









相关文章:

  • 2021-09-28
  • 2021-05-17
  • 2022-12-23
  • 2021-04-12
  • 2022-01-13
  • 2021-05-15
  • 2021-11-28
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-07-21
相关资源
相似解决方案