为什么80%的码农都做不了架构师?>>>
-
commons-collections -
commons-collections -
3.2.1 -
-
net.sf.ehcache -
ehcache-core -
2.6.9 -
-
org.apache.shiro -
shiro-spring -
1.2.3 -
-
org.apache.shiro -
shiro-ehcache -
1.2.3 -
-
org.apache.shiro -
shiro-quartz -
1.2.3
如果项目是hibernate的,以前的时候ehcache可能不是单例的,因为shiro里面也使用到了ehcache做缓存,和hibernate的ehcache缓存配置有冲突,所以需要对hibernate的ehcache部分做些调整,调整如下:
Xml代码
- class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
org.hibernate.dialect.MySQLDialect true update - org.hibernate.cache.SingletonEhCacheRegionFactory
net.sf.ehcache.hibernate.SingletonEhCacheProvider true true true WEB-INF/classes/ehcache.xml org.springframework.orm.hibernate4.SpringSessionContext com.xxx.entity
上面红色的文字部分是需要调整的内容。
既然用到了ehcache,ehcahce.xml文件里面的配置内容如下:
Xml代码
-
-
- timeToIdleSeconds="120" timeToLiveSeconds="120" overflowToDisk="true" />
- maxElementsInMemory="5000" eternal="true" overflowToDisk="true" />
- maxElementsInMemory="10000" eternal="false" timeToLiveSeconds="120"
- overflowToDisk="true" />
- maxEntriesLocalHeap="2000"
- eternal="false"
- timeToIdleSeconds="3600"
- timeToLiveSeconds="0"
- overflowToDisk="false"
- statistics="true">
- maxEntriesLocalHeap="2000"
- eternal="false"
- timeToIdleSeconds="3600"
- timeToLiveSeconds="0"
- overflowToDisk="false"
- statistics="true">
- maxEntriesLocalHeap="2000"
- eternal="false"
- timeToIdleSeconds="3600"
- timeToLiveSeconds="0"
- overflowToDisk="false"
- statistics="true">
- maxEntriesLocalHeap="2000"
- eternal="false"
- timeToIdleSeconds="3600"
- timeToLiveSeconds="0"
- overflowToDisk="false"
- statistics="true">
然后是web.xml文件里面加过滤器,注意要写在springmvc的filter前面
Xml代码
-
shiroFilter -
org.springframework.web.filter.DelegatingFilterProxy -
true -
-
targetFilterLifecycle -
true -
shiroFilter -
/*
然后就是shiro相关的spring配置参数文件了
Xml代码
- xmlns:util="http://www.springframework.org/schema/util"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="
- http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
- http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd">
- class="com.shinowit.framework.security.credentials.RetryLimitSimpleCredentialsMatcher">
- value="#{T(org.apache.shiro.codec.Base64).decode('4AvVhmFLUs0KTA3Kprsdag==')}"/>
- /index.jsp = anon
- /validcode.jsp = anon
- /login/ = anon
- /static/** = anon
- /js/** = anon
- /img/** = anon
- /unauthorized.jsp = anon
- #/login/checklogin = authc
- /login/checklogin = anon
- /login/logoutlogout = logout
- /** = user
哦,对了,里面那个fuck那个url是用来改密码的,因为数据库里面的密码是加密的,不这么整总也不可能知道对的md5值是多少。
但愿没有忘记什么内容,挺墨迹的,不过能跑起来以后后边关于权限和安全的处理就简单多了,写写注解或者标签就搞定了,很爽。
核心技术:Maven,Springmvc mybatis shiro, Druid, Restful,
Dubbo, ZooKeeper,Redis,FastDFS,ActiveMQ,Nginx
1. 项目核心代码结构截图
项目模块依赖
特别提醒:开发人员在开发的时候可以将自己的业务REST服务化或者Dubbo服务化
2. 项目依赖介绍
2.1 后台管理系统、Rest服务系统、Scheculer定时调度系统依赖如下图:
zookeeper、dubbo服务启动
dubbo管台
REST服务平台