软件152 彭梦月
先是struts2和hibernate的配置
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">
<!-- structs2的配置 -->
<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>
</web-app>
然后在src下添加一个hibernate.cfg.xml:(这是一些数据库的配置)
重点讲Spring: 1. 在src下面新建applicationContext.xml文件: sa jdbc:jtds:sqlserver://localhost:1433;DatabaseName=LQQ org.hibernate.dialect.SQLServerDialect sa net.sourceforge.jtds.jdbc.Driver true
然后在web-xml:
<param-name>contextConfigLocation</param-name>
<!--spring 的配置文件加载路径-->
<param-value>classpath:applicationContext.xml</param-value>
</context-param>
下面我们测试下:src建个test包
建两个类User和SpringTest类:
public class User implements java.io.Serializable { /** * */ private static final long serialVersionUID = 1L; private String username; private String allname; private String address; public String getUsername() { return this.username; } public void setUsername(String username) { this.username = username; } public String getAllname() { return this.allname; } public void setAllname(String allname) { this.allname = allname; } public String getAddress() { return this.address; } public void setAddress(String address) { this.address = address; } public class SpringTest {
public
static
void
main(String[] args) {
// 加载spring配置文件,初始化IoC容器
ApplicationContext ac =
new
ClassPathXmlApplicationContext(
"applicationContext.xml"
);
// 从容器 接管Bean
TUser user = (TUser) ac.getBean(
"TUser_id"
);
// 输出欢迎信息
System.out.println(
"Hello:"
+ user.getUsername() +
";u is in "
+ user.getAddress() +
" ; and u is "
+ user.getAllname());
}
}
<br><br>
<!-- 这是个例子 可以先不要 -->
<bean id=
"TUser_id"
class
=
"test.TUser"
>
<property name=
"username"
value=
"你"
></property>
<property name=
"allname"
value=
"李"
></property>
<property name=
"address"
value=
"重庆市"
></property>
</bean>
运行main方法后
控制台出现:Hello:你;u is in 重庆市 ; and u is 李
下面开始整合
1.整合struts2配置web.xml文件。在web.xml中加入以下代码:
<!-- Spring与Struts的整合其实就是把Struts的Action类交给Spring来管理 -->
<listener>
<listener-
class
>
org.springframework.web.context.ContextLoaderListener
</listener-
class
>
</listener>
2.举个例子:
把struts的action交给spring:
先把
<action name="login" class="test.LoginAction ">
改为<action name="login" class="loginAction_id">
然后在
在applicationContext.xml中增加如下代码:
<bean id="loginAction_id" class="test.action.LoginAction" scope="prototype">
</bean>在applicationContext.xml中增加如下代码:
<bean id=
"sessionFactory"
class
=
"org.springframework.orm.hibernate3.LocalSessionFactoryBean"
>
<property name=
"dataSource"
ref=
"dataSource"
></property>
<property name=
"hibernateProperties"
>
<props>
<prop key=
"hibernate.dialect"
>org.hibernate.dialect.SQLServerDialect</prop>
<prop key=
"hibernate.show_sql"
>
true
</prop>
</props>
</property>
<property name=
"mappingResources"
>
<list>
<value>sedion/xq/bean/User.hbm.xml</value><!--这里是将映射文件加载-->
</list>
</property>
</bean>
2.然后DAO层匹配一个session工厂,<ref bean="sessionFactory"/>这个sessionFactory是指session工厂的ID。
<bean id="userDao" class="sedion.xq.dao.iml.UserDAOImpl" scope="singleton">
<property name="sessionFactory"> <ref bean="sessionFactory" /> </property></bean>3.service层注入DAO层
<bean id="userService" class="sedion.xq.sevice.iml.UserServiceImpl">
<property name="userDAO" ref="userDao"></property></bean> 然后就是各个action注入service层:(随便写个)<bean id="saveUesrAction" class="sedion.xq.action.user.SaveUserAction"
scope="prototype"> <property name="userService" ref="userService"></property></bean> 整合就这样好