代码编织梦想

今天重点讲解的是ant-framework核心代码Base封装过程。

因为涉及到springmvc、mybatis的集成,为了使项目编码更简洁易用,这边将基础的BASE进行封装,其中包括:BaseBean、BaseDao、BaseService、CRUD的基础封装、分页组件的封装、mybatis的mapper的基础封装,各种数据源支持的封装等。

1. BaseEntity基础封装,代码如下:

/**

 * Entity基础封装

 */ 

public abstract class BaseEntity<T> implements Serializable { 

   

    private static final long serialVersionUID = 1234567890987654321L; 

   

    /**

     * 实体编号(唯一标识)

     */ 

    protected String id; 

       

    /**

     * 当前实体分页对象

     */ 

    protected Page<T> page; 

       

   

    /**

     * 是否插入新纪录

     */ 

    protected boolean isNewRecord = false

   

    public BaseEntity() { 

           

    

       

    public BaseEntity(String id) { 

        this(); 

        this.id = id; 

    

   

    public String getId() { 

        return id; 

    

   

    public void setId(String id) { 

        this.id = id; 

    

   

    /**

     * 数据插入之前

     */ 

    public abstract void preInsert(); 

       

    /**

     * 更新数据之前

     */ 

    public abstract void preUpdate(); 

       

       /**

     * 是否是新记录(默认:false)

        */ 

    public boolean getIsNewRecord() { 

        return isNewRecord || StringUtils.isBlank(getId()); 

    

   

    /**

     * 是否是新记录(默认:false)

     */ 

    public void setIsNewRecord(boolean isNewRecord) { 

        this.isNewRecord = isNewRecord; 

    

   

    /**

     * 全局变量对象

     */ 

    @JsonIgnore 

    public Global getGlobal() { 

        return Global.getInstance(); 

    

       

    @Override 

    public boolean equals(Object obj) { 

        if (null == obj) { 

            return false

        

        if (this == obj) { 

            return true

        

        if (!getClass().equals(obj.getClass())) { 

            return false

        

        BaseEntity<?> that = (BaseEntity<?>) obj; 

        return null == this.getId() ? false this.getId().equals(that.getId()); 

    }    

   2. BaseDao的基础封装(这个很简单,因为使用的是mybatis集成方案,只需要保留接口即可),代码如下:

public interface BaseDao { 

        3. CrudDao的基础封装 

/**

 * DAO基础封装

 */ 

public interface CrudDao<T> extends BaseDao { 

   

    /**

     * 获取单条数据

     * @param id

     * @return

     */ 

    public T get(String id); 

       

    /**

     * 获取单条数据

     * @param entity

     * @return

     */ 

    public T get(T entity); 

       

    /**

     * 查询数据列表,如果需要分页,请设置分页对象,如:entity.setPage(new Page<T>());

     * @param entity

     * @return

     */ 

    public List<T> findList(T entity); 

       

    /**

     * 查询所有数据列表

     * @param entity

     * @return

     */ 

    public List<T> findAllList(T entity); 

       

    /**

     * 查询所有数据列表

     * @see public List<T> findAllList(T entity)

     * @return

     */ 

    @Deprecated 

    public List<T> findAllList(); 

       

    /**

     * 插入数据

     * @param entity

     * @return

     */ 

    public int insert(T entity); 

       

    /**

     * 更新数据

     * @param entity

     * @return

     */ 

    public int update(T entity); 

       

    /**

     * 删除数据

     * @param id

     * @see public int delete(T entity)

     * @return

     */ 

    @Deprecated 

    public int delete(String id); 

       

    /**

     * 删除数据

     * @param entity

     * @return

     */ 

    public int delete(T entity); 

       

        4. BaseService的基础封装(里面封装了基础的CRUD操作,包括基础get,find,insert,update等) 

/**

 * BaseService基础封装

 */ 

@Transactional(readOnly = true

public abstract class CrudService<D extends CrudDao<T>, T extends DataEntity<T>> extends BaseService { 

       

    /**

     * 持久层dao

     */ 

    @Autowired 

    protected D dao; 

       

    /**

     * 获取单条数据

     * @param id

     * @return

     */ 

    public T get(String id) { 

        return dao.get(id); 

    

       

    /**

     * 获取单条数据

     * @param entity

     * @return

     */ 

    public T get(T entity) { 

        return dao.get(entity); 

    

       

    /**

     * 查询列表数据

     * @param entity

     * @return

     */ 

    public List<T> findList(T entity) { 

        return dao.findList(entity); 

    

       

    /**

     * 查询分页数据

     * @param page 分页对象

     * @param entity

     * @return

     */ 

    public Page<T> findPage(Page<T> page, T entity) { 

        entity.setPage(page); 

        page.setList(dao.findList(entity)); 

        return page; 

    

   

    /**

     * 保存数据(插入或更新)

     * @param entity

     */ 

    @Transactional(readOnly = false

    public void save(T entity) { 

        if (entity.getIsNewRecord()){ 

            entity.preInsert(); 

            dao.insert(entity); 

        }else

            entity.preUpdate(); 

            dao.update(entity); 

        

    

       

    /**

     * 删除数据

     * @param entity

     */ 

    @Transactional(readOnly = false

    public void delete(T entity) { 

        dao.delete(entity); 

    

5.架构代码如下:

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/ok060/article/details/136245491

springmvc+mybatis+shiro+dubbo+zookeeper+redis+kafka j2ee分布式架构核心技术_qq_40238900的博客-爱代码爱编程

内置功能(只列了一部分功能) 1.用户管理:用户是系统操作者,该功能主要完成系统用户配置。 2.机构管理:配置系统组织机构(公司、部门、小组),树结构展现,可随意调整上下级。 3.区域管理:系统城市区域模型,如:国家、省市、地市、区县的维护。 4.菜单管理:配置系统菜单,操作权限,按钮权限标识等。 5.角色管理:角色菜单权限分配、设

springmvc+mybatis+dubbo+zookeeper分布式架构 整合 - maven构建ant-framework框架的pom.xml文件配置_springml的博客-爱代码爱编程

ant-framework是ant分布式框架的基础核心框架,其中包括CRUD,MVC等一系列基类和模板。另外定义了spring,mybatis,wink等底层框架扩展项目,具体内容包括: 其中ant-framework是ant分布式框架的基础核心框架,其中包括CRUD,MVC等一系列基类和模板。另外定义了spring,mybatis,wink等底层框架扩

springmvc+mybatis+dubbo+zookeeper分布式架构 整合 - maven构建ant-framework框架的pom.xml文件配置...-爱代码爱编程

ant-framework是ant分布式框架的基础核心框架,其中包括CRUD,MVC等一系列基类和模板。另外定义了spring,mybatis,wink等底层框架扩展项目,具体内容包括: 其中ant-framework是ant分布式框架的基础核心框架,其中包括CRUD,MVC等一系列基类和模板。另外定义了spring,mybatis,wink等底层

springmvc+mybatis+dubbo+zookeeper分布式架构-爱代码爱编程

框架简介--主要定位于互联网企业架构,已内置企业信息化系统的基础功能和高效的代码生成工具,包括:系统权限组件、数据权限组件、数据字典组件、核心工具 组件、视图操作组件、工作流组件组件、代码生成等。采用分层设计、双重验证、提交数据安全编码、密码加密、访问验证、数据权限验证。平台简介 是一个分布式的框架,提供项目模块化、服务化、热插拔的思想,高度封装

(三)springmvc+mybatis+dubbo+zookeeper分布式架构 整合 - maven模块规划_chukaopi2273的博客-爱代码爱编程

从今天开始,我们针对于每一个独立的系统做详细的构建,顺便会把整个构建的过程全部记录下来,方便更多的开发者。 提醒: 在构建dubbo分布式平台之前,必须掌握好maven的相关技能,整个构建过程都是使用maven技术。在构建的过程中解决maven问题的时间往往比编码的时间还多,但这不能阻止我们对《构建dubbo分布式平台》之路,没有掌握好mav

(一)springmvc+mybatis+dubbo+zookeeper分布式架构 整合 - 平台导语简介_chukaopi2273的博客-爱代码爱编程

导语: 怎么搭建一套满足企业未来发展的通用架构平台?现在分布式、微服务、云平台的口号是如此的响亮,技术更新是如此的迅速,很多架构师选择使用dubbo、spring cloud的方案去帮助企业搭建分布式、微服务的架构,在实施的前期去对比选择。其实不然,只要能够帮助搭建一套满足于企业本身业务的架构就可以了,至于dubbo、spring cloud的对

(六)springmvc+mybatis+dubbo+zookeeper分布式架构 整合 - maven构建config配置项目_chukaopi2273的博客-爱代码爱编程

框架使用maven进行构建,根据我们的规划,要将子项目全部构建出来,今天重点讲解的是ant-config配置文件项目的构建过程。   导语: 将ant-config项目独立出来的目的是将所有的配置文件进行统一项目管理,其中包括:spring相关文件配置、mybatis相关文件配置、数据源相关文件配置、基础环境文件配置(短信、消息、oss存储、

(七)springmvc+mybatis+dubbo+zookeeper分布式架构 整合 - maven构建ant-framework框架的pom.xml文件配置..._chukaopi2273的博客-爱代码爱编程

框架使用maven进行构建,根据我们的规划,要将子项目全部构建出来,今天重点讲解的是ant-framework可信项目的构建过程。 其中ant-framework是ant分布式框架的基础核心框架,其中包括CRUD,MVC等一系列基类和模板。另外定义了spring,mybatis,wink等底层框架扩展项目,具体内容包括: 1. annotat

(八)springmvc+mybatis+dubbo+zookeeper分布式架构 整合 - maven构建ant-framework核心代码annotation..._chukaopi2273的博客-爱代码爱编程

子项目的基础框架已经构建完成,今天重点讲解的是ant-framework核心代码的编写过程。 其中ant-framework是ant分布式框架的基础核心框架,其中包括CRUD,MVC等一系列基类和模板。另外定义了spring,mybatis,wink等底层框架扩展项目,具体内容包括: 1. annotation相关注解:数据签名注解、用户是否

(九)springmvc+mybatis+dubbo+zookeeper分布式架构 整合 - maven构建ant-framework核心代码base封装..._chukaopi2273的博客-爱代码爱编程

今天重点讲解的是ant-framework核心代码Base封装过程。 因为涉及到springmvc、mybatis的集成,为了使项目编码更简洁易用,这边将基础的BASE进行封装,其中包括:BaseBean、BaseDao、BaseService、CRUD的基础封装、分页组件的封装、mybatis的mapper的基础封装,各种数据源支持的封装等。

(十)springmvc+mybatis+dubbo+zookeeper分布式架构 整合 - maven构建ant-utils工具项目_chukaopi2273的博客-爱代码爱编程

今天重点讲解的是ant-utils工具包的构建过程。 导语:ant-utils是核心工具包,提供整个架构通用工具类库 1. 创建ant-utils工具包子项目,继承ant-parent根项目,其中pom.xml配置如下: <span style="font-size: 14px;"><?xml version="

游戏行业洞察:分布式开源爬虫项目在数据采集与分析中的应用案例介绍-爱代码爱编程

前言 我在领导一个为游戏行业巨头提供数据采集服务的项目中,我们面临着实时数据需求和大规模数据处理的挑战。我们构建了一个基于开源分布式爬虫技术的自动化平台,实现了高效、准确的数据采集。通过自然语言处理技术,我们确保了数据的质量和一致性,并采用分布式架构大幅提升了处理速度。最终,我们的解决方案不仅满足了客户对实时市场洞察的需求,还推动了整个游戏行业的数据

分布式场景怎么join | 京东云技术团队-爱代码爱编程

背景 最近在阅读查询优化器的论文,发现System R中对于Join操作的定义一般分为了两种,即嵌套循环、排序-合并联接。在原文中,更倾向使用排序-合并联接逻辑。 考虑到我的领域是在处理分库分表或者其他的分区模式,这让我

2023 h1 中国边缘公有云服务市场 top2,百度智能云加速推动分布式云智能化升级-爱代码爱编程

近期,IDC 发布了《中国边缘云市场跟踪研究 2023 H1》。报告显示,2023 上半年,中国边缘公有云服务市场规模 24.3 亿元,同比增速达到 41.8%。 其中,百度智能云以 15.7% 的市场份额位列中国边缘公有云服务市场第二,并在边缘公有云服务市场 TOP5 中保持第一名的业务增速。 IDC 报告中指出:2023 上半年,疫情后限制措施