框架技术--S2SH框架整合(使用myeclipse自动生成)

简单在这里通过图片记录下通过Myeclipse自动生成Struts2+spring+hibernate的步骤。

 

1、首先创建一个项目,邮件项目名,选择MyEclipse选项,会展示一个出一块有Add*的域,我们选择Add Hibernate Capabilities(增加Hibernate的配置)。

 

2、选择Hibernate3.2 导入必须的jar包,并且选中jar包要拷贝的路径。

 

3、点击下一步。

 

4、这里不进行数据库驱动的配置,因为咱们要让spring托管hibernate,所以这个配置一会配置到spring的配置文件中,此处取消勾选,下一步。

 

5、sessionFactory也由spring创建,此处也不勾选,finish。

 

6、到此hibernate已经整合到项目组中,我们可以看到多了一个hibernate.cfg.xml的配置文件。

 

7、在重复第一步操作,增加spring配置文件,详见图片,

 

8、选择spring配置文件存放的路径,下一步。

 

9、一直下一步,最后会自动生成一个applicationContext.xml的配置文件,只保留这些,其他清空即可。

 

10、我们这里手动引入下Struts2的这些JAR包,可以在官网上下载。

 

11、引入JAR包 COPY到lib目录。

 

12、在引入spring和struts2整合的插件包,可以到spring官网下载。

 

13、然后点击MyEclipse右上角,选中MyEclipse DataBase Exploer,右边会变成DB Browser。

 

14、右键MyEclipse Derby 选中NEW,弹出如图的框,然后选中我们自己本地的数据库,我这里是Mysql。呗忘了要到驱动包哈

 

15、一直next,完成后会将数据库中信息映射到我们的MyEclipse中,详见截图,此时你会看到你自己创建的表。

 

16、右键选中表明,这里我们要生成hibernate的映射实体类文件,就是实体类属性和数据库字段的关联。

 

17、选中后会弹出一个提示框,我们选择下实体类存放的包。

 

18、下面坐下勾选,然后next。

 

19、选中以下主键ID的生成策略。next

 

20、选中下面的A->B B->A,如果有当前表有外键关联的话,需要勾选他会自动帮你创建关联关系,反正就选上吧有就生成,没有也不会有影响滴。

 

21、finis后,会在我们选中的路径下生成实体类和数据库的映射配置文件。

 

22、将struts2信息注册到web.xml上。

 

23、这里我们要在src目录下创建一个struts.xml,内容详见我的struts整合那篇博客的讲解。

到此呢一个S2SH框架搭建好了,但是想要实现功能还要去完善每个xml中的配置,后期开发主要完善applicationContext.xml及struts.xml这两个配置文件。

具体某一块不了解可以详见下面的博客:

框架技术--S2SH框架整合(struts2部分)

框架技术--S2SH框架整合(hibernate部分) No 1

框架技术--S2SH框架整合(spring部分)No 1

框架技术--S2SH框架整合(spring部分)No 2--属性注入

框架技术--S2SH框架整合(spring部分)No 3--声明式事务

 

附 配置文件

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
	http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
	<context-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>/WEB-INF/applicationContext.xml</param-value>
	</context-param>
	<!-- 使用ContextLoaderListener初始化Spring容器 -->
	<listener>
		<listener-class>
			org.springframework.web.context.ContextLoaderListener
		</listener-class>
	</listener>
	<!-- 定义Struts2的核心Filter -->
	<filter>
		<filter-name>struts2</filter-name>
		<filter-class>
			org.apache.struts2.dispatcher.FilterDispatcher
		</filter-class>
	</filter>
	<!-- 让Struts2的核心Filter拦截所有请求 -->
	<filter-mapping>
		<filter-name>struts2</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>

</web-app>

 

