使用MyEclipse6开发Struts+Spring应用程序(4)

 
4 、分离业务逻辑
l        Action 应该只负责画面迁移的控制,而业务逻辑的具体细节应该封装到业务层, Action 只要调用业务接口就行了
l        这里将 Action 中的业务逻辑移到业务类中,并使用 Spring Bean 机制进行管理
1 创建业务接口和业务类
l        业务接口
public interface UserService {
    public boolean isUserValid(String userid, String password);
}
l        业务类
public class UserServiceImpl implements UserService {
    public boolean isUserValid(String userid, String password) {
        return "123456".equals(password);
    }
}
2 追加 Spring 能力
l        右击Samples工程,MyEclipse -> Add Spring Capabilities:
l        为了减少不需要的jar文件发布到工程中,这里指向BuildPath追加Spring2.0 Core Libraries,其他需要的jar文件手工追加:
Ø        spring-aop.jar
Ø        spring-dao.jar
Ø        spring-remoting.jar
Ø        spring-struts.jar
Ø        spring-support.jar
Ø        spring-web.jar
(3) 修改struts-config.xml
l        使用Spring的代理 RequestProcessor 替代Struts缺省的RequestProcessor:
    <controller
        processorClass="org.springframework.web.struts.DelegatingRequestProcessor" />
l        注册Spring的Struts Plugin,指定Bean配置文件路径:
    <plug-in
        className="org.springframework.web.struts.ContextLoaderPlugIn">
        <set-property property="contextConfigLocation"
            value="/WEB-INF/classes/org/xqtu/samples/bean/samples-services.xml,
                   /WEB-INF/classes/org/xqtu/samples/bean/samples-actions.xml" />
    </plug-in>
l        Spring 支持多Bean配置文件,这里按功能层次在不同Bean文件中定义
(4) 定义Bean文件
l        samples-services.xml
    <bean id="userService"
        class="org.xqtu.samples.service.impl. UserServiceImpl ">
    </bean>
l        samples-actions.xml
    <bean name=" /login "
        class="org.xqtu.samples.web.action.LoginAction">
        <property name="userService" ref="userService" />
    </bean>
l        注意, name 属性的值要和 struts-config.xml 中Action的path属性相同
5 Action 类注入 业务接口
    private UserService userService;
 
    public void setUserService(UserService userService) {
        this.userService = userService;
    }
l        注意,这里定义是 UserService 接口,而Bean文件中定义的是实现类 UserServiceImpl
(6) 修改Action类,调用业务方法
        if ( userService.isUserValid (loginForm.getUserid(), loginForm
                .getPassword())) {
            request.setAttribute("userid", loginForm.getUserid());
            return mapping.findForward("success");
        }
(7) 显示Spring的Log信息
l        为了在控制台显示Spring的Log信息,可以在src目录下追加log4j.properties:
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %p %c - %m%n
log4j.rootLogger=INFO, stdout
log4j.logger.org.springframework=DEBUG
 
 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值