通过前面的步骤可以搭建好 Maven 以及下载依赖框架,那么接下来就是编写框架的配置文件了,配置分为以下三个步骤:
- 配置 SpringMVC
- 配置 Mybatis
- 配置 log
以下配置 SpringMVC:
- 确定包结构,以及每个包的作用
- 配置 web.xml 启用 SpringMVC
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd" > <web-app> <display-name>SSM</display-name> <!-- Spring MVC --> <context-param> <!-- 指定配置文件位置(非默认) --> <param-name>contextConfigLocation</param-name> <param-value>classpath:spring/spring-mvc.xml</param-value> </context-param> <servlet> <servlet-name>springMvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <!-- 通知 Web 容器, 启动时初始化 Spring MVC --> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>springMvc</servlet-name> <!-- 指定拦截以 .do 结尾的配置, 如果配置为 "/" 则需要在配置文件中排除静态资源, 如: .css, .jsp, .png等等 --> <url-pattern>*.do</url-pattern> </servlet-mapping> </web-app>
- 配置 spring-mvc.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context" xmlns:aop="http://www.springframework.org/schema/aop" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd"> <!-- 配置资源文件 --> <!-- * 指定 classPath 相对路径 * --> <context:property-placeholder location="classpath:jdbc.properties" /> <!-- * 指定文件(绝对)路径 * <context:property-placeholder location="file:D:/home/appadmin/config/jdbc.properties" /> --> <!-- 加载组件配置 --> <import resource="classpath:spring-dao.xml" /> <!-- 启用spring mvc 注解, conversion-service 用于注册 Handler 的参数类型转换器 --> <mvc:annotation-driven conversion-service="conversionService" /> <!-- 注册参数转换器 --> <bean id="conversionService" class="org.springframework.format.support.FormattingConversionServiceFactoryBean"> <property name="converters"> <set> <!-- 枚举转换器: 支持 ordinal 和 name(区分大小写) --> <bean class="org.hy.ssm.web.converter.StringToEnumConverterFactory" /> <!-- 日期转换器: 支持的模式列表查看源码, 可支持毫秒值(字符串) --> <bean class="org.hy.ssm.web.converter.StringToDate" /> </set> </property> </bean> <!-- 启用spring mvc 注解扫描 --> <context:annotation-config /> <!-- 自动扫描注解 --> <context:component-scan base-package="org.hy.ssm" /> <!-- 完成请求和注解POJO的映射 --> <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" /> <!-- * 将 webapp(WEB-INF同级) 静态资源映射新路径, * 当前示例 /wabapp/statics/ * statics/ 为静态资源文件夹, 如: csss/templates/images/js/等等 --> <mvc:resources location="/statics/" mapping="/resource/**" cache-period="31536000" /> <!-- * 视图解析器, (必须) * 前缀 /WEB-INF/ * 后缀 .jsp * 示例: handler 返回字符串(视图映射路径)为 user/list, 则映射路径为: /WEB-INF/user/list.jsp --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" p:prefix="/WEB-INF/" p:suffix=".jsp" /> <!-- * 配置 JSON 转换器(必须) * handler 返回 Model 数据时需要用到 * 与 @ResponseBody 联合使用 --> <bean id="mappingJacksonHttpMessageConverter" class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"> <property name="supportedMediaTypes"> <list> <value>text/html;charset=UTF-8</value> </list> </property> </bean> <!-- 注册 JSON 转换器 --> <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"> <property name="messageConverters"> <list> <ref bean="mappingJacksonHttpMessageConverter" /><!-- json转换器 --> </list> </property> </bean> <!-- 文件上传 --> <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <property name="defaultEncoding"> <value>UTF-8</value> </property> <property name="maxUploadSize"> <value>32505856</value><!-- 上传文件大小限制为31M --> </property> <property name="maxInMemorySize"> <value>4096</value> </property> </bean> <!-- * 注册验证拦截器(非 javax.servlet.Filter), * 拦截器实现需要继承: org.springframework.web.filter.OncePerRequestFilter --> <bean id="loginFileter" class="org.hy.ssm.web.filter.LoginFilter"></bean> <!-- * Spring 邮件配置 * 注意:这里的参数(如用户名、密码)都是针对邮件发送者的 --> <bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl"> <property name="host" value="${email.stmp.server}" /> <property name="defaultEncoding" value="utf-8" /> <property name="username" value="${email.username}" /> <property name="password" value="${email.password}" /> <property name="port" value="${email.stmp.port}" /> <property name="javaMailProperties"> <props> <prop key="mail.smtp.auth">true</prop> <prop key="mail.smtp.timeout">25000</prop> </props> </property> </bean> </beans>
- spring-dao.xml 配置 (包含Mybatis)
<?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: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-3.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd "> <!-- 配置 alibaba 数据源 --> <bean name="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close"> <property name="url" value="${jdbc_url}" /> <property name="username" value="${jdbc_username}" /> <property name="password" value="${jdbc_password}" /> <property name="initialSize" value="0" /> <property name="maxActive" value="20" /> <property name="minIdle" value="0" /> <property name="maxWait" value="60000" /> <property name="validationQuery" value="${validationQuery}" /> <property name="testOnBorrow" value="false" /> <property name="testOnReturn" value="false" /> <property name="testWhileIdle" value="true" /> <property name="timeBetweenEvictionRunsMillis" value="60000" /> <property name="minEvictableIdleTimeMillis" value="25200000" /> <property name="removeAbandoned" value="true" /> <property name="removeAbandonedTimeout" value="1800" /> <property name="logAbandoned" value="true" /> <property name="filters" value="mergeStat" /> </bean> <!-- MyBits 的 SessionFactory --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <!-- 数据源 --> <property name="dataSource" ref="dataSource" /> <!-- 数据访问接口对应的 SQL 实现 --> <property name="mapperLocations" value="classpath:mapping/*.xml" /> <!-- Mybatis 其他配置 --> <property name="configLocation" value="classpath:mybatis/mybatis-config.xml" /> </bean> <!-- Mybatis 托管给 Spring 的接口与扫描配置 --> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <!-- * 当前数据源所管理的数据访问接口包 * 如果项目中配置了多个数据源时, * 应避免相同数据访问接口包 --> <property name="basePackage" value="com.cnp.catalog.dao" /> <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" /> </bean> <!-- 开启spring的事物管理功能 --> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource" /> </bean> <!-- 使用注解管理事物 --> <tx:annotation-driven transaction-manager="transactionManager" /> </beans>
(如何配置多个数据源:1、jdbc.properties 中新增一套jdbc配置[url/username/pwd];3、配置唯一的dataSource、transactionManager;3、修改 MapperScannerConfigurer.basePackage 的值为新的数据访问接口包,一个数据访问接口包只能绑定一个数据源;4、修改 SqlSessionFactoryBean.mapperLocations 的值为新的数据访问接口 SQL 实现配置,推荐为每个数据源指定不同的实现包)
配置 Mybatis
- mybatis-config.xml
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <!-- 别名 --> <typeAliases> <!-- * 在ParameterType或ResultType中直接使用类名, * 首字母大小写均可 --> <package name="org.hy.ssm.model.entities"/> <!-- 或指定类型, 指定别名 --> <typeAlias type="org.hy.ssm.model.entities.User" alias="user"/> </typeAliases> <!-- 枚举类型处理器 --> <typeHandlers> <!-- * handler: 枚举类型转换器, 当前使用 Ordinal, 如: Gender.MALE.ordinal(), 所以数据库应该是短整型 * javaType: 目标枚举类型(Copy Qualified Name) --> <typeHandler handler="org.apache.ibatis.type.EnumOrdinalTypeHandler" javaType="org.hy.ssm.model.entities.User$Gender" /> <!-- 多个枚举时配置多套 typeHandler 标签即可 --> <!-- <typeHandler handler="org.apache.ibatis.type.EnumOrdinalTypeHandler" javaType="org.hy.ssm.model.entities.User$JobTitle" /> --> </typeHandlers> </configuration>
- mapper 示例(UserMapper.xml)
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > <!-- namespace 通常使用 DAO 接口的权限命名 --> <mapper namespace="org.hy.ssm.dao.UserDao"> <!-- * 这里能使用 resultType="user" 是因为配置了 package name="org.hy.ssm.model.entities" * * 小技巧: * 1. 如果查询的数据非常确认只有一条时, 可在SQL的尾部明确的指出: LIMIT 1 * 2. 有 WHERE 的情况下, 先判断条件是否成立而后再使用, 可以提高 SQL 接口复用率 * 以上仅个人观点 --> <!-- 指定用户账户查询用户 --> <select id="selectUserByAccount" parameterType="string" resultType="user"> SELECT * FROM ssm_user u <if test="account != null and account != ''"> <where> u.account = #{account} </where> </if> LIMIT 1 </select> </mapper>
到目前为止必要的配置已经完成 80%,还剩下最后一项日志,本例使用的日志框架为:log4j, slf4j,配置文件(log4.properties):
log4j.rootLogger=DEBUG, stdout, R log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=[catalog] [%5p] [%d{yyyy-MM-dd HH:mm:ss}] (%F:%L) %m%n log4j.appender.R=org.apache.log4j.RollingFileAppender log4j.appender.R.File=/home/appadmin/logs/catalog.log log4j.appender.R.MaxFileSize=5012KB log4j.appender.R.MaxBackupIndex=50 log4j.appender.R.layout=org.apache.log4j.PatternLayout log4j.appender.R.layout.ConversionPattern=[catalog][%5p] [%d{yyyy-MM-dd HH:mm:ss}] (%F:%L) %m%n log4j.logger.org.apache=DEBUG log4j.logger.com.opensymphony=DEBUG log4j.logger.org.springframework=DEBUG log4j.logger.org.mybatis=DEBUG log4j.logger.org.apache.commons.httpclient=ERROR
当前说明只能让你快速搭建项目,如果想要了解更深层次的原理及其应用则需要更多的其他相关资料。
相关推荐
Spring+SpringMVC+MyBatis整合工程实例 完整版源码,这个SSM框架整合工程是基于IntelliJ IDEA完成的的,工程里面配置文件均有注释,可直接拷贝使用(工程代码可导入IDEA中直接运行),可供学习设计参考。
SSM(spring+spring MVC+mybatis)开发学生信息后台管理系统,实现学生增删改查...spring+spring mvc+mybatis+jquery 数据库文件 压缩包根目录test3\dbyyx.sql jar包文件 压缩包根目录\test3\WebContent\WEB-INF\lib
SSM框架,即Spring、SpringMVC和MyBatis的集成,是Java开发中常见的Web应用程序框架组合。这个框架集合提供了完整的后端解决方案,涵盖了依赖注入(DI)、面向切面编程(AOP)、模型视图控制器(MVC)以及持久层操作...
项目描述 基于ssm(spring+springmvc+mybatis)的餐厅员工管理系统实现对员工信息、员工工资、员工考勤的...spring+spring mvc+mybatis+bootstrap+javascript+layui+jsp http://localhost:8080/login.html admin admin
【标题】"eclipse+maven+springmvc+spring+mybatis案例附带mysql数据库"是一个典型的Java Web开发项目,它涵盖了多个关键的技术栈,包括Eclipse IDE、Maven构建工具、Spring MVC作为MVC框架、Spring核心框架以及...
SSM框架整合是Java开发中常见的技术组合,包括Spring、SpringMVC和MyBatis三个核心组件。这个案例是一个小型的项目示例,用于展示如何将这三个框架有效地集成在一起,以构建一个完整的Web应用程序。 首先,Spring...
2. **创建Maven项目**:在IDE中选择Maven Webapp模板,配置pom.xml文件,引入Spring、SpringMVC、MyBatis以及Oracle JDBC驱动等相关依赖。 3. **配置Spring**:创建Spring的配置文件,如`applicationContext.xml`,...
基于SpringMVC+Spring+MyBatis个人技术博客系统源码.zip 完整代码,可运行 项目描述 基于SSM实现的一个个人博客系统,适合初学SSM和个人博客制作的同学学习。有了这个源码,直接买了阿里云或腾讯服务器,就可以部署...
这是一个基于Java技术栈的Web应用开发实例,涵盖了Spring、SpringMVC、MyBatis、MySQL数据库和Maven构建工具,以及Eclipse IDE的使用。这个工程实例为初学者提供了一个全面的学习平台,让我们逐一深入探讨这些关键...
基于spring+springMVC+mybatis+easyui技术实现的医药后台管理系统 项目描述 基于spring+springMVC+mybatis+easyui技术实现的医药管理系统 运行环境 jdk7+tomcat7+mysql+eclipse/IntelliJ IDEA+maven 项目技术...
基于SSM(spring+springMVC+MyBatis)技术开发的仓库管理系统,是我这学期期末综合课设项目,新鲜热乎,用的是:eclipse+Tomcat8+mysql+jdk1.8,里面有项目源文件直接导入即可,还有数据库sql文件,还有课程设计报告。...
SSM(Spring+SpringMVC+Mybatis)权限管理系统是一个基于Java Web技术的全面权限管理解决方案,它结合了Spring框架的 IoC(Inversion of Control)容器、SpringMVC作为 MVC(Model-View-Controller)架构的实现以及...
使用环境:MyEclipse/Eclipse + Tomcat + MySQL。 使用技术:Spring MVC + Spring + MyBatis / JSP + Servlet + JavaBean + JDBC。
使用环境:MyEclipse/Eclipse + Tomcat + MySQL。 使用技术:Spring MVC + Spring + MyBatis / JSP + Servlet + JavaBean + JDBC。
《Spring4+Mybatis3+SpringMVC4实战》是一个基于这三个流行开源框架构建的完整项目,旨在帮助学习者深入理解和实践SSM(Spring、SpringMVC、Mybatis)架构。这个项目涵盖了从基础配置到高级特性的全方位应用,对于...
使用环境:MyEclipse/Eclipse + Tomcat + MySQL。...使用技术:Spring MVC + Spring + MyBatis 或 JSP + Servlet + JavaBean + JDBC。 演示地址:https://ymjin.blog.csdn.net/article/details/120991940
SSM(Spring MVC + Spring + MyBatis)是Java Web开发中常见的三层架构组合,它将Spring MVC作为表现层框架,Spring作为业务层容器,MyBatis作为数据访问层框架。下面将详细介绍这三个组件以及它们如何协同工作。 *...
总之,Spring + SpringMVC + Mybatis 的组合是企业级Java应用中常见的技术栈,它们共同提供了强大的框架支持,帮助开发者构建高效、可维护的系统。通过理解并熟练掌握这些知识点,开发者能够在实际项目中游刃有余。
2. **搭建Spring框架**:创建Spring配置文件,定义bean和依赖关系,如数据源、事务管理器、MyBatis的SqlSessionFactory等。 3. **集成SpringMVC**:配置SpringMVC的web.xml,设置DispatcherServlet,定义视图解析器...