1. 程式人生 > >SSH框架搭建主要流程

SSH框架搭建主要流程

1.建立一個動態web專案

接著點選next,勾選自動生成web.xml選項,最後點選finish。

2.在WEB-INF的lib資料夾中匯入必備的jar包,包括spring、struts以及hibernate的jar包:

spring相關jar包:

struts相關jar包:

hibernate相關jar包:

其中尤其注意不能忘記classmate-1.3.4.jar、byte-buddy-1.8.12.jar、aspectjweaver-1.8.13jar的匯入。

3.jar匯入後,開始搭建框架,完成配置檔案

(1)首先第一步載入資料庫配置檔案,配置資料來源

<!-- 載入資料庫配置檔案 -->
	<context:property-placeholder location="classpath:db.properties"/>
	<!-- 包掃描器 -->
	<context:component-scan base-package="com.jiangnan.ssh"/>
	<!-- 配置C3P0資料來源 -->
	<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
		<property name="user" value="${db.username}"/>
		<property name="password" value="${db.password}"/>
		<property name="driverClass" value="${db.driverClass}"/>
		<property name="jdbcUrl" value="${db.url}"/>
		<property name="initialPoolSize" value="${db.initialPoolSize}"/>
		<property name="maxPoolSize" value="${db.maxPoolSize}"/>		
	</bean>

 (2)第二步建立資料庫操作物件

<!-- 建立資料庫的操作物件 -->
	<bean id="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean">
		<property name="dataSource" ref="dataSource"/>
		<property name="hibernateProperties" >
			<props>
				<!-- 資料庫方言 -->
				<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
				<!-- 顯示Hibernate持久化操作生成的預編譯的SQL -->
				<prop key="hibernate.show_sql">true</prop>
				<!-- 將SQL格式化後再輸出 -->
				<prop key="hibernate.format_sql">true</prop>
				<!-- 是否根據需要每次自動建立資料庫 -->
				<prop key="hibernate.hbm2ddl.auto">update</prop>			
			</props>
		</property>
		<!-- Hibernate對映檔案的目錄 -->
		<property name="mappingDirectoryLocations">
			<list>
				<value>classpath:com/jiangnan/ssh/pojo</value>
			</list>
		</property>
	</bean>

(3)第三步配置事務

<!-- 配置事務管理器 -->
	<bean id="transactionManager" class="org.springframework.orm.hibernate5.HibernateTransactionManager">
		<property name="sessionFactory" ref="sessionFactory"></property>
	</bean>

(4)第四步配置通知

<!-- 配置通知 -->
	<tx:advice transaction-manager="transactionManager" id ="txadvice">
		<tx:attributes>
			<tx:method name="add" propagation="REQUIRED"/>
			<tx:method name="delete" propagation="REQUIRED"/>
			<tx:method name="update" propagation="REQUIRED"/>
			<tx:method name="*" read-only="true"/>
		</tx:attributes>
	</tx:advice>

(5)第五步配置切面

<!-- 配置切面 -->
	<aop:config>
		<aop:pointcut expression="execution(* com.jiangnan.ssh.service.*.*(..))" id="txpoint"/>
		<aop:advisor advice-ref="txadvice" pointcut-ref="txpoint"/>
	</aop:config>

(6)最後配置一下web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
  <display-name>TestSSH</display-name>
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
  
  <context-param>
  	<param-name>contextConfigLocation</param-name>
  	<param-value>classpath:applicationContext.xml</param-value>
  </context-param>
  <listener>
  	<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>
  <filter>
  	<filter-name>struts</filter-name>
  	<filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>
  </filter>
  <filter-mapping>
  	<filter-name>struts</filter-name>
  	<url-pattern>/*</url-pattern>
  </filter-mapping>
</web-app>

以上基本完成了SSH框架的主要搭建,如有不當之處,敬請各位批評指正。