基于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>
部分截图:
https://blog.csdn.net/zyt947016438/article/details/90486191
投递简历:
https://blog.csdn.net/zyt947016438/article/details/90486191
https://blog.csdn.net/zyt947016438/article/details/90486191
可进行交流补充..