在使用SSM开发项目之前,需要单独学习springmvc、spring、mybatis。
springmvc:当一个请求到来,springmvc执行流程:
1.前端控制器DispatcherServlet:拦截请求
2.处理器映射器(HandlerMapping):找到对应的Handler
3.处理器适配器(HandlerAdaptor):执行处理器
4.处理器(Handler):处理请求(开发者编写,类似于Servlet),获取参数,查询数据库等操作
5.视图解析器(viewResolver):解析视图并响应回浏览器
常用的注解:@RequestMapping("映射路径"):在方法中添加时表示此方法是一个处理器、@ResponseBody:返回json数据(ajax)、@RequestParam("key"):参数绑定等
spring:两个核心,IOC、AOP
IOC:依赖注入,管理bean,工厂模式,属性注入(set方法),构造器注入(构造函数)、静态工厂的方法注入、实例工厂的方法注入
AOP:面向切面编程,可以将方法插入或环绕在某个方法里,前置:在某个方法执行之前执行;后置:在执行之后执行;环绕:在执行之前和执行之后。aspect
切面方法:必须有参数JoinPoint类型或ProceedingJoinPoint类型
/***环绕
**/
publicObject around(ProceedingJoinPoint point){
System.out.println("执行之前要执行的代码");
Object returnMsg= point.proceed(); //放行,执行原方法
System.out.println("执行之后要执行的代码");returnreturnMsg;
}public voidbeforeOrAfter(JoinPoint point){
System.out.println("执行之前或之后要执行的代码");
}
mybatis:根据配置文件自动实现dao接口(创建实现类),半自动orm(Object Relation Mapping)框架,只需配置入参、出参、sql即可。
常用的配置标签:
sql:
映射标签::一对多、多对多;:一对一。
动态sql::批量
------------------------------------SSM整合开发----------------------------------
一、springmvc准备
1.配置springmvc.xml
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.2.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.2.xsd">
text/html;charset=UTF-8
2.在web.xml配置DispatcherServlet和拦截路径
springmvc
org.springframework.web.servlet.DispatcherServlet
contextConfigLocation
classpath:config/spring-mvc.xml
1
springmvc
/
到这里springmvc准备完毕
二、mybatis准备:mybatis.xml配置,开发时在配置mapper.xml
mybatis.xml一般只配置typeAilases和plugins,其他数据源等都与spring整合
/p>
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
三、spring整合springmvc和mybatis:关于spring的配置
1.springmvc不需要我们手动整合,springmvc默认整合了spring,使用spring创建的controller-bean
2.spring整合mybatis:
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.2.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.2.xsd">
${driver_class}
${jdbc_url}
${jdbc_username}
${jdbc_password}
四、最后也是最关键的一步,配置web.xml,加载spring
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
Archetype Created Web Application
contextConfigLocation
classpath:config/spring.xml
org.springframework.web.context.ContextLoaderListener
springmvc
org.springframework.web.servlet.DispatcherServlet
contextConfigLocation
classpath:config/spring-mvc.xml
1
springmvc
/
imgServlet
note.ImageServlet
imgServlet
/imageServlet
encoding
org.springframework.web.filter.CharacterEncodingFilter
encoding
UTF-8
encoding
/*
log4jConfigLocation
classpath:config/log4j.properties
org.springframework.web.util.Log4jConfigListener
default
*.js
*.css
/assets/*"
/images/*
/static/*
WEB-INF/index.jsp
500
/WEB-INF/jsp/errorpage/500.jsp
404
/WEB-INF/jsp/errorpage/404.jsp
webAppRootKey
hgx.root
最后的最后,附上maven的pom.xml
4.0.0
com.hgx
note
war
0.0.1-SNAPSHOT
note Maven Webapp
http://maven.apache.org
3.2.4.RELEASE
3.2.4
1.6.6
1.2.9
org.springframework
spring-core
${spring.version}
org.springframework
spring-web
${spring.version}
org.springframework
spring-oxm
${spring.version}
org.springframework
spring-tx
${spring.version}
org.springframework
spring-jdbc
${spring.version}
org.springframework
spring-webmvc
${spring.version}
org.springframework
spring-aop
${spring.version}
org.springframework
spring-context-support
${spring.version}
org.springframework
spring-test
${spring.version}
org.mybatis
mybatis
${mybatis.version}
org.mybatis
mybatis-spring
1.2.2
com.github.pagehelper
pagehelper
4.1.4
com.oracle
ojdbc6
11.2.0.3
junit
junit
4.11
test
com.alibaba
druid
1.0.2
org.codehaus.jackson
jackson-mapper-asl
1.9.13
com.fasterxml.jackson.core
jackson-core
2.4.3
com.fasterxml.jackson.core
jackson-databind
2.4.3
com.alibaba
fastjson
1.2.4
commons-beanutils
commons-beanutils
1.8.3
commons-collections
commons-collections
3.2.1
org.apache.commons
commons-lang3
3.4
commons-logging
commons-logging
1.1.1
net.sf.json-lib
json-lib
2.2.3
log4j
log4j
${log4j.version}
org.slf4j
slf4j-api
${slf4j.version}
org.slf4j
slf4j-log4j12
${slf4j.version}
junit
junit
3.8.1
test
jstl
jstl
1.2
taglibs
standard
1.1.2
javax.servlet
servlet-api
2.5
provided
javax.servlet.jsp
jsp-api
2.2
provided
mysql
mysql-connector-java
5.1.35
note