java之spring之整合ssh-2


这篇也是主要讲解 ssh 的整合,不同于上一篇的是它的注入方式。

这篇会采用扫描注入的方式,即去除 applicationContext-asd.xml 文件。

目录结构如下:

注意,这里只列举不同的文件

1. 首先,我们看下 applicationContext-dao.xml 文件

<?xml version="1.0" encoding="UTF-8"?>

    xmlns:aop="http://www.springframework.org/schema/aop"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:tx="http://www.springframework.org/schema/tx"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd 
        http://www.springframework.org/schema/aop
        http://www.springframework.org/schema/aop/spring-aop.xsd 
        http://www.springframework.org/schema/tx
        http://www.springframework.org/schema/tx/spring-tx.xsd 
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context.xsd">
  class="org.springframework.jdbc.datasource.DriverManagerDataSource">
      
      
      
      
  
  
  class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
      
      
      
          
              org.hibernate.dialect.MySQLDialect
              true
              true
          
      
      
      
          
              cn.vincent.vo.User
              cn.vincent.vo.Role
          
      
  
  
  
  class="org.springframework.orm.hibernate4.HibernateTransactionManager">
      
  
  
  
      
          
          
          
          
          
      
  
  
    
        
        
        
     
     
  package="cn.vincent">

2.UserDaoImpl 文件

package cn.vincent.dao.impl;

import java.util.List;

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

import cn.vincent.dao.UserDao;
import cn.vincent.vo.User;

//相当于  
@Repository("userDao")
public class UserDaoImpl implements UserDao{
    //自动注入 在容器中查询 是否存在对应的bean
    @Autowired
    private SessionFactory sessionFactory;
    @Override
    public List findAll() {
        return sessionFactory.getCurrentSession().createQuery("from User").list();
    }
    public void setSessionFactory(SessionFactory sessionFactory) {
        this.sessionFactory = sessionFactory;
    }

    
}

3. UserServiceImpl 文件

package cn.vincent.service.impl;

import java.util.List;

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

import cn.vincent.dao.UserDao;
import cn.vincent.service.UserService;
import cn.vincent.vo.User;

@Service("userService")
public class UserServiceImpl implements UserService{

    @Autowired
    private UserDao userDao;
    @Override
    public List findAll() {
        return userDao.findAll();
    }

    public void setUserDao(UserDao userDao){
        this.userDao=userDao;
    }
}

4. UserAction.java 文件

package cn.vincent.action;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;

import com.opensymphony.xwork2.Action;

import cn.vincent.service.UserService;
import cn.vincent.vo.User;

@Controller
@Scope("prototype")
public class UserAction {

    private List list;
    @Autowired
    private UserService userService;
    
    public String list(){
        list=userService.findAll();
        return Action.SUCCESS;
    }
    
    
    public List getList() {
        return list;
    }
    public void setList(List list) {
        this.list = list;
    }
    public UserService getUserService() {
        return userService;
    }
    public void setUserService(UserService userService) {
        this.userService = userService;
    }
    
    
}

以上,就是采用注解的方式,来自动扫描,实现注入的目的。其他与上一篇相同

github地址:

https://github.com/Vincent-yuan/spring_ssh2

相关