struts.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
	"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
	"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
	<!-- 配置了系列常量 -->
	<constant name="struts.ui.theme" value="simple" />
	<constant name="struts.i18n.encoding" value="UTF-8" />
	<constant name="struts.custom.i18n.resources" value="globalMessages" />
	<package name="default" extends="struts-default">

		<!--===========下面是Action=====-->
		<action name="userAction" class="userAction" method="findUserGrade">
			<result name="success">/user/userList.jsp</result>
		</action>
		<action name="userPrepareInsertAction" class="userAction" method="prepareInsert">
			<result name="success">/user/userInsert.jsp</result>
		</action>
		<action name="userInsertAction" class="userAction" method="userInsert">
			<result name="success"  type="redirect">userAction.action</result>
		</action>
		<action name="userDelAction" class="userAction" method="userDel">
			<result name="success"  type="redirect">userAction.action</result>
		</action>
		<action name="">
			<result>.</result>
		</action>

		<action name="*">
			<result>/{1}.jsp</result>
		</action>
	</package>
</struts>


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/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
           http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd">
	<!-- 链接数据库的配置 -->
	<bean id="dataSource"
		class="org.apache.commons.dbcp.BasicDataSource"
		destroy-method="close">
		<property name="driverClassName"
			value="com.mysql.jdbc.Driver">
		</property>
		<property name="url"
			value="jdbc:mysql://localhost:3306/gp">
		</property>
		<property name="username" value="root"></property>
		<property name="password" value="gaopeng"></property>
	</bean>
	<!-- dataSource注入到sessionFactory -->
	<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>
				<prop key="hibernate.show_sql">true</prop>
			</props>
		</property>
		<property name="mappingResources">
			<list>
				<value>com/gp/user/dto/Usergrade.hbm.xml</value>
			</list>
		</property>
	</bean>
	
	<!-- 事务管理器--> 
	<bean id="transactionManager"
		class="org.springframework.orm.hibernate3.HibernateTransactionManager">
		<property name="sessionFactory">
			<ref bean="sessionFactory" />
		</property>
	</bean>
	<!-- 配置事务的传播特性 -->
	<tx:advice id="txAdvice" transaction-manager="transactionManager">
		<tx:attributes>
			<tx:method name="add*" propagation="REQUIRED"/>
			<tx:method name="del*" propagation="REQUIRED"/>
			<tx:method name="modify*" propagation="REQUIRED"/>
			<tx:method name="save*" propagation="REQUIRED"/>
			<tx:method name="*" read-only="true"/>
		</tx:attributes>
	</tx:advice>
	
	<!-- 那些类的哪些方法参与事务 -->
	<aop:config>
		<aop:pointcut id="allServiceMethod" expression="execution(* com.gp.user.service.*.*(..))"/>
		<aop:advisor pointcut-ref="allServiceMethod" advice-ref="txAdvice"/>
	</aop:config>

	<!-- 事务拦截器
	<bean id="transactionInterceptor"
		class="org.springframework.transaction.interceptor.TransactionInterceptor">
		<property name="transactionManager">
			<ref bean="transactionManager" />
		</property>
		<property name="transactionAttributes">
			<props>
				<prop key="*">PROPAGATION_REQUIRED</prop>
			</props>
		</property>
	</bean> -->
	
	<!-- BeanNameAutoProxyCreator  该bean无需被引用,所以没有id属性 
	<bean
		class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
		<property name="beanNames">
			<list>
				<value>userServiceImpl</value>
			</list>
		</property>
		<property name="interceptorNames">
			<list>
				<value>transactionInterceptor</value>
			</list>
		</property>
	</bean>-->
	
	<!-- dao层注入sessionFactory -->
	<bean id="userDaoImpl" class="com.gp.user.dao.impl.UserDaoImpl">
		<property name="sessionFactory">
			<ref bean="sessionFactory" />
		</property>
	</bean>
	<!-- service层注入dao -->
	<bean id="userServiceImpl" class="com.gp.user.service.impl.UserServiceImpl">
		<property name="userDao">
			<ref bean="userDaoImpl" />
		</property>
	</bean>
	<!-- action层注入service -->
	<bean id="userAction" class="com.gp.user.action.UserAction">
		<property name="userService">
			<ref bean="userServiceImpl" />
		</property>
	</bean>
</beans>


 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值