毕业设计基于SSM开发maven项目《社团管理系统》

基于ssm开发,maven项目引用阿里云镜像资源库,《商洛学院社团管理系统的设计与实现》

简单配置源码如下:

1.获取动态菜单列表

package com.sl.cms.service.admin.impl;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;

import javax.annotation.Resource;

import org.springframework.stereotype.Service;

import com.sl.cms.dao.admin.HomeDao;
import com.sl.cms.dto.MenuDto;
import com.sl.cms.module.Module;
import com.sl.cms.service.admin.HomeService;

@Service
public class HomeServiceImpl implements HomeService {
    @Resource
    private HomeDao homeDao;//注入

    @Override
    public List<MenuDto> getAllMenus() {
        List<Module> modules = homeDao.findAllModules();
        
        List<MenuDto> mainList = new ArrayList<MenuDto>();
        MenuDto currMenu = null;
        for(Module module:modules) {
            if(module.getM_pid()==null) {//是主菜单
                currMenu = new MenuDto();
                currMenu.setMenuId(module.getM_id());
                currMenu.setMenuName(module.getM_name());
                currMenu.setSubMenuList(new ArrayList<MenuDto>());
                mainList.add(currMenu);
            }else {//子菜单
                MenuDto subMenu = new MenuDto();
                subMenu.setMenuId(module.getM_id());
                subMenu.setMenuName(module.getM_name());
                subMenu.setMenuUrl(module.getM_url());
                currMenu.getSubMenuList().add(subMenu);
                
            }
        }
        
        return mainList;
    }

    @Override
    public List<MenuDto> findDynamicModules(String u_id) {
        List<Module> modules = homeDao.findDynamicModules(u_id);
        System.out.println(modules);
        List<MenuDto> mainList=new ArrayList<MenuDto>();
        MenuDto mainMenu=null;
        
        for(Module module:modules) {
            if(mainMenu==null || !mainMenu.getMenuId().equals(module.getP_id())) {
                mainMenu=new MenuDto();
                mainMenu.setMenuId(module.getP_id());
                mainMenu.setMenuName(module.getP_name());
                mainMenu.setSubMenuList(new ArrayList<MenuDto>());
                mainList.add(mainMenu);
            }
            MenuDto subMenu=new MenuDto();
            subMenu.setMenuId(module.getM_id());
            subMenu.setMenuName(module.getM_name());
            subMenu.setMenuUrl(module.getM_url());
            mainMenu.getSubMenuList().add(subMenu);
        }
        
        System.out.println("mainList:"+mainList);
        return mainList;
    }

    @Override
    public List<MenuDto> findModulesOfUser(String userId) {
        
        List<Module> modules = homeDao.findModulesOfUser(userId);
        
        List<MenuDto> mainList = new ArrayList<MenuDto>();
        MenuDto currMenu = null;
        for(Module module:modules) {
            if(module.getM_pid()==null) {//是主菜单
                currMenu = new MenuDto();
                currMenu.setMenuId(module.getM_id());
                currMenu.setMenuName(module.getM_name());
                currMenu.setSubMenuList(new ArrayList<MenuDto>());
                mainList.add(currMenu);
            }else {//子菜单
                MenuDto subMenu = new MenuDto();
                subMenu.setMenuId(module.getM_id());
                subMenu.setMenuName(module.getM_name());
                subMenu.setMenuUrl(module.getM_url());
                currMenu.getSubMenuList().add(subMenu); 
                
            }
        }
        
        return mainList;
    }

    @Override
    public List<MenuDto> findModulesOfRole(String roleId) {
        List<Module> moduleList = homeDao.findModulesOfRole(roleId);
    //Map<Object, List<Module>> pid=moduleList.stream().collect(Collectors.groupingBy(pid->pid.get("m_pid")));
        return null;
    }
    


}

2.mvc-servlet.xml配置

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:mvc="http://www.springframework.org/schema/mvc"
    xsi:schemaLocation="http://www.springframework.org/schema/beans 
                        http://www.springframework.org/schema/beans/spring-beans.xsd
                        http://www.springframework.org/schema/context 
                        http://www.springframework.org/schema/context/spring-context.xsd
                        http://www.springframework.org/schema/mvc 
                        http://www.springframework.org/schema/mvc/spring-mvc.xsd"> 
                        
            <context:component-scan base-package="com.sl.cms.controller"/>
            <mvc:annotation-driven/>
            
            <!-- 设置首页(3种方式) -->
            <mvc:view-controller path="/" view-name="redirect:/index/index_to" />
            
            <!-- 配置内部资源视图解析(仅对请求转发有效,对重定向无效) -->
            <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">               
                <property name="prefix" value="/WEB-INF/jsp"/>
                <property name="suffix" value=".jsp"/>
            </bean>
            
                <!-- 允许访问静态资源  -->
            <mvc:default-servlet-handler/>    
            <!--     拦截器
            <mvc:interceptors>
                  <mvc:interceptor>
                      <mvc:mapping path="/**"/>
                      排除一些请求
                    <mvc:exclude-mapping path="/**/fonts/*"/>
                    <mvc:exclude-mapping path="/**/*.css"/>
                    <mvc:exclude-mapping path="/**/*.js"/>
                    <mvc:exclude-mapping path="/**/*.png"/>
                    <mvc:exclude-mapping path="/**/*.gif"/>
                    <mvc:exclude-mapping path="/**/*.jpg"/>
                    <mvc:exclude-mapping path="/**/*.jpeg"/>
                      <mvc:exclude-mapping path="/safty/login_to"/>
                      <mvc:exclude-mapping path="/safty/login/*/*"></mvc:exclude-mapping>
                      <bean class="com.tr.scgl.interceptors.SomeInterceptors"></bean>
                  </mvc:interceptor>
              </mvc:interceptors>-->
