框架 day39-42 SSH整合练习项目CRM(配置文件,增删改查,ajax,上传/下载,分页,BaseDao/Action)
Posted 飛白
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了框架 day39-42 SSH整合练习项目CRM(配置文件,增删改查,ajax,上传/下载,分页,BaseDao/Action)相关的知识,希望对你有一定的参考价值。
1 配置文件
1.1 spring配置
1.1.1 介绍
加载properties
配置数据源DataSource
配置SessionFactory , 加载所有hbm.xml
hibernate事务管理
使用 <import > 所有的模块都使用单独配置文件
1.1.2 使用源码包
使用config源码,将源码和配置文件分开存放,方便程序的维护。
1.1.3 spring核心
1.1.3.0约束
<?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:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">
1.1.3.1 加载properties
<!-- 公共配置文件,web.xml配置加载核心文件 -->
<!-- 1 加载properties文件 -->
<context:property-placeholder location="classpath:jdbcinfo.properties"/>
1.1.3.2 配置数据源
<!-- 2 配置数据源 -->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass" value="${jdbc.driverClass}"></property>
<property name="jdbcUrl" value="${jdbc.jdbcUrl}"></property>
<property name="user" value="${jdbc.user}"></property>
<property name="password" value="${jdbc.password}"></property>
</bean>
1.1.3.3 配置hibernate sessionFactory
<!-- 3 配置hibernate SessionFactory -->
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<!-- 3.1 配置数据源
* <property name="属性名" ref="另一个bean引用">
name 必须是对象的setter方法推断获得,setDataSource(...), 去掉set DataSource ,首字母小写 dataSource
* ref 其他bean引用 <bean id=""> 可以任意,一般情况与上面属性名称相同。
-->
<property name="dataSource" ref="dataSource"></property>
<!-- 3.2 配置hibernate其他属性
* 在hibernate.cfg.xml 配置文件 “hibernate.dialect” 和 “dialect” 等效的
* 在spring配置文件中,必须使用“hibernate.dialect”
-->
<property name="hibernateProperties">
<props>
<!-- 方言 -->
<prop key="hibernate.dialect">org.hibernate.dialect.mysql5Dialect</prop>
<!-- 显示sql语句 -->
<prop key="hibernate.show_sql">true</prop>
<!-- 格式化sql语句 -->
<prop key="hibernate.format_sql">true</prop>
</props>
</property>
<!-- 3.3 加载映射文件
com/itheima/crm/staff/domain/CrmStaff.hbm.xml
com/itheima/crm/post/domain/CrmPost.hbm.xml
com/itheima/crm/*/domain/*.hbm.xml
-->
<property name="mappingLocations" value="classpath:com/itheima/crm/*/domain/*.hbm.xml"></property>
</bean>
1.1.3.4 配置 hibernate 事务管理
<!-- 4 事务管理 -->
<!-- 4.1 事务管理器,spring事务必须在事务管理器平台上工作
* 在hibernate中事务需要session,session是从sessionFactory中获取的。
-->
<bean id="txManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
<!-- 4.2 事务通知,确定事务的详情,明确切入点使用什么样的事务
* 项目约定:service层方法名称
所有添加必须add开头
所有更新必须update开头
所有删除必须delete开头
所有查询必须find开头
-->
<tx:advice id="txAdvice" transaction-manager="txManager">
<tx:attributes>
<tx:method name="add*"/>
<tx:method name="save*"/>
<tx:method name="update*"/>
<tx:method name="delete*"/>
<tx:method name="find*" read-only="true"/>
<tx:method name="*" read-only="true"/>
</tx:attributes>
</tx:advice>
<!-- 4.3 aop编程,确定切入点
* 所有的service层,需要进行事务管理
com.itheima.crm.staff.service.impl
com.itheima.crm.classes.service.impl
com.itheima.crm.*.service..
-->
<aop:config>
<aop:advisor advice-ref="txAdvice" pointcut="execution(* com.itheima.crm.*.service..*.*(..))"/>
</aop:config>
1.2 struts配置
在struts.xml 配置“公共模块”,使用include包含子模块,所有的子模块都继承“公共模块”
struts.xml
<struts>
<!-- struts 核心配置,公共内容 -->
<!-- 1 常量 -->
<!-- 1.1 开发模式 -->
<constant name="struts.devMode" value="true"></constant>
<!-- 1.2 struts 标签主题, simple 表示 没有风格,使用struts标签为了回显 -->
<constant name="struts.ui.theme" value="simple"></constant>
<!-- 2 公共模块,共有的内容都配置此包中 -->
<package name="common" namespace="/" extends="struts-default">
</package>
<!-- 包含其他模块 -->
<include file="struts/struts-staff.xml"></include>
</struts>
struts-staff.xml
<struts>
<!-- 每一个模块 # 单独配置员工 , 所有的模块将使用“struts.xml.公共模块”-->
<package name="crm_sta" namespace="/staff" extends="common">
</package>
</struts>
1.3 web.xml配置
<!-- spring
* 设置初始化参数,确定spring配置文件位置
* 使用监听器去加载配置文件,并将spring容器存放到ServletContext作用域
-->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring/applicationContext.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!-- struts
* 配置前端控制器,服务器在启动时,初始化init(FilerConfig)将自动调用
* struts在初始化方法中,将自动的加载 classpath:struts.xml 文件 (src/config 两个源码目录都表示 类路径 classpath)
-->
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
2 用户登录
以上是关于框架 day39-42 SSH整合练习项目CRM(配置文件,增删改查,ajax,上传/下载,分页,BaseDao/Action)的主要内容,如果未能解决你的问题,请参考以下文章
Day01搭建环境+抽取dao(整合SSH+设计BaseDao和BaseDaoImpl)