Spring整合Struts 2,以及Spring中Bean的作用域问题
来源:互联网 发布:原知宏大野智 编辑:程序博客网 时间:2024/06/16 06:07
一、Spring整合Struts 2(底层用hibernate)
1.添加jar:Struts 2的jar包,Spring3.0 core, Spring3.0 web , spring 3.0 aop,struts-spring-plugin-xxxx.jar
2.Struts 2的核心过滤器StrutsPrepareAndExecuteFilter的配置问题
3.Web.xml查找Spring容器信息:
方法一:默认在web-info下,此时不用配置;
方法二:当放在src下时配置web.xml文件:
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</context-param>
4.web.xml:监听器用于在web环境中启动Spring容器
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
5.web.xml:过滤器OpenSessionInViewFilter:把一个Hibernate Session和一次完整的请求过程相绑定 注意:1. 该过滤器要配置在Struts 2核心控制器之前 2.若Spring中定义的SessionFactory Bean的id不是sessionFactory,则需要为该过滤器配置sessionFactoryBeanName<init-param>参数
<filter>
<filter-name>OpenSessionInViewFilter</filter-name>
<filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
<init-param>
<param-name>sessionFactoryBeanName</param-name>
<param-value>sf</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>OpenSessionInViewFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
6.常规步骤:
服务启动,加载web.xml(启动Spring容器)--------表单提交--------web.xml中struts2核心过滤器拦截--------发送给action调用业务处理并返回字符串
7.struts.xml:
<package name="default" extends="struts-default" namespace="/">
<action name="login" class="userAction" method="login">
<result>/index.jsp</result>
<result name="input">/login.jsp</result>
</action>
</package>
8.applicationContext.xml文件注入Action中的信息:
方法一:常规
方法二:bean id="userBiz"和Action中的set方法一致
<bean id="userBiz" class="com.yh.ssh.biz.impl.UserBiz" >
<property name="userDao" ref="userDao"></property>
</bean>
<bean id="userAction" class="com.yh.ssh.action.UserAction">
<property name="userBiz" ref="userBiz"></property>
</bean>
9.Spring中Bean的作用域
a. <bean id="userAction" class="cn.bdqn.jboa.action.UserAction" scope="prototype">
singleton 默认值。Spring以单例模式创建Bean的实例,即容器中该Bean的实例只有一个
prototype 每次从容器中获取Bean时,都会创建一个新的实例
request 用于Web应用环境,针对每次HTTP请求都会创建一个实例
session 用于Web应用环境,同一个会话共享同一个实例,不同的会话使用不同的实例
global session仅在Portlet的Web应用中使用,同一个全局会话共享一个实例。对于非Portlet环境,等同于session
b. 使用Web环境下的作用域,要在web.xml文件中配置RequestContextListener或RequestContextFilter
<listener>
<listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
</listener>
10.UserAction:
public class UserAction extends ActionSupport {
private Users u;
private IUserBiz userBiz;
public void setUserBiz(IUserBiz userBiz) {
this.userBiz = userBiz;
}
public String login() {
Users user = userBiz.login(u);
if (user != null)
return SUCCESS;
else
return INPUT;
}
}
- Spring整合Struts 2,以及Spring中Bean的作用域问题
- (2)Spring的三种实例 bean 的方式 以及 Spring中bean的作用域。 以及 bean的生命周期
- (3)Spring的三种实例 bean 的方式 以及 Spring中bean的作用域。 以及 bean的生命周期
- Spring中Bean的理解以及@Bean的作用
- spring中bean的作用域的问题
- 详解Spring中bean的作用域
- spring中bean的作用域
- Spring中bean的作用域
- Spring中bean的作用域
- Spring中bean的作用域
- 详解Spring中bean的作用域
- 详解Spring中bean的作用域
- Spring中bean的作用域
- Spring中bean的作用域
- Spring中Bean的作用域
- 详解Spring中bean的作用域
- Spring中bean的作用域scope
- 详解Spring中bean的作用域
- CSAPP Cache实验
- 【OpenCV】有关内存释放 总结
- 1038. Recover the Smallest Number
- 欢迎使用CSDN-markdown编辑器
- div层调整z-index属性无效原因分析及解决方法
- Spring整合Struts 2,以及Spring中Bean的作用域问题
- Python 客制化类的创建过程
- 将用户在jsp表单输入的信息赋给JavaBean
- 向量积(叉积)及其计算
- Jquery--text()与html()方法的区别
- Android Studio 快捷键
- 二维数组与指针
- dp转化为px的原因
- 使用studio编译中遇到的两个的错误_'D:\jdk1.7.0_80\bin\java.exe'' finished with non-zero exit value 1 等