spring2.0+hibernate3.1+struts1.2 ssh开发的简单的应用1

这个简单的应用是入门级别的 ,方便大家入门
1,类似与springside( http://www.springside.org.cn/)中的例子helloworld具有的功能,
2,没有了springside中的将网页中的表单输出xls中的功能,
3,将那个helloworld例子中的分页功能简单化了
4,增加了添加用户或修改用户时的,javaMail通知的功能,
5,还有原来的对数据的增删改查

tomcat6.0作为服务器,mysql作为数据库

包结构:
com.hello.model 存放应用的pojo类
com.hello.dao,com.hello.dao.impl 数据层,使用hibernate封装
com.hello.service,com.hello.service.impl 业务逻辑层,将页面表现同数据分离
com.hello.web  存放分页的类和资源文件
com.hello.web.action 表现层,存放struts的action文件
基本配置:
数据库文件,数据库中的数据自己添加
helloworld.sql
create database helloworld;
use helloworld;
    create table `helloworld`.`user`(
        `id` int unsigned not null auto_increment,
       `name` varchar(45) default '' not null,
       `email` varchar(45),
       `descn` varchar(45),
        primary key (`id`)
    );


web.xml
注意过滤器的字符设置
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.5"
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee   http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
	<!-- 对表单传递的数据强制转换 -->
	<filter>
		<filter-name>encodingFilter</filter-name>
		<filter-class>
			org.springframework.web.filter.CharacterEncodingFilter
		</filter-class>
		<!-- 设置的是gbk,因为我的mysql数据库的字符设置是gbk,
		最好同你的数据库的字符设置相同,否则容易乱码-->
		<init-param>
			<param-name>encoding</param-name>
			<param-value>gbk</param-value>
		</init-param>
		<init-param>
			<param-name>forceEncoding</param-name>
			<param-value>true</param-value>
		</init-param>
	</filter>
	<filter-mapping>
		<filter-name>encodingFilter</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>
	<!-- 配置spring文件 -->
	<context-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>/WEB-INF/applicationContext.xml</param-value>
	</context-param>

	<listener>
		<listener-class>
			org.springframework.web.context.ContextLoaderListener
		</listener-class>
	</listener>
	<!-- 配置struts文件 -->
	<servlet>
		<servlet-name>action</servlet-name>
		<servlet-class>
			org.apache.struts.action.ActionServlet
		</servlet-class>
		<init-param>
			<param-name>config</param-name>
			<param-value>/WEB-INF/struts-config.xml</param-value>
		</init-param>
		<load-on-startup>1</load-on-startup>
	</servlet>
	<servlet-mapping>
		<servlet-name>action</servlet-name>
		<url-pattern>*.do</url-pattern>
	</servlet-mapping>

	<welcome-file-list>
		<welcome-file>index.jsp</welcome-file>
	</welcome-file-list>
</web-app>

applicationContext.xml
<?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"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
		http://www.springframework.org/schema/tx
       http://www.springframework.org/schema/tx/spring-tx-2.0.xsd
       http://www.springframework.org/schema/aop
       http://www.springframework.org/schema/aop/spring-aop-2.0.xsd">


	<bean id="dataSource"
		class="org.springframework.jdbc.datasource.DriverManagerDataSource">
		<property name="driverClassName"
			value="com.mysql.jdbc.Driver">
		</property>
		<property name="url"
			value="jdbc:mysql://localhost:3306/helloworld">
		</property>
		<property name="username" value="root"></property>
		<property name="password" value="123456"></property>
	</bean>
	<bean id="sessionFactory"
		class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
		<property name="dataSource">
			<ref bean="dataSource" />
		</property>
		<property name="hibernateProperties">
			<props>
				<prop key="hibernate.dialect">
					org.hibernate.dialect.MySQLDialect
				</prop>
			</props>
		</property>
		<property name="mappingResources">
			<list>
				<value>com/hello/model/User.hbm.xml</value>
			</list>
		</property>
	</bean>

	<bean id="mailSender"
		class="org.springframework.mail.javamail.JavaMailSenderImpl">
		<property name="host" value="smtp.163.com" />
		<property name="port" value="25" />
		<property name="username" value="你的用户名" />
		<property name="password" value="你的密码" />
		<property name="javaMailProperties">
			<props>
				<prop key="mail.smtp.auth">true</prop>
				<prop key="mail.smtp.timeout">25000</prop>
			</props>
		</property>
	</bean>
	<!-- 配置事务管理 -->
	<bean id="transactionManager"
		class="org.springframework.orm.hibernate3.HibernateTransactionManager">
		<property name="sessionFactory" ref="sessionFactory"></property>
	</bean>

	<bean id="userDAO" class="com.hello.dao.impl.UserDAOImpl">
		<property name="sessionFactory" ref="sessionFactory"></property>
	</bean>
	
	<bean id="mailAdvice" class="com.hello.service.impl.SendMail">
		<property name="mailSender" ref="mailSender"></property>
	</bean>
	<!-- aop代理对象包含advisor和advice的拦截链,advice表示对方法的增强(切面)
		而pointcut表示一个切入点 -->
	<tx:advice id="txAdvice" transaction-manager="transactionManager">
		<tx:attributes>
			<tx:method name="List" read-only="true" />
			<tx:method name="*" />
		</tx:attributes>
	</tx:advice>
	
	<!-- advisor 必须的有一个advice增强+一个切入点,才能实现增强方法的功能-->
	<aop:config>
		<!-- 增强事务功能 -->
		<aop:advisor
			pointcut="execution(* com.hello.service.UserService.*(..))"
			advice-ref="txAdvice" />
		<!--添加或修改用户时发送email -->
		<aop:advisor
			pointcut="execution(* com.hello.service.UserService.save(*..User))"
			advice-ref="mailAdvice" />
	</aop:config>

	<bean id="userService"
		class="com.hello.service.impl.UserServiceImpl">
		<property name="userDAO" ref="userDAO"></property>
	</bean>
</beans>

struts-config.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd">

<struts-config>
	<form-beans>
		<form-bean name="userForm"
			type="org.apache.struts.validator.LazyValidatorForm" />
	</form-beans>

	<global-exceptions />
	<global-forwards />
	<action-mappings>
		<action attribute="userForm" input="/index.jsp" name="userForm"
			validate="false" path="/user" parameter="method" scope="request">
			<forward name="list" path="/pages/list.jsp" />
			<forward name="edit" path="/pages/edit.jsp" />
		</action>
	</action-mappings>
	<!-- 由spring代理页面的跳转 -->
	<controller>
		<set-property property="processorClass"
			value="org.springframework.web.struts.DelegatingRequestProcessor" />
	</controller>
	<message-resources
		parameter="com.hello.web.struts.ApplicationResources" />

	<!-- spring 代理action的插件 -->
	<plug-in
		className="org.springframework.web.struts.ContextLoaderPlugIn">
		<set-property property="contextConfigLocation"
			value="/WEB-INF/action-servlet.xml" />
	</plug-in>

	<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
		<set-property property="pathnames"
			value="/WEB-INF/validator-rules.xml,
                             /WEB-INF/validation.xml" />
	</plug-in>

</struts-config>

action-servlet.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans
	xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
	<bean name="/user" class="com.hello.web.action.UserAction">
		<property name="userService" ref="userService"></property>
	</bean>
</beans>

源代码文件:
前面没有添加jta.jar,出现java.lang.NoClassDefFoundError: javax/transaction/TransactionManager。现已改正,在tomcat5.5上还暂时未通过
http://cid-741baba43d6d4c42.skydrive.live.com/self.aspx/Public/helloworld2.7z

你可能感兴趣的:(spring,应用服务器,xml,struts,ssh)