博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SSH整合(一)——直接获取ApplicationContext
阅读量:6828 次
发布时间:2019-06-26

本文共 3323 字,大约阅读时间需要 11 分钟。

  一,引入jar包

              首先建立如下项目:

           

              接着,在项目中引入如下jar包:

             

                       

       

             楼主本人属于比较笨的那种,总是引丢了。。

   二,基本XML配置

                    

 1,首先是web.xml中,spring跟strut2的基本配置:

 

org.springframework.web.context.ContextLoaderListener
struts2
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
struts2
*

2,hibernate的连接配置

jdbc:mysql://localhost/testhibernate
org.hibernate.dialect.MySQLDialect
root
true
com.mysql.jdbc.Driver

3,编写实体bean,配置bean跟表的对应关系

 三,编写各层类

      

      1,数据访问DAO

     

package net.blogjava.nokiaguy.models;import java.util.List;import org.springframework.orm.hibernate3.HibernateTemplate;public class MapDAO {	private HibernateTemplate template; //需要spring-orm.jar包	public MapDAO(HibernateTemplate template){		this.template=template;	}	public String getValue(String keyword)			{		//在Spring中,不直接对Hibernate的Session进行操作,而是提供一个HibernateTemplate类来对Hibernate的Session进行操作。		List value=template.find("select a.value from MapEntity a where a.keyword=?",keyword); //注意引入spring-tx..这个开头的jar包		if(value.size()>0){			return String.valueOf(value.get(0));		}		return null;			}}

2,业务逻辑Bean

package net.blogjava.nokiaguy.models;public class MapService {	private MapDAO dao;	public MapService(MapDAO dao){		this.dao=dao;	}	//验证value是否等于lhc	public boolean validate(String keyword){		String value=dao.getValue(keyword);		//业务逻辑。。。。		if(value==null){			return false;		}else if("lhc".equalsIgnoreCase(keyword)){			return true;		}		return true;	}}

3,控制层Bean

package net.blogjava.nokiaguy.models;import javax.servlet.http.HttpServletRequest;import org.apache.struts2.interceptor.ServletRequestAware;import org.springframework.context.ApplicationContext;import org.springframework.web.context.support.WebApplicationContextUtils;public class FirstSSHAction implements ServletRequestAware {	private HttpServletRequest request;		public String execute(){		//获得ApplicationContext对象		ApplicationContext applicationContext=WebApplicationContextUtils.getWebApplicationContext(request.getSession().getServletContext());		//获得MapService对象		MapService mapService=(MapService)applicationContext.getBean("mapService");		//调用MapService类的validate方法,并在console中输出返回值		System.out.println(mapService.validate("lhc"));				return "success";	}	public void setServletRequest(HttpServletRequest request) {		// TODO Auto-generated method stub		this.request = request;	}}

四,Spring注入Bean

         如上代码,我们在获得ApplicationContext对象之后,通过这个对象的getBean方法,传入我们配置文件中配置的Bean的ID来注入Bean。

         我们在ssh.xml文件中添加如下注入方式:

         

     

      当在action中调用业务逻辑层组件的时候,通过spring初始化了DAO层组件,而初始化DAO层Bean的时候,我们又需要之前spring初始化Hibernate组件的结果作为参数。

      在这个XML文件中,我们将各层bean直接的依赖关系通过xml写在这里,一旦某曾出现变动,直接编写新的bean,更改这里的配置文件,完美实现各层的解耦合。

     PS:为了完成这个Demo,还需将这个配置文件引入applicationContext.xml文件:

        

      

      +在strut2.xml文件中配置action与jsp页面的对应关系。

       待续。。。

转载地址:http://ydfkl.baihongyu.com/

你可能感兴趣的文章
BarTender出现条码打印位置不准的情况怎么办
查看>>
SLES 10安装Oracle10gR2笔记
查看>>
Springmvc(常用注解)
查看>>
iis 7.0 asp.net发布问题
查看>>
批量动态生成二维码
查看>>
8张图理解Java
查看>>
centos定时备份远程FTP文件
查看>>
oracle 保留小数位
查看>>
eval
查看>>
zabbix监控系统之监控nginx
查看>>
WEB服务之apache优化
查看>>
windows azure通过powershell打开关闭虚拟机
查看>>
安装Nginx过程全解析
查看>>
HTML5 Canvas动画效果演示
查看>>
SpringMvc新建实例配置
查看>>
XtraBackup完全、增量备份及恢复
查看>>
beego的session使用方法
查看>>
怎样才能开发出好的软件
查看>>
Linux编译程序时的一些注意事项
查看>>
linux温故知新二
查看>>