基于java SpringBoot的论坛系统推书网站设计,附源码
说到论坛,这个词有可能有点陌生,但是说到百度贴吧一定不会陌生。没错,今天给大家介绍的就是一个论坛系统。
主要功能
(1)话题栏目功能
(2)问答栏目功能
(3)会员功能
(4)员工管理功能
(5)会员卡管理功能
(6)模板管理功能
(7)在线帮助管理功能
(8)浏览量管理功能
(9)友情链接管理功能
(10)留言管理功能
(11)文件打包管理功能
(12)系统通知管理功能
(13)平台收益管理功能
(14)全站设置功能
(15)支付管理功能
(16)短信管理功能
(17)第三方服务管理功能
(18)缩略图管理功能
技术选型
Spring Boot +VUE
Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。
SpringBoot基于Spring4.0设计,不仅继承了Spring框架原有的优秀特性,而且还通过简化配置来进一步简化了Spring应用的整个搭建和开发过程。另外SpringBoot通过集成大量的框架使得依赖包的版本冲突,以及引用的不稳定性等问题得到了很好的解决。
SpringBoot所具备的特征有:
(1)可以创建独立的Spring应用程序,并且基于其Maven或Gradle插件,可以创建可执行的JARs和WARs;
(2)内嵌Tomcat或Jetty等Servlet容器;
(3)提供自动配置的“starter”项目对象模型(POMS)以简化Maven配置;
(4)尽可能自动配置Spring容器;
(5)提供准备好的特性,如指标、健康检查和外部化配置;
(6)绝对没有代码生成,不需要XML配置。
Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式JavaScript框架。 [5] 与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。另一方面,当与现代化的工具链以及各种支持类库结合使用时,Vue 也完全能够为复杂的单页应用(SPA)提供驱动。
Vue.js是一套构建用户界面的渐进式框架。与其他重量级框架不同的是,Vue采用自底向上增量开发的设计。Vue 的核心库只关注视图层,并且非常容易学习,非常容易与其它库或已有项目整合。另一方面,Vue 完全有能力驱动采用单文件组件和Vue生态系统支持的库开发的复杂单页应用。
Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件。
Vue.js 自身不是一个全能框架——它只聚焦于视图层。因此它非常容易学习,非常容易与其它库或已有项目整合。另一方面,在与相关工具和支持库一起使用时 ,Vue.js 也能驱动复杂的单页应用。
部分代码展示
/**
* 提醒管理
*
*/
@Controller
@RequestMapping("/control/remind/manage")
public class RemindManageAction {
@Resource RemindService remindService;
@Resource QuestionManage questionManage;
@Resource SettingService settingService;
@Resource UserService userService;
@Resource TopicManage topicManage;
@Resource RemindManage remindManage;
@Resource FileManage fileManage;
/**
* 提醒列表
* @param model
* @param id 用户Id
* @param request
* @param response
* @return
* @throws Exception
*/
@ResponseBody
@RequestMapping(params="method=remindList",method=RequestMethod.GET)
public String remindList(PageForm pageForm,ModelMap model,Long id,
HttpServletRequest request, HttpServletResponse response) throws Exception {
//错误
Map<String,Object> error = new HashMap<String,Object>();
Map<String,Object> returnValue = new HashMap<String,Object>();
if(id != null && id >0L){
//调用分页算法代码
PageView<Remind> pageView = new PageView<Remind>(settingService.findSystemSetting_cache().getBackstagePageNumber(),pageForm.getPage(),10);
//当前页
int firstIndex = (pageForm.getPage()-1)*pageView.getMaxresult();
//用户Id集合
Set<Long> userIdList = new HashSet<Long>();
//用户集合
Map<Long,User> userMap = new HashMap<Long,User>();
QueryResult<Remind> qr = remindService.findRemindByUserId(id,null,firstIndex,pageView.getMaxresult());
if(qr != null && qr.getResultlist() != null && qr.getResultlist().size() >0){
for(Remind remind : qr.getResultlist()){
userIdList.add(remind.getSenderUserId());
remind.setSendTime(new Timestamp(remind.getSendTimeFormat()));
if(remind.getReadTimeFormat() != null){
remind.setReadTime(new Timestamp(remind.getReadTimeFormat()));
}
if(remind.getTopicId() != null && remind.getTopicId() >0L){
Topic topic = topicManage.queryTopicCache(remind.getTopicId());//查询缓存
if(topic != null){
remind.setTopicTitle(topic.getTitle());
}
}
if(remind.getQuestionId() != null && remind.getQuestionId() >0L){
Question question = questionManage.query_cache_findById(remind.getQuestionId());//查询缓存
if(question != null){
remind.setQuestionTitle(question.getTitle());
}
}
}
}
if(userIdList != null && userIdList.size() >0){
for(Long userId : userIdList){
User user = userService.findUserById(userId);
if(user != null){
userMap.put(userId, user);
}
}
}
if(userMap != null && userMap.size() >0){
if(qr != null && qr.getResultlist() != null && qr.getResultlist().size() >0){
for(Remind remind : qr.getResultlist()){
User sender_user = userMap.get(remind.getSenderUserId());
if(sender_user != null){
remind.setSenderUserName(sender_user.getUserName());
remind.setSenderNickname(sender_user.getNickname());
if(sender_user.getAvatarName() != null && !"".equals(sender_user.getAvatarName().trim())){
remind.setSenderAvatarPath(fileManage.fileServerAddress()+sender_user.getAvatarPath());//发送者头像路径
remind.setSenderAvatarName(sender_user.getAvatarName());//发送者头像名称
}
}
}
}
}
//将查询结果集传给分页List
pageView.setQueryResult(qr);
User user = userService.findUserById(id);
if(user != null){
returnValue.put("currentUser", user);
}
returnValue.put("pageView", pageView);
}else{
error.put("userId", "用户Id不能为空");
}
if(error.size() >0){
return JsonUtils.toJSONString(new RequestResult(ResultCode.FAILURE,error));
}else{
return JsonUtils.toJSONString(new RequestResult(ResultCode.SUCCESS,returnValue));
}
}
/**
* 删除提醒
* @param model
* @param userId 用户Id
* @param friendUserId 对方用户Id
* @param request
* @param response
* @return
* @throws Exception
@RequestMapping(params="method=deleteRemind", method=RequestMethod.POST)
@ResponseBody//方式来做ajax,直接返回字符串
public String delete(ModelMap model,Long userId,Long friendUserId,
HttpServletRequest request, HttpServletResponse response) throws Exception {
//错误
Map<String,String> error = new HashMap<String,String>();
if(userId != null && userId >0L && friendUserId != null && friendUserId >0L){
int i = remindService.deleteUserRemind(new ArrayList()<Long>);
//删除提醒缓存
remindManage.delete_cache_findUnreadRemindByUserId(userId);
return JsonUtils.toJSONString(new RequestResult(ResultCode.SUCCESS,null));
}
return JsonUtils.toJSONString(new RequestResult(ResultCode.FAILURE,error));
}*/
/**
* 还原提醒
* @param model
* @param remindId 提醒Id
* @param request
* @param response
* @return
* @throws Exception
*/
@ResponseBody
@RequestMapping(params="method=reductionRemind", method=RequestMethod.POST)
public String reductionRemind(ModelMap model,Long userId,String remindId,
HttpServletRequest request, HttpServletResponse response) throws Exception {
//错误
Map<String,String> error = new HashMap<String,String>();
if(remindId != null && !"".equals(remindId.trim())){
int i = remindService.reductionRemind(remindId);
if(userId != null){
//删除提醒缓存
remindManage.delete_cache_findUnreadRemindByUserId(userId);
}
return JsonUtils.toJSONString(new RequestResult(ResultCode.SUCCESS,null));
}else{
error.put("remindId", "提醒Id不能为空");
}
return JsonUtils.toJSONString(new RequestResult(ResultCode.FAILURE,error));
}
}
- 本文标签: Java Spring Boot
- 版权声明: 本站原创文章,于2022年06月08日由程序猿大波发布,转载请注明出处