Struts+Ibtis+Spring整合基础案例

此案例是用Java Web创建,是Struts2+Ibatis+Spring的基础案例,是基础的整合。登录页面login.jsp提交后有UserAction控制,调用Service,Service调用DAO层,Dao中会调用Ibtis的Mapper类。

Spring核心配置

applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xmlns:aop="http://www.springframework.org/schema/aop"
 xmlns:context="http://www.springframework.org/schema/context"
 xsi:schemaLocation="http://www.springframework.org/schema/beans
 http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
 http://www.springframework.org/schema/context
 http://www.springframework.org/schema/context/spring-context-2.5.xsd
 http://www.springframework.org/schema/aop
 http://www.springframework.org/schema/aop/spring-aop-2.5.xsd">

<!--上面的配置引用文件不能写错-->

 

<!-- AOP配置-->

<aop:aspectj-autoproxy />

<!---<context:annotation-config /> 来方便地、一次性的声明者四个 BeanPostProcessor。--->
 <context:annotation-config />

<!---使用此配置可以省去<context:annotation-config />配置--->
 <context:component-scan base-package="com.sms" />
 
 <!---数据源的配置--->
 <bean id="myDataSources"
  class="org.springframework.jdbc.datasource.DriverManagerDataSource">
  <property name="driverClassName" value="com.mysql.jdbc.Driver" />
  <property name="url"
   value="jdbc:mysql://localhost:3306/lease?useUnicode=true&amp;characterEncoding=utf-8" />
  <property name="username" value="root" />
  <property name="password" value="Sun_1024" />
 </bean>

<!---SqlSessionFactory配置--->

 <bean id="sessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
  <property name="dataSource" ref="myDataSources" />
 </bean>

<!---Ibatis的mapper映射文件配置---->

 <bean id="mapper" class="org.mybatis.spring.mapper.MapperScannerConfigurer">
  <property name="sqlSessionFactory" ref="sessionFactory" />
  <property name="basePackage" value="com.sms.model.mapper" />
 </bean>

</beans>

 

控制层

package com.sms.web.action;

import javax.annotation.Resource;

import org.apache.struts2.convention.annotation.Result;
import org.apache.struts2.convention.annotation.Results;
import org.springframework.stereotype.Controller;

import com.opensymphony.xwork2.ActionSupport;
import com.sms.model.entity.User;
import com.sms.service.UserService;


@Controller
@Results( { @Result(name = "success", location = "/index.jsp"),
  @Result(name = "input", location = "/login.jsp") })
public class UserAction  extends ActionSupport{
 private User logUser;

 @Resource
 private UserService userService;
 // 登录验证
 public String checkLogin() {
  boolean flag = userService.validateUserLogin(logUser);
  if (flag) {
   return SUCCESS;
  }
  return INPUT;
 }

 public User getLogUser() {
  return logUser;
 }

 public void setLogUser(User logUser) {
  this.logUser = logUser;
 }

}

//Service层

//创建接口

package com.sms.service;

import com.sms.model.entity.User;

public interface UserService {
 // 登录验证
 public boolean validateUserLogin(User user);
}

//实现接口

package com.sms.service.impl;

import javax.annotation.Resource;
import org.springframework.stereotype.Service;

import com.sms.dao.UserDao;
import com.sms.model.entity.User;
import com.sms.service.UserService;

@Service
public class UserServiceImpl implements UserService {
 @Resource
 private UserDao userDao;
 
 public boolean validateUserLogin(User user) {
  String password = userDao.loginValidate(user.getUserName());
  if(password.equals(user.getUserPassword())){
   return true;
  }  
  return false;
 }

}

 

//Aop的类

package com.sms.service;

import org.aspectj.lang.annotation.AfterReturning;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.aspectj.lang.annotation.Pointcut;
import org.springframework.stereotype.Component;


@Component
@Aspect
public class Scrutiny {
 @Pointcut("execution(* com.sms.dao.impl.UserDaoImpl.*(..))")
 public void display(){
  
 }
 
 @Before("display()")
 public void before(){
  System.out.println("之前执行");
 }
 
 @AfterReturning("display()")
 public void afterReturning(){
  System.out.println("之后执行");
 }
}

//Ibatis的类

package com.sms.model.mapper;

import org.apache.ibatis.annotations.Select;

public interface UserMapper {
 String sqlLoginValidate = "select userPwd from userinfo where userName=#{name}";

 @Select(sqlLoginValidate)
 String findPwdByName(String name);
}

//实体类的创建

package com.sms.model.entity;

public class User {

 private String userName;
 private String userPassword;

 public String getUserName() {
  return userName;
 }

 public void setUserName(String userName) {
  this.userName = userName;
 }

 public String getUserPassword() {
  return userPassword;
 }

 public void setUserPassword(String userPassword) {
  this.userPassword = userPassword;
 }

}

//DAO层

//创建接口

package com.sms.dao;

public interface UserDao {
 //登录验证,根据帐号查询密码
 public String loginValidate(String userName);
}

//实现接口

package com.sms.dao.impl;

import javax.annotation.Resource;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;

import com.sms.dao.UserDao;
import com.sms.model.mapper.UserMapper;

@Repository
public class UserDaoImpl implements UserDao{

 @Resource
 private UserMapper userMapper;
 
 //登录验证,根据帐号查询密码
 public String loginValidate(String userName) {
  System.out.println("数据持久层"+userName);
  String  userPassword = userMapper.findPwdByName(userName);
  return userPassword;
 }

}

 

//login.jsp文件

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
   
    <title>My JSP 'login.jsp' starting page</title>
   
 <meta http-equiv="pragma" content="no-cache">
 <meta http-equiv="cache-control" content="no-cache">
 <meta http-equiv="expires" content="0">   
 <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
 <meta http-equiv="description" content="This is my page">
 <!--
 <link rel="stylesheet" type="text/css" href="styles.css">
 -->

  </head>
 
  <body>
    <form action="user!checkLogin.action">
     帐号:<input name="logUser.userName">
     密码:<input type="password" name="logUser.userPassword">
     <input type="submit" value="登录">
    </form>
  </body>
</html>

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值