a、项目启动监听器:
用途:为系统初始化一些,系统参数,及其他初始化操作
例如:System.setProperty(“logpath”,”xxx”),日志输出地址,可在log4j配置文件中${logPath} 获取。
System.setProperty("jsse.enableSNIExtension", "false");解决linux 中,httpClient 异常问题。
实现方式如下:
/** * 项目启动监听器 * @author Sivan * */ public class SystemStartListener implements ServletContextListener{ private Logger logger = LoggerFactory.getLogger(SystemStartListener.class); @Override public void contextDestroyed(ServletContextEvent contextEvent) { } @Override public void contextInitialized(ServletContextEvent contextEvent) { logger.info("system start............"); String path = Environment.class.getResource("").getPath(); String logPath = path.substring(0, path.toUpperCase().lastIndexOf("WEB-INF/")).replaceAll("%20", " ")+"qbzLogs"; System.setProperty("logPath",logPath); System.setProperty("jsse.enableSNIExtension", "false"); } }
web.xml中添加如下配置:
<listener> <listener-class>com.qbz.listener.XXXListener</listener-class> </listener>
b、Spring加载完成监听器:
用途:环境初始化完成,将一些冷数据放入缓存中,
实现方式如下:
/** * Spring 加载完成监听器 * @author Sivan * */ @Component @Scope("singleton") public class SpringStartListener implements ApplicationListener<ContextRefreshedEvent> { private Logger logger = LoggerFactory.getLogger(SpringStartListener.class); @Resource private SystemConstantDao systemConstantDao; @Override public void onApplicationEvent(ContextRefreshedEvent event) { logger.info("spring lodeOver.........."); // 初始化项目基础配置项 systemConstantDao.getAreas(0); systemConstantDao.getBank(); } }
c、Spring MVC 登入拦截器:
用途:为项目做权限控制,拦截。
实现方式如下:
第一步:编写拦截器类,并实现HandlerInterceptor接口:
/** * 登入拦截器 * @author Sivan * */ public class LoginInterceptor implements HandlerInterceptor{ private static final String LOGIN_URL = "/user/userLogin"; private static final Logger LOG = LoggerFactory.getLogger(LoginInterceptor.class); @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { String contextPath = request.getContextPath(); String requestUrl = request.getRequestURI().toString(); HttpSession session = request.getSession(true); // 从session 里面获取用户名的信息 Object obj = session.getAttribute("SESSION_USER"); // 判断如果没有取到用户信息,就跳转到登陆页面,提示用户进行登陆 if (obj == null || "".equals(obj.toString())) { LOG.info("[被拦截的请求:{}]",requestUrl); response.sendRedirect(contextPath+LOGIN_URL+"?toUrl="+requestUrl); return false; } return true; } @Override public void afterCompletion(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, Exception arg3) throws Exception {} @Override public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, ModelAndView arg3) throws Exception {} }
第二步:在spring mvc配置文件中添加如下内容:
<mvc:interceptors> <mvc:interceptor> <!-- 需拦截的地址 --> <mvc:mapping path="/user/**" /> <!-- 需排除拦截的地址 --> <mvc:exclude-mapping path="/user/Login" /> <!-- 拦截器实现 --> <bean class="com.qbz.listener.LoginInterceptor" /> </mvc:interceptor> </mvc:interceptors>d、处理项目中文乱码问题:
<!--[if !supportLists]-->1、<!--[endif]-->在web.xml中添加如下配置(编码过滤器):
<filter> <filter-name>encodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> <init-param> <param-name>forceEncoding</param-name> <param-value>true</param-value> </init-param> </filter> <filter-mapping> <filter-name>encodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
<!--[if !supportLists]-->2、<!--[endif]-->在spring mvc中添加如下配置(解决ajax请求/响应json中文乱码问题):
<mvc:annotation-driven> <mvc:message-converters> <bean class="org.springframework.http.converter.StringHttpMessageConverter"> <property name="supportedMediaTypes"> <list> <value>application/json;charset=UTF-8</value> </list> </property> </bean> </mvc:message-converters> </mvc:annotation-driven>
e、 Mybatis配置细节:
资源文件加载无效问题:
造成原因:
使用org.mybatis.spring.mapper.MapperScannerConfigurer,自动扫描所有Mapper文件时,会引发提前初始化问题,而此时资源文件还未初始化,所以就直接将占位符做字符串处理了。
解决方案:
将如下配置:
<property name="sqlSessionFactory" ref="sqlSessionFactory"/>
改成:
<propertyname="sqlSessionFactoryBeanName" value="sqlSessionFactory" />
SessionFactory配置:
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <property name="configLocation" value="classpath:myBatisConfig.xml" /> <property name="mapperLocations" value="classpath:com/qbz/mapper/**/*Mapper.xml" /> <property name="typeAliasesPackage" value="com.qbz.entity" /> </bean>
Mapper扫描配置:
<!-- 扫描mapper.java --> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="com.qbz.dao" /> <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" /> </bean>
分页插件:
在mybatis配置文件中添加如下配置
<plugins> <plugin interceptor="com.qbz.util.pagePlugin.PagePlugin"> <property name="dialect" value="mysql" /> <property name="pageSqlId" value=".*ListPage.*" /> </plugin> </plugins>
相关推荐
Java__SSM项目总结3.mp4
Java__SSM项目总结4.mp4
Java__SSM项目总结1.mp4
Java__SSM项目总结2.mp4
SSM项目指的是基于Spring、SpringMVC和MyBatis三个开源框架构建的Java Web应用程序。在本案例中,我们讨论的是一个旅游后台管理系统,它旨在为旅游业提供一套完整的后台解决方案,包括用户管理、订单处理、资源管理...
SSM(Spring+SpringMVC+MyBatis)框架集由Spring、MyBatis两个开源框架整合而成(SpringMVC是Spring中的部分内容)。常作为数据源较简单的web项目的框架。
总结来说,使用 Spring Boot 整合 SSM 项目可以简化开发过程,提高开发效率和质量,提高项目的可维护性和可扩展性。同时,Spring Boot 还提供了许多实用的功能和特点,例如自动配置、嵌入的服务器、简化的配置等。
1.针对群文件中的项目(SMBMS.rar),进行基于SSM框架的改造 2.说明: (1)主要涉及的功能有:登录、注销、查询用户列表、增加用户、用户修改、用户查看、文件上传。 (2)具体思路和方法参考第9、10和11章的相关...
这个压缩包文件“SSM项目”提供了一个完整的SSM项目实例,包括了数据库部分,意味着我们可以直接运行并研究项目的具体实现。下面将详细讲解SSM框架的核心概念、工作原理以及它们在实际项目中的应用。 **Spring框架*...
总结来说,SSM项目整合是Java Web开发中常见的技术栈,它结合了Spring的全面控制、SpringMVC的MVC架构和MyBatis的灵活数据库操作。这个整合包提供了一个基础的项目结构,包含百度编辑器,使得开发人员能够更快地构建...
在SSM项目中,Spring主要负责管理对象的生命周期和装配bean,同时它还提供事务管理、数据源配置等功能。在项目中,你可以看到诸如`applicationContext.xml`或`beans.xml`这样的配置文件,它们定义了各组件之间的依赖...
### Java SSM框架总结 #### 一、SSM框架简介 SSM框架是Spring、SpringMVC和MyBatis三个开源框架的组合。在实际项目开发中,这三种框架经常一起使用,故简称SSM框架。 - **Spring**:一个轻量级的企业级应用框架,...
SSM框架,全称为Spring、SpringMVC和MyBatis的组合,是Java Web开发中常用的三大组件。这个框架集合提供了高效、灵活且强大的企业级应用解决方案。下面将详细讲解这三个框架及其相互间的配合。 **Spring框架** ...
总结来说,"ssm项目blog博客框架"是一个基于SSM框架的无XML配置的Web应用,利用Spring、Spring MVC和MyBatis的强大功能,构建了一个便于开发和维护的博客系统。它涵盖了从用户管理、文章发布到数据库操作等博客平台...
总结,使用Maven搭建SSM项目是一个整合配置的过程,涉及多个层次的配置文件和代码编写。Maven简化了依赖管理和构建流程,而SSM框架则提供了强大的功能,使得Java Web开发更为便捷和高效。通过理解并熟练掌握这些步骤...
在本项目中,我们将探讨如何使用Spring Boot来构建一个传统的SSM项目。 首先,我们需要了解Spring Boot的核心特性。它通过自动配置、起步依赖和内嵌服务器等特性,极大地减少了项目的配置工作,使得开发者可以更...
总结来说,"java最新版ssm项目架构"是一个基于Java的Web应用,采用SSM框架进行开发,使用Maven管理依赖,配合MySQL数据库存储数据。项目可能包含一个名为"SMS"的服务,体现了现代Web应用的典型架构和组件。
总结来说,"基本SSM项目"是一个用于快速开发Java web应用的模板,它结合了Spring、SpringMVC和MyBatis的优势,提供了一个基础的架构,开发者可以在其基础上添加业务逻辑和功能,构建出更复杂的系统。
这个压缩包“ssm-jar包”包含了SSM项目所需的jar文件,这些文件是构建和运行SSM应用程序的基础组件。 首先,我们来详细了解一下SSM框架的各个部分: 1. **Spring框架**:作为基础,Spring提供了依赖注入(DI)和...