jeesite简单入口分析
这两天要开新项目 , 准备使用比较受欢迎的 jeesite框架 .
jeesite是一个写好的网站 , 用到的框架比较多 具体请看 -- > github链接
下载下来之后 , 手动把maven版本改成了普通的web项目 , 然后导入数据库 . 启动成功 .
接下来开始了解项目的基本构成 , 我比较喜欢先从程序的入口开始分析 , 发现直接打开项目地址 会自动跳转到登陆地址(a/login) ,然后就分析这个跳转是怎么做的 .
比较纳闷的是 , web.xml没有欢迎页面 直接就跳转了 . 后来分析了 springMVC的配置 发现 spring-mvc.xml里面有如下代码 :
<!-- 定义无Controller的path<->view直接映射 -->
<mvc:view-controller path="/" view-name="redirect:${web.view.index}"/>
意思注释说的很明白 , 如果直接访问项目的根目录 即: localhost:8080/projectName/ 则会直接跳转到 view-name 里面的地址 "redirect"的意思是重定向 . ${web.view.index} 这个是spring通过加载 xxxx.properties 文件获得的全局变量 . 加载properties 文件配置如下 :
<!-- 加载配置属性文件 -->
<context:property-placeholder ignore-unresolvable="true" location="classpath:jeesite.properties" />
这样就把 该 properties 文件里面所有 key-value 加载到spring全局里面 . 然后在所有的spring配置里面 都可以用 类似 ${key} 来调用相应的值 , 很方便 .
来看看这个${web.view.index}在 jeesite.properties 文件里是多少 :
web.view.index=/a
/a
看到这里应该明白 , 如果直接访问项目根目录 , 则直接跳转到 localhost:8080/projectName/a 这个url . 渐渐的有眉目了 , 但还不够 .
全局搜索 /a 是啥意思 , 发现jeesite.properties里面有个 值
adminPath=/a
有个 adminPath 承接了这个 /a 路径 .
jeesite 还用了一个管理权限的框架 , 也是第一次接触 叫 Apache Shiro . 项目中有个 spring-context-shiro.xml 配置文件 , 就是关于shiro的配置 . 其中就有一段 这样的配置 :
<!-- Shiro权限过滤过滤器定义 -->
<bean name="shiroFilterChainDefinitions" class="java.lang.String">
<constructor-arg>
<value>
/static/** = anon
/userfiles/** = anon
${adminPath}/cas = cas
${adminPath}/login = authc
${adminPath}/logout = logout
${adminPath}/** = user
/act/editor/** = user
/ReportServer/** = user
</value>
</constructor-arg>
</bean>
具体的意思 可以了解一下shiro
${adminPath}/** = user 关键在于这句话 意思是 访问的链接 是类似 ${adminPath}/** 这个的话 , 则 必须得有用户登录 , 否则跳转到登陆界面 . 而 ${adminPath} 又恰好是 /a 于是 如果 有 /a/** (**是匹配所有的意思) 链接 , 则需要登陆 ,如果没有登陆则跳转到 登陆界面 .
至此 , 登陆跳转大致算清晰了 .
jeesite简单入口分析的更多相关文章
- MongoDB源码分析——mongod程序源码入口分析
Edit 说明:第一次写笔记,之前都是看别人写的,觉得很简单,开始写了之后才发现真的很难,不知道该怎么分析,这篇文章也参考了很多前辈对MongoDB源码的分析,也有一些自己的理解,后续将会继续分析其他 ...
- Android 短信模块分析(三) MMS入口分析
MMS入口分析: 在Mms中最重要的两个Activity,一个是conversationList(短信列表) ,另一个就是ComposeMessageActivity(单个对话或者短信).每 ...
- Spring Ioc源码分析系列--Ioc源码入口分析
Spring Ioc源码分析系列--Ioc源码入口分析 本系列文章代码基于Spring Framework 5.2.x 前言 上一篇文章Spring Ioc源码分析系列--Ioc的基础知识准备介绍了I ...
- MongoDB源码分析——mongo主程序入口分析
Edit 源码版本为MongoDB 2.6分支 mongo主程序入口分析 mongo是MongoDB提供的一个执行JavaScript脚本的客户端工具,可以用来和服务端交互,2.6版本的Mongo ...
- 开源GUI-Microwindows之程序入口分析
**************************************************************************************************** ...
- Python正则简单实例分析
Python正则简单实例分析 本文实例讲述了Python正则简单用法.分享给大家供大家参考,具体如下: 悄悄打入公司内部UED的一个Python爱好者小众群,前两天一位牛人发了条消息: 小的测试题: ...
- ceph-csi源码分析(3)-rbd driver-服务入口分析
更多ceph-csi其他源码分析,请查看下面这篇博文:kubernetes ceph-csi分析目录导航 ceph-csi源码分析(3)-rbd driver-服务入口分析 当ceph-csi组件启动 ...
- 最新 x86_64 系统调用入口分析 (基于 5.7.0)
最新 x86_64 系统调用入口分析 (基于5.7.0) 整体概览 最近的工作涉及系统调用入口,但网上的一些分析都比较老了,这里把自己的分析过程记录一下,仅供参考. x86_64位系统调用使用 SYS ...
- ASP.NET运行时详解 生命周期入口分析
说起ASP.NET的生命周期,网上有很多的介绍.之前也看了些这方面的博客,但我感觉很多程序猿像我一样,看的时候似乎明白,一段时间过后又忘了.所以,最近Heavi花了一段时间研究ASP.NET的源代码, ...
随机推荐
- [HNOI2004]Language L语言
2777: [HNOI2004]Language L语言 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 10 Solved: 5[Submit][S ...
- PHP生成带有干扰线的验证码,干扰点、字符倾斜
PHP生成验证码的类代码,本验证码类支持生成干扰点.干扰线等干扰像素,还可以使字符倾斜.在类中你可以定义验证码宽度.高度.长度.倾斜角度等参数,后附有用法: <?php class class_ ...
- iOS 专题 之 界面开发 之 控件
iOS 之 UIViewController iOS 之 Navagation Button iOS 之 UIButton iOS 之 UITextField iOS 之 UIStackView iO ...
- MVC 与 MVVM
MVC View直接访问Model,View包含Model信息,包括业务逻辑. MVC模型里Model不变,Model不依赖于View,但是 View依赖于Model.因为View实现了一些业务逻辑, ...
- Tsinsen A1333: 矩阵乘法(整体二分)
http://www.tsinsen.com/A1333 题意:-- 思路:和之前的第k小几乎一样,只不过把一维BIT换成二维BIT而已.注意二维BIT写法QAQ #include <cstdi ...
- osgEarth编译(转载)
osgEarth编译 osgEarth的编译需要osg和一些第三方插件库,我主要参考了cnblogs上的一篇博文,但是也不够详细,并且我是在已经编译好osg的情况下去编译osgEarth,所以期间也遇 ...
- JavaScript实用功能代码片段
把平时网站上常用的一些实用功能代码片段通通收集起来,方面网友们学习使用,利用好的话可以加快网友们的开发速度,提高工作效率. 1.原生JavaScript实现字符串长度截取 function cutst ...
- Android项目中打jar包 和 使用
第一步,把普通的android project设置成库项目 库项目也是一个标准的android项目,因此你先创建一个普通的android项目. 这个项目可以起任何的名称,任何的报名,设置其他需要设置的 ...
- 在JS中使用COM组件的方法
首先创建一个COM组件,插入一个双接口Itest,在此接口上实现以下三个方法: STDMETHODIMP Ctest::test(void) //无输入输出参数 { // TODO: 在此添加实现代码 ...
- CocosBuilder 多分辨率基础
最近两个项目大量使用了CocosBuilder, 对于开发效率提高是巨大的. 一直计划写一篇博客谈谈CocosBuilder的多分辨率问题, 懒病加上一些疙疙瘩瘩的小事情, 拖延了一个多月, 才终于下 ...