平时都是s2sh在整合使用,今天发现一个问题。我spring和hibernate的整合起来,我把dao和service交给spring。然后相应的注入进去。但是我action不交给spring,也是可以的。那么为什么要整合struts2和spring呢?
我代码大体如下:
struts.xml:<!--我的action这样就是由struts2管理的吧-->
<struts>
<package name="Aaction" extends="struts-default">
<action name="a" class="com.gy_center.action.SysUserAction"></action>
</package>
</struts>Action如下:
public class SysUserAction extends ActionSupport{
private static final long serialVersionUID = 1L;
@Resource
private ISysUserService sysUserService;
@Override
public String execute() throws Exception {
sysUserService.save();
return null;
}
}service:如下(下面是实现类,接口不贴了)
@Service
public class SysUserServiceImpl implements ISysUserService{
@Resource(name="sysUserDao")
private ISysUserDao sysUserDao;
public void save() {
SysUser sysUser=new SysUser();
sysUser.setUsername("车认识");
sysUserDao.save(sysUser);
}
}
Dao如下:、
@Repository
public class SysUserDao extends HibernateDaoSupport implements ISysUserDao {
@Resource(name="sessionFactory")
public void setBaseSessionFactory(SessionFactory sessionFactory){
super.setSessionFactory(sessionFactory);
}
..........//其余操作方法。
}
整个框架我采用spring的自动扫描的方式来管理bean。但是我的action上并没有注解@Controller,说明spring无法扫描到这个action,也不会生成这个action的实例。
这样一样说明我的struts2并没有和spring整合。
但是上面的例子完全是可以运行的。可以成功向数据库插入数据。
我想问问大家,那为什么还要把action交给spring去管理呢。????
求真理!!!!!!!!!
Spring管理Struts
我代码大体如下:
struts.xml:<!--我的action这样就是由struts2管理的吧-->
<struts>
<package name="Aaction" extends="struts-default">
<action name="a" class="com.gy_center.action.SysUserAction"></action>
</package>
</struts>Action如下:
public class SysUserAction extends ActionSupport{
private static final long serialVersionUID = 1L;
@Resource
private ISysUserService sysUserService;
@Override
public String execute() throws Exception {
sysUserService.save();
return null;
}
}service:如下(下面是实现类,接口不贴了)
@Service
public class SysUserServiceImpl implements ISysUserService{
@Resource(name="sysUserDao")
private ISysUserDao sysUserDao;
public void save() {
SysUser sysUser=new SysUser();
sysUser.setUsername("车认识");
sysUserDao.save(sysUser);
}
}
Dao如下:、
@Repository
public class SysUserDao extends HibernateDaoSupport implements ISysUserDao {
@Resource(name="sessionFactory")
public void setBaseSessionFactory(SessionFactory sessionFactory){
super.setSessionFactory(sessionFactory);
}
..........//其余操作方法。
}
整个框架我采用spring的自动扫描的方式来管理bean。但是我的action上并没有注解@Controller,说明spring无法扫描到这个action,也不会生成这个action的实例。
这样一样说明我的struts2并没有和spring整合。
但是上面的例子完全是可以运行的。可以成功向数据库插入数据。
我想问问大家,那为什么还要把action交给spring去管理呢。????
求真理!!!!!!!!!
Spring管理Struts
解决方案 »
- struts2配置完,没有反应
- 数据字典
- showModalDialog问题
- Java代码编写的针对性指导
- 关于webservice的问题,急
- 急,是高手进来看看小弟的这个问题吧!!!
- 關於打開文件(word,excel,.pdf)格式文件操作難點,急!!!!
- 请问哪些MIDP1.0的手机支持socket?
- J2EE的配置问题!! 请帮忙 !!!多谢了!一定给分!!!!
- response是怎样响应客户端的?
- HTTP Status 500 - /index.jsp (line: 2, column: 40) File "/struts-tags" not found
- tomcat无法运行一个struts2项目,跪求解决办法
<bean type="com.opensymphony.xwork2.ObjectFactory" name="struts" class="org.apache.struts2.impl.StrutsObjectFactory" />
但是在整合的时候,需要交给spring来管理,这个是为了项目整体方便管理,毕竟bean由struts和spring两个容器来管理,是比较混乱的做法,在整合的时候加入下面这句:<constant name="struts.objectFactory" value="spring"/>
这里的value="spring"所对应的class类也是从struts的ObjectFactory继承而来