毕业设计基于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>
部分截图如下:
交流可下方留言!