框架 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)

Spring SSH框架整合

框架 day37 Spring事务管理,整合web,SSH整合,SSH整合注解

SSM框架整合,以CRM为例子

spring 技术详解 教程

SSM框架整合之练习篇