SSH2项目构建过程

今天简述一下一个用户登录,注册,以及管理的一个ssh2项目构建全过程,麻雀虽小,五脏俱全。
首先,建一个webProject,然后分别添加Struts2,Hibernate3和Spring3的支持,导入一些jar包,以及写配置文件。最重要的是几个配置文件的编写。web.xml最为重要,作为struts2和spring3的加载配置文件,要加入两个最重要的信息:
	<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>



	<listener>
		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
	</listener>

分别是启动加载struts2的filter和spring的listener,此时,应该可以运行了,SSH2框架搭建完毕,然后进行其他的处理。


然后建立包和类,先建com.test.bean存放javaBean文件,例如这里有一个User.java,然后创建user的action处理类的包,可以叫做com.test.action.user,在其中建立SaveUserAction这个类,继承ActionSupport,进行存储用户。在这个类中有私有成员变量User,和其setter/getter,还有execute()方法,其中还有一个重要的类型UserService,由其处理请求,UserService又依赖于UserDAO的底层接口,由其实现类操纵数据。
定义Service包,com.test.service包,其下只定义接口UserService。
然后定义其实现类,同样一个包:com.test.service.impl,其中定义实现类UserServiceImpl,实现UserService
而实现类,是依赖于DAO来实现底层操作,所以还要建com.test.dao,其下也只定义接口,叫UserDAO
再建立dao的实现类,先建包com.test.dao.impl,其中建立UserDAOImpl实现UserDAO
接口
目录结构大体如此,结构非常清晰。
另外,如果有必要,还要构建util包,处理字符串操作,日期类型操作以及常量字符串保存等
然后开始进行一个业务的流程,首先在UserDAO中编写一个方法
public void saveUser(User user);
此处只是声明,由其impl实现类实现,在UserDAOImpl中还要继承extends HibernateDaoSupport,就可以使用hibernateTemplate了,然后写具体实现类:
public void saveUser(User user){
		this.getHibernateTemplate().save(user);
	}
这就已经直接操作数据库了,在最底层,有hibernate框架提供。
可以操纵数据之后,就在Service中进行逻辑操作了,同样定义save(User user)的类,由其impl来实现,首先定义一个public UserDAO userDao;变量,生成setter/getter,然后就覆盖saveUser方法,很简单
public void save(User user){
XXXXX有必要的话在此写处理的逻辑
		this.userDao.saveUser(user);}

然后就是在Action里面进行操作了,要用userService,就要定义这样一个变量,然后生成setter/getter,在execute中调用userService的方法即可:this.userService.save(this.user);接下来return SUCCESS及完毕。
完后就开始配置文件的写入:
先从applicationContext.xml开始:
先配置DataSource:
<bean id="dataSource"
		class="org.apache.commons.dbcp.BasicDataSource"
		destroy-method="close">

		<property name="driverClassName">
			<value>com.mysql.jdbc.Driver</value>
		</property>

		<property name="url">
			<value>jdbc:mysql://localhost:3306/ssh2</value>
		</property>

		<property name="username">
			<value>root</value>
		</property>

		<property name="password">
			<value>root</value>
		</property>

	</bean>

然后是sessionFactory,hibernate的Users.hbm.xml文件
<bean id="sessionFactory"
		class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">

		<property name="dataSource">
			<ref local="dataSource" />
		</property>

		<property name="mappingResources">
			<list>
				<value>com/test/bean/User.hbm.xml</value>
			</list>
		</property>

		<property name="hibernateProperties">

			<props>

				<prop key="hibernate.dialect">
					org.hibernate.dialect.MySQLDialect
				</prop>
				<prop key="hibernate.show_sql">true</prop>

			</props>

		</property>

	</bean>

在其中配置DAO的bean,注意配置成scope=singleton,以为它是无状态的,还要注入sessionFactory。然后配置service的,注入dao的bean,依然是scope=singleton。然后就是最高层的Action的bean,注入service的bean。spring的配置文件就结束了,注意是一层一层注入的。
然后就是配置struts2的配置文件,很简单的一些配置就可以满足。

猜你喜欢

转载自lxshawn.iteye.com/blog/1697504
今日推荐