applicationContext.xml
配置扫描包位置,因为本人包目录不存在com之类的上层包,而base-package只写*会报错,所以需要分别配置。
<!-- 自动扫描与装配bean -->
<context:component-scan base-package="action" />
<context:component-scan base-package="service.impl" />
<context:component-scan base-package="dao.impl" />
struts.xml
<!--struts.objectFactory = spring 将action的创建交给spring容器 -->
<constant name="struts.objectFactory" value="spring" />
action
Controller value的值为struts.xml中action class的值
action中scope一定是多例的
@Controller(value="userAction")
@Scope(value="prototype")
public class UserAction extends ActionSupport implements ModelDriven<User> {
User user = new User();
@Autowired
private UserService userService;
}
<!--struts.objectFactory = spring 将action的创建交给spring容器 -->
<action name="UserAction_*" class="userAction" method="{1}">
service.impl
Service的值为借口实现的类名
@Service(value="UserService")
public class UserServiceImpl implements UserService {
@Autowired
private UserDao userDao;
}
dao.impl
@Repository(value="UserDao")
public class UserDaoImpl implements UserDao {
@Autowired
private SessionFactory sessionFactory;
}
注解的方式会省去xml里很大一部分配置bean的空间。
本文详细介绍如何在Spring框架下整合Struts,包括配置applicationContext.xml进行包扫描、使用注解方式减少XML配置、设置struts.objectFactory为spring以及具体实现Controller、Service和DAO层的实例化与依赖注入。
406

被折叠的 条评论
为什么被折叠?



