spring spring-mvc hibernate简单搭建后台

该后台只是ssh的简单搭建,涉及到的内容

1.使用spring aop来显示controller层方法调用的时间以及调用的是什么哪个接口的什么方法
2.未登录请求的处理
3.拦截器的实现
4.登陆实现
5.ehcache的使用
6.log4j进行日志的打印

实现过程中遇到的几个问题

1.在使用spring aop编程时,切面声明好了,切入点也写好了,自动代理也在配置中激活了,但就是织入不进去,问题出在被代理的对象得加@EnableAspectJAutoProxy注解,我把他理解为你要代理他,必须得到他的同意,这个注解就是他同意你代理的一种标志。

2.在进行拦截器的配置时,由于在web.xml中使用/配置,导致spring mvc将捕获所有的在容器当中的请求,而我们的静态资源比如js,css,html...这些都是不需要进入spring mvc的,如果请求进入则会被我们的拦截器给拦截住,所以我们要把静态资源释放出来,使用mvc:resources来进行释放,但是我进行释放之后他居然还给我拦截住,查了网上资料之后,一种处理方法是在拦截器定义中增加,其他资源类似处理。

3.重定向问题,问题的背景是我在浏览器中直接访问接口/user/test,拦截器拦下(因为没有登陆嘛),重定向到login页面很正常,但是如果点击测试按钮(同样没有登陆)访问的也是/user/test接口,拦截器拦下但是并没有重定向到login页面,一开始以为我的拦截器中的重定向问题,后来马上也排除了(重定向问题我的第一种请求方式应该也会出问题),后来打开f12,看到network中login页面已经被我获取到了,但是页面没有展示出来,同时我在console里看到我的ajax请求进入了error里面,判断出应该是ajxa出问题了。后来上网查资料才想到,ajax只是支持页面的局部刷新,而我现在要做的是重新加载页面,所以我就在拦截器中做了下判断看是否是ajax发出的请求还是浏览器地址栏中的直接请求,分别做一下处理。可能有人会想到为什么没有登录可以看到测试按钮的那个界面,他应该登陆才能看到啊。对的,只有登陆才能看到里面的页面的处理我也做了,但我把它注释掉了,因为发现了重定向的问题。

项目中使用到的工具和方法

1.热部署工具jrebel,java文件的改动可以不用在重启服务器。
2.hibernate逆向生成实体类,简化我们的工作。
以上两个在网上有很多的资料可以自行查看。

源码处理

因为这是公开的所以我把mysql数据库的配置文件的用户名和密码删了,有需要者请自行下载源码配置自己的数据库就行,数据库的sql文件在sql文件夹下的demo.sql。

源码地址:springDemo

你可能感兴趣的:(spring spring-mvc hibernate简单搭建后台)