SSM框架详细阐述Word格式文档下载.docx
《SSM框架详细阐述Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《SSM框架详细阐述Word格式文档下载.docx(15页珍藏版)》请在冰豆网上搜索。
SSM框架整合说明
整合Dao层
MyBatis配置文件
sqlMapConfig.xml
▪配置别名:
用于批量扫描Pojo包
▪不需要配置mappers标签,但一定要保证mapper.java文件与mapper.xml文件同名。
<
?
xmlversion="
1.0"
encoding="
UTF-8"
?
>
!
DOCTYPEconfigurationPUBLIC"
-//mybatis.org//DTDConfig3.0//EN"
"
http:
//mybatis.org/dtd/mybatis-3-config.dtd"
<
configuration>
--配置别名-->
typeAliases>
--批量扫描别名-->
packagename="
cn.itcast.ssm.po"
/>
/typeAliases>
/configuration>
∙1
∙2
∙3
∙4
∙5
∙6
∙7
∙8
∙9
Spring配置文件
applicationContext-dao.xml
▪主要配置内容
▪数据源
▪SqlSessionFactory
▪mapper扫描器
▪这里使用sqlSessionFactoryBeanName属性是因为如果配置的是sqlSessionFactory属性,将不会先加载数据库配置文件及数据源配置
beansxmlns="
//www.springframework.org/schema/beans"
xmlns:
xsi="
//www.w3.org/2001/XMLSchema-instance"
mvc="
//www.springframework.org/schema/mvc"
context="
//www.springframework.org/schema/context"
aop="
//www.springframework.org/schema/aop"
tx="
//www.springframework.org/schema/tx"
xsi:
schemaLocation="
//www.springframework.org/schema/beans
http:
//www.springframework.org/schema/beans/spring-beans-3.2.xsd
//www.springframework.org/schema/mvc
//www.springframework.org/schema/mvc/spring-mvc-3.2.xsd
//www.springframework.org/schema/context
//www.springframework.org/schema/context/spring-context-3.2.xsd
//www.springframework.org/schema/aop
//www.springframework.org/schema/aop/spring-aop-3.2.xsd
//www.springframework.org/schema/tx
//www.springframework.org/schema/tx/spring-tx-3.2.xsd"
--加载db.properties文件中的内容,db.properties文件中key命名要有一定的特殊规则-->
context:
property-placeholderlocation="
classpath:
db.properties"
/>
--配置数据源,dbcp-->
beanid="
dataSource"
class="
mons.dbcp.BasicDataSource"
destroy-method="
close"
propertyname="
driverClassName"
value="
${jdbc.driver}"
url"
${jdbc.url}"
username"
${jdbc.username}"
password"
${jdbc.password}"
maxActive"
30"
maxIdle"
5"
/bean>
--sqlSessionFactory-->
sqlSessionFactory"
org.mybatis.spring.SqlSessionFactoryBean"
--数据库连接池-->
ref="
--加载mybatis的全局配置文件-->
configLocation"
mybatis/sqlMapConfig.xml"
--mapper扫描器-->
beanclass="
org.mybatis.spring.mapper.MapperScannerConfigurer"
--扫描包路径,如果需要扫描多个包,中间使用半角逗号隔开-->
basePackage"
cn.itcast.ssm.mapper"
/property>
sqlSessionFactoryBeanName"
/beans>
∙10
∙11
∙12
∙13
∙14
∙15
∙16
∙17
∙18
∙19
∙20
∙21
∙22
∙23
∙24
∙25
∙26
∙27
∙28
∙29
∙30
∙31
∙32
∙33
∙34
∙35
∙36
∙37
∙38
∙39
∙40
∙41
∙42
∙43
∙44
创建所需的Mapper.java
▪一般不动原始生成的po类,而是将原始类进行集成vo类
publicinterfaceItemsMappperCustom{
publicList<
ItemsCustom>
findItemsList(ItemsQueryVoitemsQueryVo)throwsException;
}
创建POJO类对应的mapper.xml
mappernamespace="
test.ssm.mapper.ItemsMappperCustom"
selectid="
findItemsList"
parameterTyep="
test.ssm.po.ItemsQueryVo"
resultType="
test.ssm.po.ItemsCustom"
selectitems.*fromitems
whereitems.namelike'
%${itemsCustom.name}%'
整合service层
▪目标:
让spring管理service接口。
定义service接口
▪一般在ssm.service包下定义接口eg:
ItemsService
publicinterfaeItemsService{
定义ServiceImpl实现类
▪因为在applicationContext-dao.xml中已经使用了mapper扫描器,这里可以直接通过注解的方式将itemsMapperCustom自动注入。
publicclassItemsServiceImplimplementsItemsService{
@Autowired
privateItemsMapperCustomitemsMapperCustom;
@Override
findItemsList(ItemsQueryVoitemsQueryVo)throwsException{
returnitemsMapperCustom.findItemsList(itemsQueryVo);
}
在spring容器配置service
▪applicationContext-service.xml在此文件中配置service。
itemsService"
test.ssm.service.impl.ItemsSrviceImpl"
事物控制(不够熟悉)
▪在applicationContext-transaction.xml中使用spring声明式事务控制方法
▪对mybatis操作数据库事物控制,spring使用jdbc的事物控制类是DataSourceTransactionManager
▪因为操作了数据库需要事物控制,所以需要配置数据源
▪定义了切面
--事务管理器对mybatis操作数据库事务控制,spring使用jdbc的事务控制类-->
transactionManager"
org.springframework.jdbc.datasource.DataSourceTransactionManager"
--数据源在dataSource在applicationContext-dao.xml中已经配置-->
--通知-->
tx:
adviceid="
txAdvice"
transaction-manager="
attributes>
--传播行为-->
methodname="
save*"
propagation="
REQUIRED"
delete*"
insert*"
update*"
find*"
SUPPORTS"
read-only="
true"
get*"
select*"
/tx:
advice>
--aop-->
aop:
config>
advisoradvice-ref="
pointcut="
execution(*cn.itcast.ssm.service.impl.*.*(..))"
/aop:
整合springmvc
▪创建springmvc.xml文件,配置处理器映射器、适配器、视图解析器
component-scanbase-package="
cn.itcast.ssm.controller"
/context:
component-scan>
--使用mvc:
annotation-driven加载注解映射器和注解适配器配置-->
mvc:
annotation-driven>
/mvc:
--视图解析器解析jsp解析,默认使用jstl标签,classpath下的得有jstl的包
-->
org.springframework.web.servlet.view.InternalResourceViewResolver"
--配置jsp路径的前缀-->
prefix"
/WEB-INF/jsp/"
--配置jsp路径的后缀-->
suffix"
.jsp"
配置前端控制器
▪在web.xml中加入如下内容
▪contextConfigLocation配置springmvc加载的配置文件(配置处理器映射器、适配器等等)
▪如果不配置contextConfigLocation,默认加载的是/WEB-INF/servlet名称-serlvet.xml(springmvc-servlet.xml)
▪在url-pattern中
▪填入*.action,表示访问以.action结尾由DispatcherServlet进行解析
▪填入/,所有访问的地址都由DispatcherServlet进行解析,对于静态文件的解析需要配置不让DispatcherServlet进行解析,使用此种方式可以实现RESTful风格的url
--springmvc前端控制器-->
servlet>
servlet-name>
springmvc<
/servlet-name>
servlet-class>
org.springframework.web.servlet.DispatcherServlet<
/servlet-class>
init-param>
param-name>
contextConfigLocation<
/param-name>
param-value>
spring/springmvc.xml<
/param-value>
/init-param>
/servlet>
servlet-mapping>
url-pattern>
*.action<
/url-pattern>
/servlet-mapping>
编写Controller(Handler)
@Congtroller
@RequestMapping("
/items"
)//窄化路径
publicclassItemsController{
privateItemsServiceitemsService;
//商品查询
@RequestMapping("
/queryItems"
)//实际网址后面跟了.action
publicModelAndViewqueryItems(HttpServletRequestrequest)throwsException{
List<
itemsList=itemsService.findItemsList(null);
//返回ModelAndView
ModelAndViewmodelAndView=newModelAndView();
//相当于request的setAttribute,在jsp页面中通过itemsList取数据
modelAndView.addObject("
itemsList"
itemsList);
returnmodelAndView;
编写JSP页面
c:
forEachitems="
${itemsList}"
var="
item"
tr>
td>
${item.name}<
/td>
${item.price}<
fmt:
formatDatevalue="
${item.createtime}"
pattern="
yyyy