weiit-frame極速 web 開發(fā)框架
Weiit是基于Java語言的極速web開發(fā)框架,其核心設(shè)計目標是開發(fā)迅速、代碼量少、學(xué)習(xí)簡單、功能強大、輕量級、易擴展、Restful。Weiit適用于快速開發(fā),輕應(yīng)用型的應(yīng)用開發(fā),大大降低開發(fā)人員投入與維護成本支出,是一款永久免費開源的Web開發(fā)框架。
一、框架主要特點
- 基于Spring+SpringMVC+Mybstis主流開源框架,遵循MVC架構(gòu),設(shè)計輕巧,使用簡單,擁有傳統(tǒng) SSH 框架的絕大部分核心功能,適用于快速開發(fā);
- 框架去實體化,請求參數(shù)進行統(tǒng)一攔截與處理,所有取值從FormMap 中獲?。?/li>
- 框架定義 Mapper/Service/Controller 方法標準,常規(guī)方法統(tǒng)一省略不寫,開發(fā)人員只關(guān)注特殊業(yè)務(wù)的編寫的原則;
- 框架統(tǒng)一封裝結(jié)果集 E 對象,即所有取值對象皆轉(zhuǎn)化成E對象,從E對象中Get;
- 框架統(tǒng)一封裝第三方資源 支持包,支持阿里云、騰訊云、七牛云、容聯(lián)云、快遞鳥、百度等廠商。統(tǒng)一約定 工具類 的使用與標準,避免技術(shù)成員隨意引用第三方工具類導(dǎo)致升級與維護成本增加;
- 支持 模塊化開發(fā) ,可對常用功能進行模塊成組件,方便熱插式使用,如系統(tǒng)管理模塊功能,可作為熱插模塊;
- 支持快速開發(fā) 定時任務(wù),可視化管理定時任務(wù)。
- 支持微信小程序、微信公眾號、微信開放平臺、微信支付快速集成與運用。
- 支持全棧式開發(fā)、前后端分離兩種開發(fā)方式,分別采用Shiro與JWT進行校驗框架。
二、客戶案例
截止2020年,Weiit團隊基于自身框架已經(jīng)成功應(yīng)用為300多家企業(yè)提供技術(shù)支持。Weiit團隊還自身開源了一個產(chǎn)品項目,蝸店SAAS電商系統(tǒng)。
《蝸店》線上環(huán)境https://www.wstore.me。
《蝸店》目前已開源,測試環(huán)境演示:
商家端:http://saasmerchant.wei-it.com/ 18306668080/123456
平臺端:http://saasplatform.wei-it.com/
渠道端:http://saasplatform.wei-it.com/
三、Maven倉庫
必須依賴,框架核心支持:
<dependency>
<groupId>com.weiit</groupId>
<artifactId>weiit-support-core</artifactId>
<version>1.0.0</version>
</dependency>
需第三方支持與工具類,則引入,非必須依賴:
<dependency>
<groupId>com.weiit</groupId>
<artifactId>weiit-resource-common</artifactId>
<version>1.0.0</version>
</dependency>
如需定時任務(wù)是,則引入,非必須依賴:
<dependency>
<groupId>com.weiit</groupId>
<artifactId>weiit-suppor-task</artifactId>
<version>1.0.0</version>
</dependency>
如需系統(tǒng)管理模塊,則引入,非必須依賴:
<dependency>
<groupId>com.weiit</groupId>
<artifactId>weiit-business-system</artifactId>
<version>1.0.0</version>
</dependency>
四、代碼示例
Mapper層:
package com.weiit.web.admin.user.mapper; import java.util.List; import com.weiit.core.entity.FormMap; import com.weiit.core.mapper.BaseMapper; /** * 用戶中心 mapper * @author 半個鼠標 * @date 2017年8月15日 下午3:20:16 * @version 1.0 * @company http://www.wei-it.com */ public interface UserMapper extends BaseMapper { /** * 查詢所有的會員積分信息 * @param param * @return 返回所有會員的積分信息 */ List selectUserIntergralList(FormMap formMap); /** * 查詢所有的會員余額信息 * @param param * @return 返回所有會員的余額信息 */ List selectbalanceList(FormMap forMap); /** * 查詢所有的會員地址信息 * @param param * @return 返回所有會員的地址信息 */ List selectAdressList(FormMap formMap); /** * 刪除會員地址庫 * @param param * @return */ int removeAddress(FormMap formMap); /** * 刪除會員余額記錄 * @param param * @return */ int removeBalanceLog(FormMap formMap); /** * 刪除會員積分記錄 * @param param * @return */ int removeIntegralLog(FormMap formMap); }
Service層:
package com.weiit.web.admin.user.service; import java.util.List; import com.weiit.core.entity.FormMap; import com.weiit.core.service.BaseService; /** * 用戶模塊接口 * @author 半個鼠標 * @date 2017年8月15日 上午11:55:25 * @version 1.0 * @company http://www.wei-it.com */ public interface UserService extends BaseService{ List selectUserIntergralList(FormMap formMap); List selectbalanceList(FormMap forMap); List selectAdressList(FormMap formMap); void removeTrans(FormMap formMap); }
Service實現(xiàn)層:
package com.weiit.web.admin.user.service.impl; import java.util.List; import javax.annotation.Resource; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; import com.weiit.core.entity.FormMap; import com.weiit.core.mapper.BaseMapper; import com.weiit.core.service.impl.AbstractService; import com.weiit.web.admin.user.mapper.UserMapper; import com.weiit.web.admin.user.service.UserService; /** * 會員模塊接口實現(xiàn)接口 * @author 半個鼠標 * @date 2017年8月15日 下午3:23:04 * @version 1.0 * @company http://www.wei-it.com */ @Service @Transactional(readOnly=false) public class UserServiceImpl extends AbstractService implements UserService { @Resource private UserMapper userMapper; @Override public BaseMapper setMapper() { return userMapper; } /** * 查詢會員積分 */ @Override public List selectUserIntergralList(FormMap formMap) { return userMapper.selectUserIntergralList(formMap); } /** * 查詢會員余額 */ @Override public List selectbalanceList(FormMap forMap) { return userMapper.selectbalanceList(forMap); } /** * 查詢會員地址 */ @Override public List selectAdressList(FormMap formMap) { return userMapper.selectAdressList(formMap); } /** * 會員刪除 (事務(wù)管理) 1、刪除積分記錄。2、刪除余額記錄。3、刪除收貨地址。4、刪除會員信息 */ @Override @Transactional(readOnly=false,propagation=Propagation.REQUIRED,rollbackFor=Exception.class)//事務(wù)可寫,記住方法中不能捕獲異常,捕獲異常不會回滾事務(wù),trycatch也不能用 public void removeTrans(FormMap formMap) { //1、先刪除積分記錄 userMapper.removeIntegralLog(formMap); //2、刪除余額記錄 userMapper.removeBalanceLog(formMap); //3、刪除會員收貨地址 userMapper.removeAddress(formMap); //4、刪除會員 userMapper.remove(formMap); } }
控制層(全棧式開發(fā)):
package com.weiit.web.admin.user.controller; import java.util.List; import javax.annotation.Resource; import org.apache.log4j.Logger; import org.springframework.stereotype.Controller; import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.servlet.ModelAndView; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.weiit.core.entity.E; import com.weiit.core.entity.FormMap; import com.weiit.support.common.utils.WeiitUtil; import com.weiit.web.admin.user.service.UserService; import com.weiit.web.base.AdminController; import com.weiit.web.base.Message; /** * 后臺管理 》會員模塊 * @author 半個鼠標 * @date:2017年8月15日 下午3:20:56 * @version 1.0 * @company http://www.wei-it.com */ @Controller @RequestMapping("/user") public class UserController extends AdminController { public static Logger logger = Logger.getLogger(UserController.class); @Resource private UserService userService; private String page_list = "/center/user/userList"; private String page_intergral = "/center/user/userIntergral"; private String redirect_list = "redirect:userList"; private String page_balance = "/center/user/userBalance"; private String page_adress = "/center/user/userAdress"; /** * 會員管理》查詢用戶列表 */ @RequestMapping("/userList") public ModelAndView userList() { logger.info("進入UserController-user_list,會員列表展示"); ModelAndView result = UIView(page_list); FormMap formMap = getFormMap(); // 開啟分頁 PageHelper.startPage(formMap.getPage(), formMap.getRows()); List userslist = userService.selectList(formMap); result.addObject("pageInfo", new PageInfo<E>(userslist)); result.addObject("queryParam", formMap); return result; } /** * 會員管理》刪除會員 */ @RequestMapping("/remove") public ModelAndView remove() { logger.info("進入UserController-remove,會員刪除"); ModelAndView result = UIView(redirect_list, Message.DANGER); FormMap formMap = getFormMap(); //用戶刪除【事務(wù)】 userService.removeTrans(formMap); return result; } /** * 會員管理》添加會員 */ @RequestMapping("/save") public ModelAndView save() { logger.info("進入UserController-save,添加會員"); ModelAndView result = UIView(redirect_list, Message.INFO); FormMap formMap = getFormMap(); if (StringUtils.isEmpty(formMap.getStr("user_id"))) { userService.insert(formMap); } else { userService.edit(formMap); } return result; } /** * 會員管理》根據(jù)id查詢會員 */ @ResponseBody @RequestMapping("/view") public String view() { logger.info("進入UserController-view,根據(jù)id查詢會員"); FormMap formMap = getFormMap(); E e = userService.selectOne(formMap); return toJsonAPI(e); } /** * 會員管理》查詢用戶積分 */ @RequestMapping("/userIntergral") public ModelAndView userIntergral() { logger.info("進入UserController-user_intergralList,會員積分查詢"); ModelAndView result = UIView(page_intergral); FormMap formMap = getFormMap(); // 開啟分頁 PageHelper.startPage(formMap.getPage(), formMap.getRows()); List intergrallist = userService.selectUserIntergralList(formMap); result.addObject("pageInfo", new PageInfo<E>(intergrallist)); result.addObject("queryParam", formMap); return result; } /** * 會員管理》查詢用戶余額 */ @RequestMapping("/userBalance") public ModelAndView userBalance() { logger.info("進入UserController-user_balanceList,會員余額展示"); FormMap forMap = getFormMap(); List balancelist = userService.selectbalanceList(forMap); ModelAndView result = UIView(page_balance); result.addObject("pageInfo", new PageInfo<E>(balancelist)); result.addObject("queryParam", forMap); return result; } /** *會員管理》查詢會員地址 */ @RequestMapping("/userAddress") public ModelAndView userAddress() { logger.info("進入UserController-useradressList,會員地址展示"); ModelAndView result = UIView(page_adress); FormMap formMap = getFormMap(); // 開啟分頁 PageHelper.startPage(formMap.getPage(), formMap.getRows()); List adresslist = userService.selectAdressList(formMap); result.addObject("pageInfo", new PageInfo<E>(adresslist)); result.addObject("queryParam", formMap); return result; } /** * 會員管理》批量刪除會員 * */ @RequestMapping(value="/removeBatch") public ModelAndView removeBatch(){ logger.info("進入UserController-deleteBatch,批量刪除會員"); ModelAndView result = UIView(redirect_list, Message.INFO); FormMap formMap=getFormMap(); String[] validate_id=formMap.getAttrNames("validate_id");// String validate_ids=WeiitUtil.arrayToString(validate_id); formMap.set("validate_ids", validate_ids); userService.removeBatch(formMap); return result; } }
控制層(前后端分離開發(fā)):
package com.weiit.web.admin.user.controller; import java.util.List; import javax.annotation.Resource; import org.apache.log4j.Logger; import org.springframework.stereotype.Controller; import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.servlet.ModelAndView; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.weiit.core.entity.E; import com.weiit.core.entity.FormMap; import com.weiit.support.common.utils.WeiitUtil; import com.weiit.web.admin.user.service.UserService; import com.weiit.web.base.AdminController; import com.weiit.web.base.Message; /** * 會員相關(guān)接口 * @author 半個鼠標 * @date:2017年8月15日 下午3:20:56 * @version 1.0 * @company http://www.wei-it.com */ @Controller @RequestMapping("/user") public class UserController extends AdminController { public static Logger logger = Logger.getLogger(UserController.class); /** * 查詢用戶接口 */ @RequestMapping("/getUserInfo") public String getUserList() { logger.info("進入UserController-getUserInfo,查詢用戶信息"); //判斷用戶token真實的,重新查詢用戶信息出來 if (formMap.get("user_id") != null) { E userInfo = userService.userInfo(formMap); return toJsonAPI(userInfo); } else { return toJsonAPI(ApiResponseCode.TOKEN_INVALID); } } }
評論
圖片
表情
