guokehua(@yahoo.com.cn oy Java! 1010 23 Spring和 Struts的整合 郭克华J2EE框架实战教学视频
oy Java! J guokehua@yahoo.com.cn 郭克华J2EE框架实战教学视频 23Spring和Struts的整合
guokehua(@yahoo.com.cn oy Java 场景 Struts登陆,调用Dao,要求Dao内能够 显示登陆的信息 1010 Struts Dao DB 郭克华J2EE框架实战教学视频
oy Java! J guokehua@yahoo.com.cn 郭克华J2EE框架实战教学视频 场景 • Struts登陆,调用Dao,,要求Dao内能够 显示登陆的信息 Struts Dao DB
guokehua(@yahoo.com.cn oy Java! 总结: Application Context ApplicationContext主要是用于査找bean,使 用 getBean方法返回容器中实例化的对象 1010 在网站的情况下怎么办? 通过 WebApplication Context · WebApplication Context是 Application Context 的子接口 郭克华J2EE框架实战教学视频
oy Java! J guokehua@yahoo.com.cn 郭克华J2EE框架实战教学视频 总结:ApplicationContext ApplicationContext • ApplicationContext主要是用于查找bean,使 用getBean的方法返回容器中实例化的对象。 • 在网站的情况下怎么办? • 通过WebApplicationContext • WebApplicationContext是ApplicationContext 的子接口
guokehua(@yahoo.com.cn oy av Web Context: Spring WEB (1)建立一个Web项目,在 web. xm中加入 context/servlet-name> ooid org. springframework web context. ContextLoaderservlet 1 这样,系统自动读取/WEB-INF/app1 icationcontext.xm1,如果自己 定义文件名,则还需要增加: contextConfigLocation /文件路径 通过 WebApplicationContextUtils. getWebApplicationcontext( pplication)得到Bean 郭克华J2EE框架实战教学视频
oy Java! J guokehua@yahoo.com.cn 郭克华J2EE框架实战教学视频 WebContext WebContext:Spring WEB :Spring WEB • (1)建立一个Web项目,在web.xml中加入: context org.springframework.web.context.ContextLoaderServlet 1 这样,系统自动读取/WEB-INF/applicationContext.xml,如果自己 定义文件名,则还需要增加: contextConfigLocation /文件路径 通过 WebApplicationContextUtils.getWebApplicationContext( application) 得到Bean
guokehua(@yahoo.com.cn oy Java 另一种方法:用 Listener接口( Servlet23以上使用) (1)建立一个Web项目,在 web. xm中加入 contextConfigLocation 路径 10101 org. springframework web context. Contextloderli stener 通过 WebApplicationContextUtils. getWebApplicationContext app1 Ication)得到Bean 郭克华J2EE框架实战教学视频
oy Java! J guokehua@yahoo.com.cn 郭克华J2EE框架实战教学视频 另一种方法:用 另一种方法:用Listener Listener接口(Servlet2.3 Servlet2.3以上使用) • (1)建立一个Web项目,在web.xml中加入: contextConfigLocation 路径 org.springframework.web.context.ContextLoderLi stener 通过 WebApplicationContextUtils.getWebApplicationContext( application) 得到Bean
guokehua@yahoocom.cn Jy扩展方法L 让 Action具有 Spring的一些功能: 时·让 Action:继承 org. springframework. web. struts. Action Support 1010 org. Springframework. web. struts. DispatchAction Support org. springframework. web. struts. Mapping DispatchAction Support org. springframework. web.struts. LookupDispatchAction Support 它们有一个共同的方法: protected Webapplication Context get WebApplication Contexto 郭克华J2EE框架实战教学视频
oy Java! J guokehua@yahoo.com.cn 郭克华J2EE框架实战教学视频 扩展方法1 • 让Action具有Spring的一些功能: • 让Action继承: – org.springframework.web.struts. ActionSupport – org.springframework.web.struts.DispatchActionSupport – org.springframework.web.struts.MappingDispatchActionSupport – org.springframework.web.struts.LookupDispatchActionSupport • 它们有一个共同的方法: • protected WebApplicationContext getWebApplicationContext()
guokehua(@yahoo.com.cn Jy扩展方法2 整合点在哪里? Struts的 Action中,调用了 UserDAO我们 希望 Actionz和 UserDAO的耦合性降低,你 想采用什么办法? ·利用 Spring框架,将 Spring框架的配置文 件配置好,然后让 Action来读。 我们更加希望自动注入 。·最直观的想法是在配置文件里面配置 Action! 郭克华J2EE框架实战教学视频
oy Java! J guokehua@yahoo.com.cn 郭克华J2EE框架实战教学视频 扩展方法2 • 整合点在哪里? • Struts的Action中,调用了UserDAO,我们 希望Action和UserDAO的耦合性降低,你 想采用什么办法? • 利用Spring框架,将Spring框架的配置文 件配置好,然后让Action来读。 • 我们更加希望自动注入。 • 最直观的想法是在配置文件里面配置 Action!!
guokehua(@yahoo.com.cn oy Java 原理 将 Action看作 Spring里面的一个Bean 首先将提交用 Spring截获(到达 Action servlet之后,生成 Action之前),然 后由 Spring生成 Action对象,这样 Action Q类就成了 Spring里面的一个 Javabean 此时,这个 Action可以被动态注入 郭克华J2EE框架实战教学视频
oy Java! J guokehua@yahoo.com.cn 郭克华J2EE框架实战教学视频 原理 • 将Action看作Spring里面的一个Bean • 首先将提交用Spring截获(到达 ActionServlet之后,生成Action之前),然 后由Spring生成Action对象,这样Action 类就成了Spring里面的一个JavaBean • 此时,这个Action可以被动态注入
guokehua(@yahoo.com.cn y项目实例:srut+ Spring作模糊查询 l:建立 Struts工程,要求导入 Spring库,建立 Action Form, jsp ·将 Spring作为插件载入到 Struts struts- config.xm中增加如下部分 ·2:将 action的type属性改动:保证提交的内容能被 Spring截获 type=org. springframework. web. struts. Delegating ActionProxy path=m/query 增加转发 郭克华J2EE框架实战教学视频
oy Java! J guokehua@yahoo.com.cn 郭克华J2EE框架实战教学视频 项目实例:Struts+Spring Struts+Spring作模糊查询 • 1:建立Struts工程,要求导入Spring库,建立ActionForm,jsp • 将Spring作为插件载入到Struts:struts-config.xml中增加如下部分 • 2:将action的type属性改动:保证提交的内容能被Spring截获 type="org.springframework.web.struts.Delegating ActionProxy“ path= “/query” • 增加转发
guokehua(@yahoo.com.cn 了y项目实例 Struts+Spring 3:编写 application Context. xml 1010 你可以在这里通过属性注入任何东西 59 </beans Struts内 Action是单态以多线程运行请求代价 是线程的不安全性,可以通过 Spring控制 Action 的单态性,非单态类似CG,代价:内存消耗 郭克华J2EE框架实战教学视频
oy Java! J guokehua@yahoo.com.cn 郭克华J2EE框架实战教学视频 项目实例:Struts+Spring Struts+Spring • 3:编写applicationContext.xml 你可以在这里通过属性注入任何东西 • Struts内Action是单态,以多线程运行请求,代价 是:线程的不安全性,可以通过Spring控制Action 的单态性,非单态,类似CGI,代价:内存消耗