桌子与灯的gravatar头像
桌子与灯 2017-05-22 11:25:58

s2sh开发的java源代码分享网(源码已开源)

具体效果可看网址(是我自己拿来练手的项目,可不是和最代码相比的

代码托管git地址

https://git.oschina.net/wisdomfei/admintwo

项目预览地址

http://www.admintwo.com/

lib包下载地址

http://pan.baidu.com/s/1bpAJxrL

项目截图:

s2sh开发的java源代码分享网(源码已开源)

运行截图

s2sh开发的java源代码分享网(源码已开源)

s2sh开发的java源代码分享网(源码已开源)

s2sh开发的java源代码分享网(源码已开源)

s2sh开发的java源代码分享网(源码已开源)

s2sh开发的java源代码分享网(源码已开源)

s2sh开发的java源代码分享网(源码已开源)

网站功能介绍:
1、邮件注册(采用阿里云企业邮箱),为了让大家体验一下邮箱注册功能。我已经在分享的源码中,为大家配置好了测试账户,大家可以在自己电脑上进行测试。
2、md5加密,注册用户,所有密码会以密文保存在数据库,可以保证安全。
3、代码分享功能(核心功能),该功能的主要特色是集成了优秀的文本编辑器,支持插入代码、插入链接、插入表情、插入图片、支持在线预览。同时也实现了文件上传(基于struts2的文件上传功能)。
4、代码下载,下载功能会判断用户是否下载过该代码,若下载过则不扣积分。下载功能也是基于struts2的下载模块实现的。
5、代码评论,该功能是我仿照qq空间评论功能实现的,在本站中,我是以时间倒叙方式显示的(也支持正序)。
6、代码收藏,用户可以收藏代码。
7、消息中心,分为了0系统消息、1评论消息、2兑换消息、3上传图片消息、4上传文件消息、5下载消息(用户扣除积分)、6下载消息。
8、代码中心,分为了分享代码、下载代码、评论代码、收藏代码。
9、设置功能,支持修改昵称、城市、性别、座右铭、密码、头像。
10、赞助兑换功能,支持1个赞助兑换10个积分,也支持用赞助升级称号。
11、其他功能包括:图片压缩处理功能(即使是几M的图片,压缩后也只有几十kb)。通用json处理功能(向方法中传递任何参数,int、string等,都会返回json数据,而且速度很快)。分词功能(点击某一个分享,进入详情页的时候,会对该分享名称进行分词,并且加入到head中,利于网站seo)。
可能还有一些其他功能,通过查看源码可了解。

 

网站技术介绍:
1、采用语言,java
2、后台框架,struts2+spring+spring JDBC
3、前台技术,layui+jquery+ajax

 

网站设计思路:
前台渲染是采用的jsp技术,为了保证网站的速度,我使用了几种方法:
1、我将重复的代码保存成单独的jsp文件然后引入(这样的好处就是重复的jsp文件只会加载一次,然后浏览器缓存,下次加载速度会提升)。比如,我将link和header单独提取出来,然后在其他页面进行引入:
<!DOCTYPE html>
<html>
<%@ include file="link.jsp"%>
<body>
<%@ include file="header.jsp"%>
2、所有的业务功能,我都放在了html加载完成之后,利用jquery+ajax获取数据后再渲染界面(这样的好处就是给用户的感觉是网站速度很快。因为用户打开后,立马渲染html代码,此时网站结构已经出现,接着用jqury+ajx去后台获取数据。由于我的sql语句严格控制在ms级别,所以只需要几百ms,数据即可拿到,此时渲染在页面上给用户的感觉很快)
3、sql语句的控制,本站的所有sql语句,均控制在1s以下。这块我花了很长时间进行sql优化,我举个例子:为了减少数据库的访问次数,我会想方设法通过一条语句获取所有信息,并且严格控制它的执行速度,绝对不可以超过1s。首页的下载榜、评论榜、收藏榜,这三个功能的数据就是通过一条sql语句获取的:
#优化联合查询用户评论、下载、收藏的资源列表
select a.sort,a.id,r.name,a.nowtime,r.isjing,r.isyuan,
ifnull(c.res_comments_num,0) as res_comments_num,
ifnull(d.res_download_num,0) as res_download_num,
ifnull(kp.res_keep_num,0) as res_keep_num
from
#sort为1代表用户评论的代码列表
(select 1 as sort,c.resources_id as id,c.nowtime as nowtime from comments c
#需要指定用户
where c.user1_id = 1
group by c.resources_id
union all
#sort为2代表用户下载的代码列表
select 2 as sort,d.resources_id as id,d.nowtime as nowtime from download d
#需要指定用户
where d.user_id = 1
group by d.resources_id
union all
#sort为3代表用户收藏的代码列表
select 3 as sort,k.resources_id as id,k.nowtime as nowtime from keep k
#需要指定用户
where k.user_id = 1
group by k.resources_id)as a
left join resources r on a.id = r.id
#查询收藏数
left join (select kp.resources_id,count(kp.resources_id) as res_keep_num from resources r,keep kp where r.id=kp.resources_id group by kp.resources_id)kp on a.id=kp.resources_id
#查询评论数
left join (select c.resources_id,count(c.resources_id) as res_comments_num from resources r,comments c where r.id=c.resources_id group by c.resources_id)c on a.id=c.resources_id
#查询下载数
left join (select d.resources_id,count(d.resources_id) as res_download_num from resources r,download d where r.id=d.resources_id group by d.resources_id)d on a.id=d.resources_id
order by sort,nowtime desc

这条sql语句我优化了很多次,目前它的平均执行时间为32ms,它所花费的时间几乎相当于简单的查询语句 select id from user。
4、为了保证代码的可读性,src下的业务功能,完全遵循面向接口开放。所有的sql语句,均放在daoimpl包下。所有的业务逻辑处理,均放在serviceimpl包下。调用规则均是:action--调用service接口--调用dao接口
5、由于使用了layui前端框架,为了保证代码清晰,每个html文件,均对应一个js文件处理,并且js文件名也和jsp文件名一一对应(非常利用修改)。
6、运行步骤:首先将代码导入到eclipse或者其他IDE,然后利用mysql数据库建一个名为admintwo的库,将admintwo.sql执行一遍。修改jdbc.properties和img.properties,其中jdbc.properties是数据库连接信息,img.properties是用户头像、分享介绍图片、分享代码压缩包文件存放路径设置文件。之后,部署运行tomcat服务器即可。

最代码官方编辑于2017-5-22 12:19:00


打赏

最代码最近下载分享源代码列表最近下载
jlmarket  LV22 2022年6月14日
buchifanqie  LV2 2022年3月22日
陈王子  LV12 2021年10月25日
哎呀  LV1 2021年5月15日
取名字是的头疼事  LV2 2021年3月15日
xindong  LV12 2021年3月2日
羞羞小子  LV13 2021年2月5日
德莱文  LV15 2021年1月24日
fbwieuhilkws  LV1 2021年1月8日
今天的月白很菜  LV2 2020年12月24日
最代码最近浏览分享源代码列表最近浏览
12345644 4月25日
暂无贡献等级
爱吃零食  LV1 2023年11月2日
2036495585  LV9 2023年9月18日
sdl924  LV1 2023年5月28日
暂无贡献等级
aobiym 2023年3月26日
暂无贡献等级
hesu2020  LV1 2023年3月18日
kevinkg  LV12 2023年2月27日
xiaozhilei 2023年2月22日
暂无贡献等级
zhiwei0127  LV1 2022年12月14日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友