restful +springside(hibernate+spring) 后台框架整合

本篇详情 [url=http://java.sharpren.com/read.php?tid=54&page=1&toread=1#tpc]http://java.sharpren.com/read.php?tid=54&page=1&toread=1#tpc 附源码[/url]

经过几天的业余时间折腾,终于整合了一个后台框架
有需对 rest 和springside 泛型 反射等深入了解的 可以访问
[url=http://java.sharpRen.com]http://java.sharpRen.com 犀利人javacoder 讨论区[/url]

具体是
1、controller 采用 restful 最近rest 正当流行 呵呵所以用下下
2、用springside 整合了 spring 和hibernate 感谢springside团队
3、统一采用annotation 注解方式 entity 采用JPA
4、用泛型 整合 基类封装了CRUD方法,对于复杂的 查询 给出query 接口 构造 fitler 来过滤
5、用springside的page类和hibernate 进行分页
6、特殊情况需要开 hql或者sql 接口的 可以直接继承 baseDao 可以开 session接口

哎 具体的太多了。。。介绍不完了 详情访问 犀利人http://sharpRen.com(做个广告望见谅)

具体看下面附件里的代码吧
附件 lib 需要自己加 否则 太大了。。。。不好意思 又需要 call me 具体问请在
http://java.sharpren.com 反馈 谢谢
部分代码展示
controller

@Controller
@RequestMapping("/user")
public class UserController extends BaseController {

@Autowired
private UserServiceImpl userServiceImpl;

/**
*
* addOrUpdateUserAjax
*
*
* @param user
* @return
*/
@RequestMapping(value = "{/ajax}", method = RequestMethod.POST)
@ResponseBody
public User addOrUpdateUserAjax(User user) {
this.userServiceImpl.saveOrUpdate(user);
return user;
}


service

/**
*
* UserServiceImpl.java
* 对于简单的CRUD 直接调用 基类的接口
*
* @author LiboLi
* @version $Revision:$ $Date:$
*extends BaseService<User, Integer> implements IUserService
*/
@Service
@Transactional
public class UserServiceImpl extends BaseService<User, Integer>{

public Page<User> queryByFilter(int pageNo,int pageSize,String username){
Page<User> page=new Page<User>();
page.setPageNo(pageNo);
page.setPageSize(pageSize);
List<PropertyFilter> filters =new ArrayList<PropertyFilter>();
PropertyFilter filter=new PropertyFilter("username", username, MatchType.LIKE);
filters.add(filter);
return this.query(page, filters);
}


BaseService

/**
*
* BaseService.java
*
*
* @author LiboLi
* @version $Revision:$ $Date:$
*
*/
@Service
@Transactional
public class BaseService<T,PK> extends EntityManager<T, Serializable>{

@Autowired
private BaseDAO<T,Serializable> baseDao;

@Override
protected HibernateDao<T, Serializable> getEntityDao() {
return baseDao;
}

}


EntityManage

@Transactional
public abstract class EntityManager<T, PK extends Serializable> {

protected Logger logger = LoggerFactory.getLogger(getClass());

protected Class<T> entityClass;

/**
* 通过子类的范型定义取得领域对象类型Class.
*
* eg.
* public class UserManager extends EntityManager<User, Long>
*/
public EntityManager() {
this.entityClass = ReflectionUtils.getSuperClassGenricType(getClass());
}

/**
* 在子类实现的回调函数,为EntityManager提供默认CRUD操作所需的DAO.
*/
protected abstract HibernateDao<T, PK> getEntityDao();

// CRUD函数 //

@Transactional(readOnly = true)
public T get(PK id) {
return getEntityDao().get(id);
}


entity

@Entity
@Table(name="user")
public class User extends BaseEntity {


@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private Integer id;


private String username;
private String password;

前台 web

<body>
welcome to my sharpRen.com framework
<form name="form1" action="/netskys/user" method="post">
<p><label>Username:</label><input name="username"></p>
<p><label>Password:</label><input name="password"></p>
<p><input type="submit" name="submitBtn" value="Submit"/></p>
</form>
</body>


以上 为简单代码
本篇详情 [url=http://java.sharpren.com/read.php?tid=54&page=1&toread=1#tpc]http://java.sharpren.com/read.php?tid=54&page=1&toread=1#tpc 附源码[/url]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值