Eclipse+Struts2+Spring+MyBatis环境搭建(6)

2019-03-16 17:51

新建好package

在Java Resources -》src下新建出如下package: ? com.jsdz.action --action ? com.jsdz.dao--数据库访问

? com.jsdz.exception--自定义异常 ? com.jsdz.interceptor--拦截器 ? com.jsdz.model--模型对象

? com.jsdz.service --业务接口

? com.jsdz.service.impl--业务接口实现 ? com.jsdz.test --测试目录 ? com.jsdz.util --工具类

? com.jsdz.xml--mybatis映射XML

在applicationContext.xml中添加组件注入选项

这里配置成spring中注解+自动扫描方式,相对XML文件配置简化得多。 @Repository:DAO层组件,@Service:业务层组件,@Controller:控制层组件

xmlns:jdbc=\

xmlns:context=\ xsi:schemaLocation=\

http://www.springframework.org/schema/context

http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/jdbc

http://www.springframework.org/schema/jdbc/spring-jdbc-3.0.xsd http://www.springframework.org/schema/tx

http://www.springframework.org/schema/tx/spring-tx-3.0.xsd http://www.springframework.org/schema/aop

http://www.springframework.org/schema/aop/spring-aop-3.0.xsd\>

通过这部分设置相应几类组件都自动装载注入,但依赖于代码上添加有注解。

将action的创建托管给spring容器

修改LoginAction.java代码,添加注解,使之能够被spring自动创建。

packagecom.jsdz.action;

importorg.springframework.context.annotation.Scope; importorg.springframework.stereotype.Controller; import com.opensymphony.xwork2.ActionSupport;

@Scope(\)

@Controller(\)

publicclassLoginActionextendsActionSupport {

private String username ;

private String password ;

@Override

public String execute() throws Exception {

System.out.println(\);

if(username.equals(\) &&password.equals(\) ) {

System.out.println(\);

returnSUCCESS; } else {

System.out.println(\); returnINPUT ; } }

public String getUsername() {

returnusername; } publicvoidsetUsername(String username) { this.username = username; } public String getPassword() { returnpassword; } publicvoidsetPassword(String password) { this.password = password; } }

修改struts.xml配置文件,使action的创建托管给spring。 /main.jsp /login.jsp 上面的class取值保持与@Controller(\括号中的值一致,默认是类名首字母小写。

到此可以做两种测试:

1) 去掉LoginAction.java中的注解,验证spring是否能创建对象实例;

2) 修改LoginAction.java中注解的命名,验证login.jsp是否能访问到对应的action

验证业务组件的自动注入

1. 创建业务组件接口以及两个实现类:LoginService、LoginServiceImpl,LoginServiceImpl2

在action中不再自己负责逻辑判断,提交给LoginService来处理业务。这里创建两个实现类主要是验证当有多个实现类时如何选择注入。

LoginService.java packagecom.jsdz.service; import … @Scope(\) @Service(\) publicinterfaceLoginService { booleanIsLogin(String userName,StringpassWord ) ; } 由于这个业务类中不包含任何成员变量,属于无状态类,因此可以定义创建为单实例。

LoginServiceImpl.java

packagecom.jsdz.service.impl;

import …

@Scope(\)

@Service(\)

publicclassLoginServiceImplimplementsLoginService {

@Override

publicbooleanIsLogin(String userName, String passWord) {

System.out.println(\);

if(userName.equals(\) &&passWord.equals(\)) returntrue;

returnfalse; } }

LoginServiceImpl2.java packagecom.jsdz.service.impl; import… @Scope(\) @Service(\) publicclass LoginServiceImpl2 implementsLoginService { @Override publicbooleanIsLogin(String userName, String passWord) { System.out.println(\); if(userName.equals(\) &&passWord.equals(\)) returntrue; returnfalse; } } 修改LoginAction.java

packagecom.jsdz.action; ….

@Scope(\)

@Controller(\)

publicclassLoginActionextendsActionSupport {

private String username ;

private String password ;

@Autowired

@Qualifier(\) privateLoginServiceloginService ;

@Override

public String execute() throws Exception {

System.out.println(\);

//if(username.equals(\ if(loginService.IsLogin(username, password)) {

System.out.println(\);

returnSUCCESS; } else {

System.out.println(\); returnINPUT ; }


Eclipse+Struts2+Spring+MyBatis环境搭建(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:德威工程9月9日安全日活动总结

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: