IoC容器+Web层框架+ORM框架的实现

一个IoC容器+Web层框架+ORM框架的简单实现(适用于学习用) 类似于SSH实现。

在学习期间写的,实现相对简单。欢迎下载。

涉及技术点:

    反射、注解、配置文件、动态代理

实现了:

    IoC AOP Web层框架 ORM框架 。

1、Web层代码示例:

package cn.javass.test.action;  
  
import cn.javass.framework.ioc.annotation.IInject;  
import cn.javass.framework.web.annotation.IAction;  
import cn.javass.framework.web.annotation.IGoto;  
import cn.javass.framework.web.core.Action;  
import cn.javass.framework.web.core.ActionContext;  
import cn.javass.test.model.UserModel;  
import cn.javass.test.service.UserService;  
@IAction(path="/user",  
         result={@IGoto(key="success",path="test.jsp")}  
        )  
public class UserAction implements Action{  
    @IInject(id="userService")  
    private UserService userService;  
  
    public void setUserService(UserService userService) {  
        this.userService = userService;  
    }  
      
    private UserModel um = new UserModel();  
  
    @Override  
    public String execute() {  
        System.out.println("======="+um.toString());  
        try{  
            userService.save(um);  
    //      userService.save(um);  
        }catch (Exception e) {  
            System.out.println(e.getMessage());  
        }  
          
        um.getAddress().setAddress("zhangjavassp");  
        ActionContext.getContext().put("haha", "hahahhahaa");  
    //  userService.save(um);  
        return "success";  
    }  
  
    public UserModel getUm() {  
        return um;  
    }  
  
    public void setUm(UserModel um) {  
        this.um = um;  
    }  
      
}  

2、DAO层代码示例

package cn.javass.test.dao.impl;  
  
import cn.javass.framework.ioc.annotation.IService;  
import cn.javass.framework.ioc.annotation.Scope;  
import cn.javass.framework.orm.impl.BaseDAOImpl;  
import cn.javass.test.dao.UserDao;  
  
  
@IService(id="userDao",scope=Scope.singleton)  
public class UserDaoImpl extends BaseDAOImpl implements UserDao{  
      
}  

3、服务层代码示例

package cn.javass.test.service.impl;  
  
import java.util.List;  
  
import cn.javass.framework.aop.annotation.IInterceptor;  
import cn.javass.framework.aop.transaction.TransactionManagerInterceptor;  
import cn.javass.framework.ioc.annotation.IInject;  
import cn.javass.framework.ioc.annotation.IService;  
import cn.javass.framework.ioc.annotation.Scope;  
import cn.javass.test.dao.UserDao;  
import cn.javass.test.interceptor.MyInterceptor;  
import cn.javass.test.model.UserModel;  
import cn.javass.test.service.UserService;  
  
  
@IService(id="userService")  
public class UserServiceImpl implements UserService{  
      
    @IInject(id="userDao")  
    private UserDao userDao ;  
      
  
    public void setUserDao(UserDao userDao) {  
        this.userDao = userDao;  
    }  
    @IInterceptor(classes={MyInterceptor.class,TransactionManagerInterceptor.class})  
    @Override  
    public boolean delete(UserModel um) {  
        return this.userDao.delete(um);  
    }  
    @IInterceptor(classes={MyInterceptor.class,TransactionManagerInterceptor.class})  
    @Override  
    public List<UserModel> getAll(UserModel um) {  
        return this.userDao.getAll(um.getClass());  
    }  
    @IInterceptor(classes={MyInterceptor.class,TransactionManagerInterceptor.class})  
    @Override  
    public boolean save(UserModel um) {  
        return this.userDao.save(um);  
    }  
  
}  

学习期间写的,实现相对简单。

相关推荐