SSM整合(SpringMVC+Spring+Mybatis)
来源:互联网 发布:mysql 2502 2503错误 编辑:程序博客网 时间:2024/04/26 06:43
1.加入jar
aopalliance-1.0.jar
aspectjweaver.jar
c3p0-0.9.1.2.jar
commons-fileupload-1.3.1.jar
commons-io-2.4.jar
commons-logging-1.2.jar
jackson-annotations-2.2.1.jar
jackson-core-2.2.1.jar
jackson-databind-2.2.1.jar
log4j-1.2.17.jar
mybatis-3.2.6.jar
mybatis-spring-1.2.2.jar
mysql-connector-java-5.1.30.jar
spring-aop-4.2.2.RELEASE.jar
spring-aspects-4.2.2.RELEASE.jar
spring-beans-4.2.2.RELEASE.jar
spring-context-4.2.2.RELEASE.jar
spring-context-support-4.2.2.RELEASE.jar
spring-core-4.2.2.RELEASE.jar
spring-expression-4.2.2.RELEASE.jar
spring-instrument-4.2.2.RELEASE.jar
spring-instrument-tomcat-4.2.2.RELEASE.jar
spring-jdbc-4.2.2.RELEASE.jar
spring-jms-4.2.2.RELEASE.jar
spring-messaging-4.2.2.RELEASE.jar
spring-orm-4.2.2.RELEASE.jar
spring-oxm-4.2.2.RELEASE.jar
spring-test-4.2.2.RELEASE.jar
spring-tx-4.2.2.RELEASE.jar
spring-web-4.2.2.RELEASE.jar
spring-webmvc-4.2.2.RELEASE.jar
spring-webmvc-portlet-4.2.2.RELEASE.jar
spring-websocket-4.2.2.RELEASE.jar
2.配置web.xml
这里主要配置了:编码过滤器,spring配置监听器,springMVC的dispatcherServlet的配置,log4j
log4j.properties
### set log levels ###
log4j.rootLogger = debug,stdout,D,E
log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target = System.out
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern = [%-5p]%d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File = H://logs/log.log
log4j.appender.D.Append = true
log4j.appender.D.Threshold = DEBUG
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-ddHH:mm:ss} [ %t:%r ] - [ %p ] %m%n
log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
log4j.appender.E.File =H://logs/error.log
log4j.appender.E.Append = true
log4j.appender.E.Threshold = ERROR
log4j.appender.E.layout = org.apache.log4j.PatternLayout
log4j.appender.E.layout.ConversionPattern = %-d{yyyy-MM-ddHH:mm:ss} [ %t:%r ] - [ %p ] %m%n
--------------------------------------------------------------
<!-- filter -->
<filter>
<filter-name>CharacterEncodingFilter</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>
</filter>
<filter-mapping>
<filter-name>CharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- spring -->
<!-- needed forContextLoaderListener -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</context-param>
<!-- Bootstraps the root web application context before servletinitialization -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!-- springMVC -->
<!-- The frontcontroller of this Spring Web application, responsible for handling allapplication requests -->
<servlet>
<servlet-name>springDispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:mvc.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<!-- Map all requests to the DispatcherServlet for handling-->
<servlet-mapping>
<servlet-name>springDispatcherServlet</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<!--配置log4j -->
<!--设置根目录 -->
<context-param>
<param-name>webAppRootKey</param-name>
<param-value>webapp.root</param-value>
</context-param>
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>classpath:log4j.properties</param-value>
</context-param>
<!-- 3000表示开一条watchdog线程每60秒扫描一下配置文件的变化;这样便于日志存放位置的改变 -->
<context-param>
<param-name>log4jRefreshInterval</param-name>
<param-value>3000</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>
3.配置spring
思路:1.先配数据源datasource
2.配置工厂sqlSessionFactory
3.配置事务管理器dataSourceTransactionManager
4.配置事务属性通知txAdvice
5.配置事务切入点 pointcut
6.配置注解支持
例:
db.properties
driver=com.mysql.jdbc.Driver
url=jdbc:mysql:///test
name=root
password=wxniit
----------------------------------------------------------------------------------------------------
<!--读取属性文件 -->
<!--<context:property-placeholderlocation="classpath:db.properties"/> -->
<beanid="propertyConfigurer"class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<propertyname="location">
<value>classpath:db.properties</value>
</property>
</bean>
<!--配置datasource -->
<beanid="datasource"class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<propertyname="driverClassName"value="${driver}"></property>
<propertyname="url" value="${url}"></property>
<propertyname="username" value="${name}"></property>
<propertyname="password" value="${password}"></property>
</bean>
<!--配置工厂 -->
<beanid="sqlSessionFactory"class="org.mybatis.spring.SqlSessionFactoryBean">
<propertyname="dataSource" ref="datasource"></property>
<propertyname="configLocation"value="classpath:mybatis-cfg.xml"></property>
</bean>
<!--配置声明式事务 -->
<!--事务管理器 -->
<beanid="txManager"class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<propertyname="dataSource" ref="datasource"></property>
</bean>
<!--事务声明通知 -->
<tx:adviceid="txAdvice" transaction-manager="txManager">
<tx:attributes>
<tx:methodname="save" propagation="REQUIRED"/>
<tx:methodname="get" read-only="true"/>
<tx:methodname="*" propagation="REQUIRED"/>
</tx:attributes>
</tx:advice>
<aop:config>
<aop:pointcut expression="execution(* com.chenj.app.serivce.impl.*.*(..))"id="pointcut"/>
<aop:advisoradvice-ref="txAdvice" pointcut-ref="pointcut"/>
</aop:config>
<!--扫描controller -->
<context:component-scanbase-package="com.chenj.app"></context:component-scan>
4.配置springMVC
这里主要配置了 json,文件上传,视图解析,注解支持,拦截器(需要实现org.springframework.web.servlet.HandlerInterceptor)
例:
<!--启动Springmvc注解驱动 -->
<mvc:annotation-driven/>
<!--返回json方法一需要导入 fastjson.jar包-->
<!--<mvc:annotation-driven> <mvc:message-convertersregister-defaults="false">
避免IE执行AJAX时,返回JSON出现下载文件 <bean id="fastJsonHttpMessageConverter"class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter">
<propertyname="supportedMediaTypes"> <list>这里顺序不能反,一定先写text/html,不然ie下出现下载提示
<value>text/html;charset=UTF-8</value><value>application/json;charset=UTF-8</value>
</list></property> </bean> </mvc:message-converters></mvc:annotation-driven> -->
<!--返回json方法二需要导入jackson-annotations.jar,jackson-core.jar,jackson-databind.jar -->
<bean
class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"/>
<bean
class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
<propertyname="messageConverters">
<list>
<bean
class="org.springframework.http.converter.StringHttpMessageConverter">
<propertyname="supportedMediaTypes">
<list>
<value>text/html;charset=UTF-8</value>
<value>application/json;charset=UTF-8</value>
</list>
</property>
</bean>
<bean
class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
<propertyname="supportedMediaTypes">
<list>
<value>text/html;charset=UTF-8</value>
<value>application/json;charset=UTF-8</value>
</list>
</property>
</bean>
</list>
</property>
</bean>
<!--拦截器配置 -->
<!--<mvc:interceptors> <mvc:interceptor> <mvc:mappingpath="/**"/> <bean
class="com.chenj.app.interceptor.LoginInterceptor"><property name="allowedPass">
<list><value>login.do</value> </list> </property></bean> </mvc:interceptor>
</mvc:interceptors>-->
<!--文件上传配置 -->
<beanid="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<propertyname="defaultEncoding" value="utf-8"></property>
<propertyname="maxUploadSize"value="10485760000"></property>
<propertyname="maxInMemorySize" value="40960"></property>
</bean>
<!--配置视图解析器 -->
<bean
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!--<property name="viewClass"value="org.springframework.web.servlet.view.JstlView"></property>-->
<propertyname="prefix" value="/WEB-INF/pages/" />
<propertyname="suffix" value=".jsp" />
</bean>
<!--配置注解支持-->
<context:component-scanbase-package="com.chenj.app"></context:component-scan>
5.配置mybatis
注:需要在spring配置工厂时加上<property name="configLocation"value="classpath:mybatis-cfg.xml"></property>
例:
<?xmlversion="1.0" encoding="UTF-8"?>
<!DOCTYPEconfiguration SYSTEM "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<typeAliases>
<packagename="com.chenj.app.entity"/>
</typeAliases>
<!--配置mapper的位置-->
<mappers>
<mapperresource="com/chenj/app/entity/userMapper.xml"/>
</mappers>
</configuration>
- SSM(Spring+SpringMVC+MyBatis)整合
- spring、springmvc、mybatis整合(SSM)
- SSM(spring+mybatis+springmvc)整合 配置文件
- SSM整合(SpringMVC+Spring+Mybatis)
- SSM框架整合(Spring+SpringMVC+MyBatis)
- SSM框架(springmvc+spring+mybatis)整合
- SSM框架整合(Spring+SpringMVC+Mybatis)
- Spring SpringMVC Mybatis(SSM+Oracle整合)
- SSM框架整合(Spring+SpringMVC+MyBatis)
- SSM整合(SpringMVC,Spring,Mybatis)
- SSM(spring+springMVC+mybatis)整合配置
- ssm(spring+springmvc+mybatis)整合
- SSM框架整合(Spring+SpringMVC+MyBatis)
- SSM整合(SpringMVC、Spring、Mybatis)
- SSM(Spring+SpringMVC+Mybatis) 整合
- SSM(spring+springMVC+Mybatis)简单整合
- SSM整合(springmvc + spring + mybatis)
- ssm 整合 (springmvc + spring + mybatis )
- 算法的复杂度与Master定理
- Codeforces Round #369 (Div. 2) 手速练习赛
- Glide 不能说的秘密
- Spring中的<context:annotation-config/>配置
- iOS - Masonry 使用中的一些整理
- SSM整合(SpringMVC+Spring+Mybatis)
- sftp文件上传下载
- Struts2学习笔记三(异常处理、模型驱动和属性驱动、servlet接口、Preparable接口)
- iOS- 利用runtime,解决多次点击相同button,导致重复跳转的问题
- 5-31 笛卡尔树 (25分)
- mclk、aclk
- ubuntu管理启动项
- Android学习第12天-----HOOK技术
- 博客第一天