</beans>

3.spring-service.xml配置

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:context="http://www.springframework.org/schema/context"    
    xmlns:tx="http://www.springframework.org/schema/tx"
    xmlns:aop="http://www.springframework.org/schema/aop"
    xsi:schemaLocation="http://www.springframework.org/schema/beans 
                        http://www.springframework.org/schema/beans/spring-beans.xsd
                        http://www.springframework.org/schema/context 
                        http://www.springframework.org/schema/context/spring-context.xsd
                        http://www.springframework.org/schema/tx 
                        http://www.springframework.org/schema/tx/spring-tx.xsd
                        http://www.springframework.org/schema/aop 
                        http://www.springframework.org/schema/aop/spring-aop.xsd"> 
        <!--注意:写成com.tr是因为我有两个service对象  -->        
        <context:component-scan base-package="com.sl.cms.service"/>     
 
        <!--事务管理==引用的是spring里面的  -->
        <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
          <property name="dataSource" ref="dataSource" />
        </bean>        
        <!-- 事务通知-->
        <tx:advice id="txAdvice" transaction-manager="transactionManager">
            <!-- 
                事务传播规则  :随着大环境的事务而变化
                即协调已经有事务标识的方法之间的发生调用时的事务上下文的规则(是否要有独立的事务隔离级别和锁) 
                propagation="REQUIRED  如果当前没有事务,就新建一个事务,如果已经存在一个事务中,加入到这个事务中。这是最常见的选择
                (isolation:事务的隔离级别)
             -->
            <tx:attributes>
                <tx:method name="*" propagation="REQUIRED" rollback-for="java.lang.Exception" />
            </tx:attributes>
        </tx:advice>
            <!--事务切面:切向接口,这里指service  -->
        <aop:config>
            <!--1.*指任意返回值2.*任意名称3(..)指任意种类任意数量  -->
            <aop:pointcut id="serviceOperation" expression="execution(* com.sl.cms.service.*Service.*(..))"/>
            <aop:advisor advice-ref="txAdvice" pointcut-ref="serviceOperation"/>
        </aop:config>    
                        
</beans>

4.spring-propertis.xml配置

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:context="http://www.springframework.org/schema/context"    
    xmlns:tx="http://www.springframework.org/schema/tx"
    xmlns:aop="http://www.springframework.org/schema/aop"
    xsi:schemaLocation="http://www.springframework.org/schema/beans 
                        http://www.springframework.org/schema/beans/spring-beans.xsd
                        http://www.springframework.org/schema/context 
                        http://www.springframework.org/schema/context/spring-context.xsd
                        http://www.springframework.org/schema/tx 
                        http://www.springframework.org/schema/tx/spring-tx.xsd
                        http://www.springframework.org/schema/aop 
                        http://www.springframework.org/schema/aop/spring-aop.xsd">             
    <!--配置数据源文件  -->
    
        <!--读取属性文件信息:这里指properties文件 -->
        <context:property-placeholder location="classpath:jdbc.properties,classpath:redis.properties"/>
        
         
    
                        
</beans>

6.数据库连接池配置

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:context="http://www.springframework.org/schema/context"    
    xmlns:tx="http://www.springframework.org/schema/tx"
    xmlns:aop="http://www.springframework.org/schema/aop"
    xsi:schemaLocation="http://www.springframework.org/schema/beans 
                        http://www.springframework.org/schema/beans/spring-beans.xsd
                        http://www.springframework.org/schema/context 
                        http://www.springframework.org/schema/context/spring-context.xsd
                        http://www.springframework.org/schema/tx 
                        http://www.springframework.org/schema/tx/spring-tx.xsd
                        http://www.springframework.org/schema/aop 
                        http://www.springframework.org/schema/aop/spring-aop.xsd">             
    <!--配置数据源文件  -->
    
        <!--读取属性文件信息:这里指properties文件 spring-properties.xml-->
        
        
        
        <!--注意:写成com.tr是因为我有两个service对象  -->        
        <context:component-scan base-package="com.sl.cms.service"/>     
         <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close"> 
            <property name="driverClassName" value="${jdbc.driver}" />
            <property name="url" value="${jdbc.url}" />
            <property name="username" value="${jdbc.username}" />
            <property name="password" value="${jdbc.password}" />
        
             <property name="filters" value="stat" />
        
             <property name="maxActive" value="20" />
             <property name="initialSize" value="1" />
             <property name="maxWait" value="60000" />
             <property name="minIdle" value="1" />
        
             <property name="timeBetweenEvictionRunsMillis" value="60000" />
             <property name="minEvictableIdleTimeMillis" value="300000" />
        
             <property name="testWhileIdle" value="true" />
             <property name="testOnBorrow" value="false" />
             <property name="testOnReturn" value="false" />
        
             <property name="poolPreparedStatements" value="true" />
             <property name="maxOpenPreparedStatements" value="20" />
        
             <property name="asyncInit" value="true" />
         </bean>
         
    
                        
</beans>

部分截图如下: 

交流可下方留言! 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值