一,配置文件加载顺序
web.xml ---->root-context.xml(加载spring容器) ---->springmvc.xml(springmvc的前端控制器)
root-context.xml做了那些事
2.1加载**.properties
2.2 配置扫描包和注解
2.3 数据源配置
2.4 Interceptor.
2.5 缓存(加载ehcache-context.xml)
2.6 task任务扫描注解
2.7 JavaBean映射工具库(dozer-bean-mappings.xml)
2.8 加载 jdbc-context.xml shiro-context.xml
2.9 定义aspectj
springmvc.xml做了那些事
3.1 配置资源映射
3.2 配置FreeMarker
web.xml做了那些事
4.1 加载spring容器
4.2 加载springmvc的前端控制器
4.3 freemarker的servlet
4.4 加载 shiroFilter
4.5 加载 sitemesh
4.6 编码过滤 避免出现乱码
4.7 为下载的文件自动装配相应的mime后缀
4.8 解决post乱码
二,jdbc配置
配置数据库连接池 dataSource
配置事物管理器 transactionManager(注入dataSource)
配置事物的传播特性 transactionInterceptor(注入 transactionManager)
需要拦截的service(注入 transactionInterceptor)
配置sqlsessionfactory (注入dataSource)
配置mapper扫描包
三,freemarker
配置freeMarker的模板路径
配置freeMarker视图解析器
在web.xml中配置freemark的servlet
在FreeMarker框架中使用Shiro的Tag标签
ShiroFreeMarkerConfigurer继承FreeMarkerConfigurer
在springmvc.xml中配置 如上第一步
第三步
引用
使用
@shiro.hasAnyRoles>
四,ehcache(缓存)
启用缓存
声明一个缓存管理器
spring对ehcache的缓存工厂支持
这里要加载(classpath:ehcache/ehcache-context.xml)
扫描包
使用
在接口中通过
@Cacheable(value = "homeCache", key = "'menuTree'")来使用 (这里注解中value=”homeCache”与ehcache-context.xml中的cache名称属性值一致。)
五,shiro权限管理
词语理解--角色(role),权限(permission),资源(resource),用户(user)这四者的关系
简单理解为用户有不同的角色,而角色对应着权限,而权限可以对资源进行增删改查等操作。
配置
配置shiro的过滤器工厂类,id-shiroFilter要和我们在web.xml中配置的过滤器一致
配置权限管理器
在web.xml中配置shiro 安全过滤器
使用
3.1 拦截请求的配置,对不同类的url进行不同的角色或者权限过滤
authc:该过滤器下的页面必须验证后才能访问
anyroles:只有此角色才能访问
rulepermission:对访问的页面进行角色和权限验证
/logout = logout
/home = authc,anyroles[hrteacher]
/mycenter = authc
/authenticate = anon
/sys/** = path
/hrteacher/** = authc,rulepermission,path
/teacher/** = authc,anyroles[teacher],path
3.2 public class CustomeRealm extends AuthorizingRealm 自定义一个类,继承AuthorizingRealm
protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) 授权
protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken token) throws AuthenticationException 登录验证
六,org.dozer.DozerBeanMapper
主要用以节点数据整合,是一个JavaBean映射工具库。它支持简单的属性映射,复杂类型映射,双向映射,隐式显式的映射,以及递归映射
加载classpath:mapper/dozer-bean-mappings.xml;