[议论]J2EE项目自动生成工具
[讨论]J2EE项目自动生成工具
最近在做一个代码自动生成工具,下面的代码是自动生成的,欢迎大家讨论生成的代码有什么地方需要修改的。
变量名和包名等信息都是生成的时候配置文件配置的。
在线演示地址:http://java.jshuwei.org.cn:8080
代码看得闲累的话直接下载源代码吧:查看源代码(代码附件太大,只能放我自己博客中提供下载了,请见谅!)
BaseAction.java:
AddressAction.java
Constant.java
JshuweiContext.java
MyFilter.java
IAddressDao.java
IBaseDao.java
AddressDao.java
BaseDao.java
Address.java
IAddressService.java
IBaseService.java
AddressService.java
BaseService.java
省去配置文件和web端代码,实在是太多了,各位还是直接下载源代码直接查看讨论吧!
附件太大了,这里上传不了,只能发到我自己的博客里下载!
楼主,你工作是不是2年左右啊?
我也是这么认为的,在写这个工具的时候就感觉view端比较的难写。但还是生成了简单的view。用extjs做的,只有增删改查,还有权限控制。
这只是第一版本,而且是常规的SSH2版本,分布式部署的还没有发布。现在只是测试,写的好的话就不用费神了。就是想让这个工具变得好才拿出来让大家讨论下改进的。不凡说说你的具体看法
最近在做一个代码自动生成工具,下面的代码是自动生成的,欢迎大家讨论生成的代码有什么地方需要修改的。
变量名和包名等信息都是生成的时候配置文件配置的。
在线演示地址:http://java.jshuwei.org.cn:8080
代码看得闲累的话直接下载源代码吧:查看源代码(代码附件太大,只能放我自己博客中提供下载了,请见谅!)
BaseAction.java:
package cn.org.jshuwei.j2ee.test.action; import cn.org.jshuwei.j2ee.test.core.JshuweiContext; import cn.org.jshuwei.j2ee.util.StringUtil; import com.opensymphony.xwork2.ActionSupport; import org.apache.struts2.interceptor.ServletRequestAware; import org.apache.struts2.interceptor.ServletResponseAware; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.util.List; import java.util.ArrayList; import java.util.Map; import java.lang.reflect.Constructor; import java.lang.reflect.Field; import java.lang.reflect.Method; import java.io.IOException; import java.io.PrintWriter; /** * Copyright 2009 huwei(jshuwei.org.cn) * Generate by huwei's generate Util * 本类由胡伟j2ee自动生成工具生成,欢迎与作者交流讨论, * <p>联系方式:<br>Web:http://jshuwei.org.cn <br>Email:huwei@jshuwei.org.cn<br>QQ:772627301<p/> */ public class BaseAction extends ActionSupport implements ServletRequestAware, ServletResponseAware { private static final long serialVersionUID = 1L; protected HttpServletRequest request; protected HttpServletResponse response; private String serviceId; private String serviceName; private int eventCode; protected Object requestObj; private int id; private int start; private int limit = 25; public void setServletRequest(HttpServletRequest httpServletRequest) { request = httpServletRequest; } public void setServletResponse(HttpServletResponse httpServletResponse) { response = httpServletResponse; } public HttpServletRequest getRequest() { return request; } public void setRequest(HttpServletRequest request) { this.request = request; } public HttpServletResponse getResponse() { return response; } public void setResponse(HttpServletResponse response) { this.response = response; } public String getServiceId() { return serviceId; } public void setServiceId(String serviceId) { this.serviceId = serviceId; } public String getServiceName() { return serviceName; } public void setServiceName(String serviceName) { this.serviceName = serviceName; } public int getEventCode() { return eventCode; } public void setEventCode(int eventCode) { this.eventCode = eventCode; } public Object getRequestObj() { return requestObj; } public void setRequestObj(Object requestObj) { this.requestObj = requestObj; } public int getId() { return id; } public void setId(int id) { this.id = id; } public int getStart() { return start; } public void setStart(int start) { this.start = start; } public int getLimit() { return limit; } public void setLimit(int limit) { this.limit = limit; } @SuppressWarnings("unchecked") public JshuweiContext generateJshuweiContext() { JshuweiContext jshuweiContext = new JshuweiContext(); if (serviceId != null || !"".equals(serviceId)) jshuweiContext.setServiceId(serviceId); if (serviceName != null || !"".equals(serviceName)) jshuweiContext.setServiceName(serviceName); if (eventCode != 0) jshuweiContext.setEventCode(eventCode); if (eventCode % 100 ==1) setRequestObj(new Integer[]{start,limit}); if (eventCode % 100 ==2 || eventCode % 100 ==6) setRequestObj(new Integer(id)); if (eventCode % 100 ==3) { List list = new ArrayList(); list.add(generateEntity()); list.add(new Integer[]{start,limit}); setRequestObj(list); } if (eventCode % 100 ==4 || eventCode % 100 ==5) setRequestObj(generateEntity()); if (requestObj != null) jshuweiContext.setRequestObj(requestObj); return jshuweiContext; } @SuppressWarnings("unchecked") public Object generateEntity() { Map map = request.getParameterMap(); String className = StringUtil.firstToUpper(serviceName.substring(0,serviceName.lastIndexOf("Service"))); try { Class c = Class.forName("cn.org.jshuwei.j2ee.test.entity." + className); Object obj = c.newInstance(); Field[] fields = c.getDeclaredFields(); for (Field field:fields) { String fieldName = field.getName(); if(null!=map.get(fieldName)){ field.setAccessible(true); Method method = obj.getClass().getMethod("set"+StringUtil.firstToUpper(fieldName), field.getType()); Constructor con = field.getType().getConstructor(String.class); Object o = con.newInstance(((Object[])(map.get(fieldName)))[0]); method.invoke(obj, o); } } return obj; } catch (Exception e) { e.printStackTrace(); return null; } } public void outputResult(String result){ try { response.setCharacterEncoding("utf-8"); PrintWriter out = response.getWriter(); out.write(result); out.flush(); out.close(); } catch (IOException e) { e.printStackTrace(); } } }
AddressAction.java
package cn.org.jshuwei.j2ee.test.action; import cn.org.jshuwei.j2ee.test.service.IAddressService; import cn.org.jshuwei.j2ee.util.JsonUtils; import cn.org.jshuwei.j2ee.test.core.JshuweiContext; import cn.org.jshuwei.j2ee.test.entity.Address; import cn.org.jshuwei.j2ee.test.core.Constant; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; /** * Copyright 2009 huwei(jshuwei.org.cn) * Generate by huwei's generate Util * 本类由胡伟j2ee自动生成工具生成,欢迎与作者交流讨论, * <p>联系方式:<br>Web:http://jshuwei.org.cn <br>Email:huwei@jshuwei.org.cn<br>QQ:772627301<p/> */ @SuppressWarnings("unchecked") public class AddressAction extends BaseAction { private static final long serialVersionUID = 1L; @Autowired private IAddressService addressService; JshuweiContext jshuweiContext; private String ret = ""; public void list(){ doExecute(); if(doPre()){ ret = "{total:"+jshuweiContext.getTotalNum()+",results:"+JsonUtils.listToJson((List<Address>)jshuweiContext.getReturnObject())+"}"; }else{ ret = "{success:true,message:'"+jshuweiContext.getReturnMsg()+"'}"; } outputResult(ret); } public void add(){ doExecute(); ret = "{success:true,message:'"+jshuweiContext.getReturnMsg()+"'}"; outputResult(ret); } public void mod(){ doExecute(); ret = "{success:true,message:'"+jshuweiContext.getReturnMsg()+"'}"; outputResult(ret); } public void del(){ doExecute(); ret = jshuweiContext.getReturnMsg(); outputResult(ret); } public void get(){ doExecute(); if(doPre()){ ret = "{total:"+jshuweiContext.getTotalNum()+",results:"+JsonUtils.beanToJson(jshuweiContext.getReturnObject())+"}"; }else{ ret = "{success:true,message:'"+jshuweiContext.getReturnMsg()+"'}"; } outputResult(ret); } private void doExecute(){ jshuweiContext = generateJshuweiContext(); addressService.execute(jshuweiContext); } private boolean doPre(){ String returnCode = jshuweiContext.getReturnCode(); if(Constant.BAD_RETURN_CODE.equals(returnCode)){ return false; } return true; } }
Constant.java
package cn.org.jshuwei.j2ee.test.core; /** * Copyright 2009 huwei(jshuwei.org.cn) * Generate by huwei's generate Util * 本类由胡伟j2ee自动生成工具生成,欢迎与作者交流讨论, * <p>联系方式:<br>Web:http://jshuwei.org.cn <br>Email:huwei@jshuwei.org.cn<br>QQ:772627301<p/> */ public class Constant { public static final String BAD_RETURN_CODE = "500";//请求错误 public static final String GOOD_RETURN_CODE = "200";//请求处理正常 public static final String BAD_SERVICE_MESSAGE = "请求的服务不存在";//服务请求不存在 public static final String FAIL_SERVICE_MESSAGE = "服务处理错误";//服务处理错误 public static final String SAVE_SECCESS = "保存成功"; public static final String Update_SECCESS = "修改成功"; public static final String Delete_SECCESS = "删除成功"; public static final String ADDRESS_SERVICE_ID = "1001"; public static final int ADDRESS_SERVICE_GETALL_EVENT = 101; public static final int ADDRESS_SERVICE_GETBYID_EVENT = 102; public static final int ADDRESS_SERVICE_GETBYPROPERTY_EVENT = 103; public static final int ADDRESS_SERVICE_Update_EVENT = 104; public static final int ADDRESS_SERVICE_SAVE_EVENT = 105; public static final int ADDRESS_SERVICE_Delete_EVENT = 106; public static final int ADDRESS_SERVICE_GETNUM_EVENT = 107; }
JshuweiContext.java
package cn.org.jshuwei.j2ee.test.core; /** * Copyright 2009 huwei(jshuwei.org.cn) * Generate by huwei's generate Util * 本类由胡伟j2ee自动生成工具生成,欢迎与作者交流讨论, * <p>联系方式:<br>Web:http://jshuwei.org.cn <br>Email:huwei@jshuwei.org.cn<br>QQ:772627301<p/> */ public class JshuweiContext { private String serviceId;//请求服务ID号 private String serviceName;//服务名称 private int eventCode;//请求代码 private Object requestObj;//请求用到的参数封装后对象 private String returnCode;//返回代码 private String returnMsg;//返回消息 private Object returnObject;//返回对象 private int totalNum;//记录总数 public String getServiceId() { return serviceId; } public void setServiceId(String serviceId) { this.serviceId = serviceId; } public String getServiceName() { return serviceName; } public void setServiceName(String serviceName) { this.serviceName = serviceName; } public int getEventCode() { return eventCode; } public void setEventCode(int eventCode) { this.eventCode = eventCode; } public Object getRequestObj() { return requestObj; } public void setRequestObj(Object requestObj) { this.requestObj = requestObj; } public String getReturnCode() { return returnCode; } public void setReturnCode(String returnCode) { this.returnCode = returnCode; } public String getReturnMsg() { return returnMsg; } public void setReturnMsg(String returnMsg) { this.returnMsg = returnMsg; } public Object getReturnObject() { return returnObject; } public void setReturnObject(Object returnObject) { this.returnObject = returnObject; } public int getTotalNum(){ return totalNum; } public void setTotalNum(int totalNum){ this.totalNum = totalNum; } }
MyFilter.java
package cn.org.jshuwei.j2ee.test.core; import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * Copyright 2009 huwei(jshuwei.org.cn) * Generate by huwei's generate Util * 本类由胡伟j2ee自动生成工具生成,欢迎与作者交流讨论, * <p>联系方式:<br>Web:http://jshuwei.org.cn <br>Email:huwei@jshuwei.org.cn<br>QQ:772627301<p/> */ public class MyFilter implements Filter { private String characterEncoding = "utf-8"; public void init(FilterConfig config) throws ServletException { if (config.getInitParameter("characterEncoding") != null && !config.getInitParameter("characterEncoding").equals("")) { this.characterEncoding = config .getInitParameter("characterEncoding"); } } public void doFilter(ServletRequest request0, ServletResponse response0, FilterChain chain) throws IOException, ServletException { HttpServletRequest request = (HttpServletRequest)request0; HttpServletResponse response = (HttpServletResponse)response0; request.setCharacterEncoding(this.characterEncoding); response.setCharacterEncoding(this.characterEncoding); response.setHeader("Cache-Control", "no-store"); response.setHeader("Pragma", "no-cache"); response.setDateHeader("Expires", 0); chain.doFilter(request, response); } public void destroy() { } }
IAddressDao.java
package cn.org.jshuwei.j2ee.test.dao; import cn.org.jshuwei.j2ee.test.entity.Address; import java.util.List; /** * Copyright 2009 huwei(jshuwei.org.cn) * Generate by huwei's generate Util * 本类由胡伟j2ee自动生成工具生成,欢迎与作者交流讨论, * <p>联系方式:<br>Web:http://jshuwei.org.cn <br>Email:huwei@jshuwei.org.cn<br>QQ:772627301<p/> */ public interface IAddressDao extends IBaseDao { Address loadAddressById(int id); List<Address> getAllAddresss(int start, int limit); List<Address> getAllAddresss(); }
IBaseDao.java
package cn.org.jshuwei.j2ee.test.dao; import java.util.List; /** * Copyright 2009 huwei(jshuwei.org.cn) * Generate by huwei's generate Util * 本类由胡伟j2ee自动生成工具生成,欢迎与作者交流讨论, * <p>联系方式:<br>Web:http://jshuwei.org.cn <br>Email:huwei@jshuwei.org.cn<br>QQ:772627301<p/> */ public interface IBaseDao { void save(Object obj); void delete(Object obj); void update(Object obj); @SuppressWarnings("unchecked") List queryByExample(Object obj, int start, int limit); }
AddressDao.java
package cn.org.jshuwei.j2ee.test.dao.impl; import org.springframework.stereotype.Repository; import cn.org.jshuwei.j2ee.test.entity.Address; import cn.org.jshuwei.j2ee.test.dao.IAddressDao; import java.util.List; /** * Copyright 2009 huwei(jshuwei.org.cn) * Generate by huwei's generate Util * 本类由胡伟j2ee自动生成工具生成,欢迎与作者交流讨论, * <p>联系方式:<br>Web:http://jshuwei.org.cn <br>Email:huwei@jshuwei.org.cn<br>QQ:772627301<p/> */ @Repository public class AddressDao extends BaseDao implements IAddressDao { public Address loadAddressById(int id){ String hql = "from Address where id=:id"; return (Address)sessionFactory.getCurrentSession().createQuery(hql).setInteger("id", id).uniqueResult(); } @SuppressWarnings("unchecked") public List<Address> getAllAddresss(int start, int limit){ String hql = "from Address"; if(limit==0) limit=20; return sessionFactory.getCurrentSession().createQuery(hql).setFirstResult(start).setMaxResults(limit).list(); } @SuppressWarnings("unchecked") public List<Address> getAllAddresss(){ String hql = "from Address"; return sessionFactory.getCurrentSession().createQuery(hql).list(); } }
BaseDao.java
package cn.org.jshuwei.j2ee.test.dao.impl; import java.util.List; import cn.org.jshuwei.j2ee.test.core.JshuweiContext; import cn.org.jshuwei.j2ee.test.core.Constant; import org.hibernate.SessionFactory; import org.hibernate.criterion.Example; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Repository; import org.apache.log4j.Logger; /** * Copyright 2009 huwei(jshuwei.org.cn) * Generate by huwei's generate Util * 本类由胡伟j2ee自动生成工具生成,欢迎与作者交流讨论, * <p>联系方式:<br>Web:http://jshuwei.org.cn <br>Email:huwei@jshuwei.org.cn<br>QQ:772627301<p/> */ @Repository public class BaseDao { @Autowired protected SessionFactory sessionFactory; static Logger log = Logger.getLogger(BaseDao.class); public void save(Object obj){ sessionFactory.getCurrentSession().save(obj); } public void delete(Object obj){ sessionFactory.getCurrentSession().delete(obj); } public void update(Object obj){ sessionFactory.getCurrentSession().update(obj); } @SuppressWarnings("unchecked") public List queryByExample(Object obj, int start, int limit){ try { if(limit==0) limit=20; List results = sessionFactory.getCurrentSession().createCriteria(obj.getClass().getName()).add(Example.create(obj)).setFirstResult(start).setMaxResults(limit).list(); return results; } catch (Exception e) { log.error(e.getMessage()); new JshuweiContext().setReturnCode(Constant.BAD_RETURN_CODE); return null; } } }
Address.java
package cn.org.jshuwei.j2ee.test.entity; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.Table; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; /** * Copyright 2009 huwei(jshuwei.org.cn) * Generate by huwei's generate Util * 本类由胡伟j2ee自动生成工具生成,欢迎与作者交流讨论, * <p>联系方式:<br>Web:http://jshuwei.org.cn <br>Email:huwei@jshuwei.org.cn<br>QQ:772627301<p/> */ @Entity @Table(name = "address") public class Address { @Id @GeneratedValue(strategy = GenerationType.AUTO) @Column(name = "ID") private Integer id;//数据库流水号 private String name;//姓名 private Integer age;//年龄 private String tel;//联系电话 private String email;//邮箱 //设置数据库流水号 public void setId(Integer id){ this.id = id; } //获取数据库流水号 public Integer getId(){ return id; } //设置姓名 public void setName(String name){ this.name = name; } //获取姓名 public String getName(){ return name; } //设置年龄 public void setAge(Integer age){ this.age = age; } //获取年龄 public Integer getAge(){ return age; } //设置联系电话 public void setTel(String tel){ this.tel = tel; } //获取联系电话 public String getTel(){ return tel; } //设置邮箱 public void setEmail(String email){ this.email = email; } //获取邮箱 public String getEmail(){ return email; } }
IAddressService.java
package cn.org.jshuwei.j2ee.test.service; /** * Copyright 2009 huwei(jshuwei.org.cn) * Generate by huwei's generate Util * 本类由胡伟j2ee自动生成工具生成,欢迎与作者交流讨论, * <p>联系方式:<br>Web:http://jshuwei.org.cn <br>Email:huwei@jshuwei.org.cn<br>QQ:772627301<p/> */ public interface IAddressService extends IBaseService { void getAllAddresss(); void getAddressById(); void getAddresssByProperty(); void updateAddress(); void saveAddress(); void deleteAddress(); void getTotal(); }
IBaseService.java
package cn.org.jshuwei.j2ee.test.service; import cn.org.jshuwei.j2ee.test.core.JshuweiContext; /** * Copyright 2009 huwei(jshuwei.org.cn) * Generate by huwei's generate Util * 本类由胡伟j2ee自动生成工具生成,欢迎与作者交流讨论, * <p>联系方式:<br>Web:http://jshuwei.org.cn <br>Email:huwei@jshuwei.org.cn<br>QQ:772627301<p/> */ public interface IBaseService { void exec(JshuweiContext jshuweiContext); void execute(JshuweiContext jshuweiContext); String getServiceId(); }
AddressService.java
package cn.org.jshuwei.j2ee.test.service.impl; import cn.org.jshuwei.j2ee.test.entity.Address; import cn.org.jshuwei.j2ee.test.service.IAddressService; import cn.org.jshuwei.j2ee.test.dao.IAddressDao; import cn.org.jshuwei.j2ee.test.core.Constant; import cn.org.jshuwei.j2ee.test.core.JshuweiContext; import cn.org.jshuwei.j2ee.util.StringUtil; import cn.org.jshuwei.j2ee.util.VOUtils; import java.lang.reflect.Constructor; import java.lang.reflect.Field; import java.lang.reflect.Method; import java.util.List; import java.util.Map; import org.apache.log4j.Logger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; /** * Copyright 2009 huwei(jshuwei.org.cn) * Generate by huwei's generate Util * 本类由胡伟j2ee自动生成工具生成,欢迎与作者交流讨论, * <p>联系方式:<br>Web:http://jshuwei.org.cn <br>Email:huwei@jshuwei.org.cn<br>QQ:772627301<p/> */ @Service("addressService") public class AddressService extends BaseService implements IAddressService { private JshuweiContext jshuweiContext; @Autowired private IAddressDao addressDao; static final Logger log = Logger.getLogger(AddressService.class); static final String serviceName = "addressService"; public String getServiceId() { return Constant.ADDRESS_SERVICE_ID; } public void execute(JshuweiContext jshuweiContext) { this.jshuweiContext = jshuweiContext; this.jshuweiContext.setTotalNum(addressDao.getAllAddresss().size()); switch (jshuweiContext.getEventCode()) { case Constant.ADDRESS_SERVICE_GETALL_EVENT: getAllAddresss(); break; case Constant.ADDRESS_SERVICE_GETBYID_EVENT: getAddressById(); break; case Constant.ADDRESS_SERVICE_GETBYPROPERTY_EVENT: getAddresssByProperty(); break; case Constant.ADDRESS_SERVICE_Update_EVENT: updateAddress(); break; case Constant.ADDRESS_SERVICE_SAVE_EVENT: saveAddress(); break; case Constant.ADDRESS_SERVICE_Delete_EVENT: deleteAddress(); break; case Constant.ADDRESS_SERVICE_GETNUM_EVENT: getTotal(); break; default: getAllAddresss(); break; } } public void getAllAddresss(){ try{ Integer[] parms = (Integer[])jshuweiContext.getRequestObj(); List<Address> list = addressDao.getAllAddresss(parms[0],parms[1]); jshuweiContext.setReturnCode(Constant.GOOD_RETURN_CODE); jshuweiContext.setReturnObject(list); }catch(Exception e){ log.error(e.getMessage()); jshuweiContext.setReturnCode(Constant.BAD_RETURN_CODE); jshuweiContext.setReturnMsg(Constant.FAIL_SERVICE_MESSAGE); } } public void getAddressById(){ try{ Address address = addressDao.loadAddressById(Integer.parseInt(jshuweiContext.getRequestObj()+"")); jshuweiContext.setReturnCode(Constant.GOOD_RETURN_CODE); jshuweiContext.setReturnObject(address); }catch(Exception e){ log.error(e.getMessage()); jshuweiContext.setReturnCode(Constant.BAD_RETURN_CODE); jshuweiContext.setReturnMsg(Constant.FAIL_SERVICE_MESSAGE); } } @SuppressWarnings("unchecked") public void getAddresssByProperty(){ try{ List parms = (List)jshuweiContext.getRequestObj(); Address address = (Address)parms.get(0); Integer[] pageParms = (Integer[])parms.get(1); List<Address> list = addressDao.queryByExample(address,pageParms[0],pageParms[1]); jshuweiContext.setReturnCode(Constant.GOOD_RETURN_CODE); jshuweiContext.setReturnObject(list); }catch(Exception e){ log.error(e.getMessage()); jshuweiContext.setReturnCode(Constant.BAD_RETURN_CODE); jshuweiContext.setReturnMsg(Constant.FAIL_SERVICE_MESSAGE); } } @SuppressWarnings("unchecked") public void updateAddress(){ try{ Address address = (Address)jshuweiContext.getRequestObj(); Map<String, String> map = VOUtils.beanToMap(address); Address newAddress = addressDao.loadAddressById(address.getId()); Class c = newAddress.getClass(); Field[] fields = c.getDeclaredFields(); for (Field field : fields) { String fieldName = field.getName(); if ("id".equals(fieldName)) continue; field.setAccessible(true); Method method = c.getMethod("set" + StringUtil.firstToUpper(fieldName), field.getType()); Constructor con = field.getType().getConstructor(String.class); Object o = con.newInstance(map.get(fieldName)); method.invoke(newAddress, o); } addressDao.update(newAddress); jshuweiContext.setReturnCode(Constant.GOOD_RETURN_CODE); jshuweiContext.setReturnMsg(Constant.Update_SECCESS); }catch(Exception e){ log.error(e.getMessage()); jshuweiContext.setReturnCode(Constant.BAD_RETURN_CODE); jshuweiContext.setReturnMsg(Constant.FAIL_SERVICE_MESSAGE); } } public void saveAddress(){ try{ addressDao.save(jshuweiContext.getRequestObj()); jshuweiContext.setReturnCode(Constant.GOOD_RETURN_CODE); jshuweiContext.setReturnMsg(Constant.SAVE_SECCESS); }catch(Exception e){ log.error(e.getMessage()); jshuweiContext.setReturnCode(Constant.BAD_RETURN_CODE); jshuweiContext.setReturnMsg(Constant.FAIL_SERVICE_MESSAGE); } } public void deleteAddress(){ try{ addressDao.delete(addressDao.loadAddressById(Integer.parseInt(jshuweiContext.getRequestObj()+""))); jshuweiContext.setReturnCode(Constant.GOOD_RETURN_CODE); jshuweiContext.setReturnMsg(Constant.Delete_SECCESS); }catch(Exception e){ log.error(e.getMessage()); jshuweiContext.setReturnCode(Constant.BAD_RETURN_CODE); jshuweiContext.setReturnMsg(Constant.FAIL_SERVICE_MESSAGE); } } public void getTotal(){ try{ List<Address> list = addressDao.getAllAddresss(); jshuweiContext.setReturnCode(Constant.GOOD_RETURN_CODE); jshuweiContext.setReturnObject(list); }catch(Exception e){ log.error(e.getMessage()); jshuweiContext.setReturnCode(Constant.BAD_RETURN_CODE); jshuweiContext.setReturnMsg(Constant.FAIL_SERVICE_MESSAGE); } } }
BaseService.java
package cn.org.jshuwei.j2ee.test.service.impl; import cn.org.jshuwei.j2ee.test.core.JshuweiContext; import cn.org.jshuwei.j2ee.test.service.IBaseService; import cn.org.jshuwei.j2ee.test.core.Constant; import org.apache.log4j.Logger; /** * Copyright 2009 huwei(jshuwei.org.cn) * Generate by huwei's generate Util * 本类由胡伟j2ee自动生成工具生成,欢迎与作者交流讨论, * <p>联系方式:<br>Web:http://jshuwei.org.cn <br>Email:huwei@jshuwei.org.cn<br>QQ:772627301<p/> */ public abstract class BaseService implements IBaseService { static Logger log = Logger.getLogger(BaseService.class); public void exec(JshuweiContext jshuweiContext){ String serviceId = this.getServiceId(); String _serviceId = jshuweiContext.getServiceId(); if(!serviceId.equals(_serviceId)){ log.error("目标serviceId:"+_serviceId+",却分发至"+serviceId); jshuweiContext.setReturnCode(Constant.BAD_RETURN_CODE); jshuweiContext.setReturnMsg(Constant.BAD_SERVICE_MESSAGE); return; } try{ execute(jshuweiContext); }catch(Exception e){ log.error(e.getMessage()); } } }
省去配置文件和web端代码,实在是太多了,各位还是直接下载源代码直接查看讨论吧!
附件太大了,这里上传不了,只能发到我自己的博客里下载!
1 楼
axxxx2000
2009-09-19
别那么虚伪好不,没源代码就别写 查看源代码
不开源没关系,但装b就是你不对了
不开源没关系,但装b就是你不对了
2 楼
jshuwei
2009-09-19
楼上的,不知道是该说你是个傻逼好呢,还是说你根本就不懂java!源代码和编译好的代码都打成了war包提供下载了,你还说没有!你说你是什么?
3 楼
jshuwei
2009-09-21
难道就没有人有点什么看法和建议?
4 楼
gmizr
2009-09-21
这也叫有源码?
下载下来的东西是有源代码,不过都是
这种生成出来的东西。
而且,下载下来的文件那么大,99%都是jar文件,ext js,还有图片。
你这个
没人会对生成出来的东西的完整运行环境感兴趣的
核心的东西没有,发上来的全是大且无用的东西
下载下来的东西是有源代码,不过都是
引用
本类由胡伟j2ee自动生成工具生成,欢迎与作者交流讨论,
这种生成出来的东西。
而且,下载下来的文件那么大,99%都是jar文件,ext js,还有图片。
你这个
引用
J2EE项目自动生成工具
没人会对生成出来的东西的完整运行环境感兴趣的
核心的东西没有,发上来的全是大且无用的东西
5 楼
jshuwei
2009-09-21
楼上的,请看清楚帖子啊,我没说发的是生成工具的代码啊。在还没有测试完全好的情况下,发出来工具源码也没有用啊。
jshuwei 写道
最近在做一个代码自动生成工具,下面的代码是自动生成的,欢迎大家讨论生成的代码有什么地方需要修改的。
6 楼
findhappy7
2009-09-22
jshuwei 写道
楼上的,请看清楚帖子啊,我没说发的是生成工具的代码啊。在还没有测试完全好的情况下,发出来工具源码也没有用啊。
jshuwei 写道
最近在做一个代码自动生成工具,下面的代码是自动生成的,欢迎大家讨论生成的代码有什么地方需要修改的。
楼主,你工作是不是2年左右啊?
7 楼
jshuwei
2009-09-22
呵呵,为什么问这种问题啊?
8 楼
pujia12345
2009-09-22
说实话,我不懂你写的这个有何意思,但是我认为,你这个没什么利用价值
9 楼
herowzz
2009-09-22
这...写的...惨不忍睹......
10 楼
jansel
2009-09-22
如果是SSH2,如果是简单的CRUD,的确可以通过生成代码的方式来搞定。
但是每个项目组对各自的使用方式不太一样,就比如LZ提出来一个Context,但是不一定每个项目组都会使用,而且LZ的生成的代码中还竟然有HttpServletRequest,这些东东UT如何去测试,除非LZ也能生成UT代码,否则还不见得有人敢用。当然除非不要求UT。
如果稍微复杂一点,在生成的代码基础上再添加业务逻辑,我估计没人愿意这么干。还有一点就是后台的东西既然用到了SSH2,写起来基本比较简单,那么View呢?
我这个觉得重点是View如何做的问题,LZ可以生成View吗?
但是每个项目组对各自的使用方式不太一样,就比如LZ提出来一个Context,但是不一定每个项目组都会使用,而且LZ的生成的代码中还竟然有HttpServletRequest,这些东东UT如何去测试,除非LZ也能生成UT代码,否则还不见得有人敢用。当然除非不要求UT。
如果稍微复杂一点,在生成的代码基础上再添加业务逻辑,我估计没人愿意这么干。还有一点就是后台的东西既然用到了SSH2,写起来基本比较简单,那么View呢?
我这个觉得重点是View如何做的问题,LZ可以生成View吗?
11 楼
jshuwei
2009-09-22
jansel 写道
我这个觉得重点是View如何做的问题,LZ可以生成View吗?
我也是这么认为的,在写这个工具的时候就感觉view端比较的难写。但还是生成了简单的view。用extjs做的,只有增删改查,还有权限控制。
12 楼
jshuwei
2009-09-22
herowzz 写道
这...写的...惨不忍睹......
这只是第一版本,而且是常规的SSH2版本,分布式部署的还没有发布。现在只是测试,写的好的话就不用费神了。就是想让这个工具变得好才拿出来让大家讨论下改进的。不凡说说你的具体看法
13 楼
wangdgsc
2009-09-22
不太清楚你这个生成的代码能在干什么情况下使用,
14 楼
fireflyk
2009-09-22
lz,真巧,我最近也在做这个代码生成器啊~
我现在做了个支持模板定义的功能
也就是说,按照规则,定义一个模板,即可生成
优点是,每个人的类里的内容都不一样,你想生成什么样的都可以,满足个性化需求~
当然可以生成不仅仅Java代码,只要你愿意,php、.Net都可以
并且不限于类文件,xml什么的都行~
归根结底,目的是为了减少CRUD代码……
我现在做了个支持模板定义的功能
也就是说,按照规则,定义一个模板,即可生成
优点是,每个人的类里的内容都不一样,你想生成什么样的都可以,满足个性化需求~
当然可以生成不仅仅Java代码,只要你愿意,php、.Net都可以
并且不限于类文件,xml什么的都行~
归根结底,目的是为了减少CRUD代码……