原创

基于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));
    }

}

演示视频链接

源码链接

正文到此结束
本文目录