一、导入jar包

1、springmvc相关jar包

(1)web相关包

spring-web、spring-webmvc;

(2)文件上传

commons-fileupload、commons-io;

(3)json相关包

jackson-annotations、jackson-core、jackson-databind;

2、spring核心jar包

core、context、expression、beans;

3、aop相关的包

aop相关:spring-aop、aopallicanse;
aspect相关:spring-aspect、aspectjweaver;

4、dao层数据库相关jar包

spring-jdbc、spring-tx、mysql-connector、druid

5、mybatis相关jar包

(1)mybatis核心包

mybatis;

(2)mybatis依赖包

ant、ant-launcher、asm、cglib、commons-logging、javassist、log4j、log4j-api、log4j-core、ognl、slf4j-api、slf4-log4j12;

6、mybatis整合spring相关jar包

mybatis-spring;

7、shiro相关jar包

(1)shiro核心包

shiro-core;

(2)其他依赖包

commons-beanutils、commons-logging、junit、log4j、slf4j-api、slf4j-log4j12;

8、shiro整合spring相关jar包

shiro-spring、shiro-web;

9、页面相关包

(1)jstl的jar包

jstl;

(2)mybatis分页插件相关jar包

jsqlparser、pagehelper;

10、工具类jar包

lombok、commons-logging;
注意:有些依赖的jar包时重复的,在导包时注意不要重复。

二、配置相关配置文件

所有分配置文件如下:
web.xml配置文件;
applicationContext-springmvc.xml配置文件;
applicationContext.xml配置文件;
applicationContext-mybatis.xml配置文件;
mybatis-config.xml配置文件;
applicationContext-shrio.xml配置文件;
sqlMapper.xml映射文件;
jsbc.properties配置文件;
log4j.properties配置文件。

1、web.xml配置文件

(1)web应用监听器contextLoaderListener

项目启动时就加载以下配置文件:
1)spring的配置文件:classpath:applicationContext.xml;
2)mybatis配置文件:classpath:applicationContext-mybatis.xml;
3)shiro配置文件:classpath:applicationContext-shiro.xml。

(2)前端控制器

启动时就加载的配置文件:classpath:applicationContext-springmvc.xml;
url-pattern:/;
load-on-starup:1.

(3)配置shiro过滤器的代理

shiro实现权限通过过滤器filter,类名为:DelegatingFilterProxy
目标过滤器的生命周期(targetFilterLifrcycle):true;
过滤所有请求:url-pattern:/
配置如下:

shiroFilter
org.springframework.web.filter.DelegatingFilterProxy

targetFilterLifecycle
true




shiroFilter
/

2、applicationContext-springmvc.xml配置文件

(1)包扫描

扫描controller、全局异常处理器;

(2)三大组建注解驱动

(3)视图解析器

(4)消息转换器工厂

(5)静态资源处理器

(6)文件上传

(7)拦截器

3、applicationContext.xml配置文件

(1)包扫描

扫描除controller之外的包;

(2)事务管理器

(3)事务的注解驱动

(4)切面

4、applicationContext-mybatis.xml配置文件

(1)加载jdbc.properties配置文件

(2)配置数据源

(3)创建sqlSession工厂

1)注入数据源

2)加载mybatis核心配置文件

configLocation;

3)加载sqlMapper映射文件

Locations;

(4)扫描mapper

5、mybatis-config.xml配置文件

(1)驼峰命名

(2)懒加载


(3)包别名

6、applicationContext-shrio.xml配置文件

(1)配置安全管理器

需注入:自定义的realm和缓存管理器



(2)配置凭证匹配器

需要设定:加密算法和哈希次数



(3)配置自定义的realm

需要注入:凭证匹配器


(4)配置shiro过滤器的工厂




注意:shiro过滤器工厂必须与web.xml中过滤器的名称保持一致。
在过滤器工厂中配置项目相关资源或角色。

A.必须的配置:注入安全管理器

B.常见的配置:

1)登录时的url(loginUrl)

2)登陆成功时跳转的url(successUrl)

3)没有权限时跳转的url(unauthorizedUrl)


注意:这个配置在整合spring的时候就不生效了,这时,可以舍弃这种配置方式,采取以下两种策略来处理:
①定义全局异常处理器处理。
②在shiro配种文件中添加异常映射的配置文件,当没有权限时,跳转指定页面,配置如下:




要跳转的页面()



4)配置授权的策略(filterChainDefinitions)

a.按照设定的资源配置(太繁琐,不常用)




<!—举例说明:教师模块 —>
<!— /teacher/add = perms[teacher:add]
/teacher/delete = perms[teacher:delete]


注意:采用这种配置方式,项目中所有的资源都要在此配置。

b.拦截所有请求,对不需要拦截的资源放行(重点掌握)



<!-静态资源放行—>
/assets/ =anon
<!—登陆页面放行>
/auth/login = anon
<!—登出页面放行—>
/auth/loginOut = logout
<!—拦截所有资源—>
/
=authc

(5)开启shiro的注解支持




注意:需在springmvc或者springmvc的配置文件中开启注解aop。
< aop:aspectj-autoproxy proxy-target-class=”true”>

(6)配置缓存管理器


7、sqlMapper.xml映射文件

8、jdbc.properties配置文件

定义了数据库连接的数据源信息。

9、log4j.properties配置文件

关于日志的配置文件。

10、添加相应注解

(1)包扫描相关注解

@Component、@Service、@Controller;

(2)事务相关注解

@Transactional;

(3)切面相关注解

(4)访问路径相关注解

@RequestingMapping等

(5)shiro相关注解

在项目中每一个handler方法上添加如下注解:
@RequiresPermissions(“类上的限定url:方法上的限定url”)
注意:此处的url不加”/”。

11、联通测试