第1章 获取数据库中的数据

    CoreShop源程序是以数据库优先进行定义的,所以其本身不包含代码优先的定义,但本从更习惯于代码优先,所以为其定义了代码优先的定义。

1 CoreCms.Net.Model.Entities.SysRole

using SqlSugar;

using System.ComponentModel.DataAnnotations;

namespace CoreCms.Net.Model.Entities

{

    /// <summary>

    /// 【系统角色--类】

    /// <remarks>

    /// 摘要:

    ///     通过该实体类及其属性成员,用于实现当前程序【CoreCms.Net.Model.【实体集】.SysRole】实体与“[CoreShop230628].[SysRole]”表之间的CURD的交互操作,并把这些数据存储到数据库设置实例中(内存)

    /// </remarks>

    /// </summary>

    [SugarTable("SysRole", TableDescription = "角色表")]

    public class SysRole

    {

        /// <summary>

        /// 【角色编号】

        /// <remarks>

        /// 摘要:

        ///     获取/设置系统角色实体1个指定实例的整型编号值。

        /// IsPrimaryKey:主键

        /// IsIdentit:自增

        /// </remarks>

        /// </summary>

        [Display(Name = "角色编号")]

        [SugarColumn(ColumnDescription = "角色编号", IsPrimaryKey = true, IsIdentity = true)]

        [Required(ErrorMessage = "请输入{0}")]

        public int Id { get; set; }

        /// <summary>

        /// 【角色名称】

        /// <remarks>

        /// 摘要:

        ///     获取/设置1个指定系统角色的名称。

        /// </remarks>

        /// </summary>

        [Display(Name = "角色名称")]

        [SugarColumn(ColumnDescription = "角色名称", ColumnDataType = "nvarchar", Length = 50)]

        [Required(ErrorMessage = "请输入{0}")]

        [StringLength(50, ErrorMessage = "{0}】不能超过{1}字符长度")]

        public string RoleName { get; set; }

        /// <summary>

        /// 【角色名称】

        /// <remarks>

        /// 摘要:

        ///     获取/设置1个指定系统角色的标识。

        /// </remarks>

        /// </summary>

        [Display(Name = "角色标识")]

        [SugarColumn(ColumnDescription = "角色标识", ColumnDataType = "nvarchar", Length = 50, IsNullable = true)]

        [StringLength(50, ErrorMessage = "{0}】不能超过{1}字符长度")]

        public string RoleCode { get; set; }

        /// <summary>

        /// 【角色名称】

        /// <remarks>

        /// 摘要:

        ///     获取/设置1个指定系统角色的备注。

        /// </remarks>

        /// </summary>

        [Display(Name = "备注")]

        [SugarColumn(ColumnDescription = "备注",  ColumnDataType = "nvarchar", Length = 255, IsNullable = true)]

        [StringLength(255, ErrorMessage = "{0}】不能超过{1}字符长度")]

        public string Comments { get; set; }

        /// <summary>

        /// 【逻辑删除?】

        /// <remarks>

        /// 摘要:

        ///     获取/设置1个值false(可用=0)/true(已经被逻辑删除=1),该值指示系统角色实体的1个指定实例是否已经处于逻辑删除状态。

        /// </remarks>

        /// </summary>

        [Display(Name = "是否删除,0,1")]

        [SugarColumn(ColumnDescription = "是否删除,0,1")]

        [Required(ErrorMessage = "请输入{0}")]

        public bool Deleted { get; set; }

        /// <summary>

        /// 【创建时间】

        /// <remarks>

        /// 摘要:

        ///     获取/设置系统角色实体1个指定实例第1次被持久化到系统角色表中的时间。

        /// </remarks>

        /// </summary>

        [Display(Name = "创建时间")]

        [SugarColumn(ColumnDescription = "创建时间")]

        [Required(ErrorMessage = "请输入{0}")]

        public DateTime CreateTime { get; set; }

        /// <summary>

        /// 【修改时间】

        /// <remarks>

        /// 摘要:

        ///     获取/设置系统角色1个指定实例最后1次被修改后,持久化到系统角色表中的时间。

        /// </remarks>

        /// </summary>

        [Display(Name = "修改时间")]

        [SugarColumn(ColumnDescription = "修改时间")]

        public DateTime UpdateTime { get; set; }

    }

}

2 CoreCms.Net.Model.Entities.SysUser

using SqlSugar;

using System.ComponentModel.DataAnnotations;

namespace CoreCms.Net.Model.Entities

{

    /// <summary>

    /// 【系统用户--类】

    /// <remarks>

    /// 摘要:

    ///     通过该实体类及其属性成员,用于实现当前程序【CoreCms.Net.Model.【实体集】.SysUser】实体与“[CoreShop230628].[SysUser]”表之间的CURD的交互操作,并把这些数据存储到数据库设置实例中(内存)

    /// </remarks>

    /// </summary>

    [SugarTable("SysUser", TableDescription = "用户表")]

    public partial class SysUser

    {

        /// <summary>

        /// 【系统用户色编号】

        /// <remarks>

        /// 摘要:

        ///     获取/设置系统角色实体1个指定实例的整型编号值。

        /// IsPrimaryKey:主键

        /// IsIdentit:自增

        /// </remarks>

        /// </summary>

        [Display(Name = "用户id")]

        [SugarColumn(ColumnDescription = "用户id", IsPrimaryKey = true, IsIdentity = true)]

        [Required(ErrorMessage = "请输入{0}")]

        public int Id { get; set; }

        /// <summary>

        /// 【账号】

        /// <remarks>

        /// 摘要:

        ///     获取/设置1个指定系统用户的账号名称。

        /// </remarks>

        /// </summary>

        [Display(Name = "账号")]

        [SugarColumn(ColumnDescription = "账号", ColumnDataType = "nvarchar", Length = 50, IsNullable = true)]

        [StringLength(50, ErrorMessage = "{0}】不能超过{1}字符长度")]

        public string UserName { get; set; }

        /// <summary>

        /// 【密码】

        /// <remarks>

        /// 摘要:

        ///     获取/设置1个指定系统用户的登录密码。

        /// </remarks>

        /// </summary>

        [Display(Name = "密码")]

        [SugarColumn(ColumnDescription = "密码", ColumnDataType = "nvarchar", Length = 100, IsNullable = true)]

        [StringLength(100, ErrorMessage = "{0}】不能超过{1}字符长度")]

        public string PassWord { get; set; }

        /// <summary>

        /// 【昵称】

        /// <remarks>

        /// 摘要:

        ///     获取/设置1个指定系统用户的昵称。

        /// </remarks>

        /// </summary>

        [Display(Name = "昵称")]

        [SugarColumn(ColumnDescription = "昵称", ColumnDataType = "nvarchar", Length = 50, IsNullable = true)]

        [StringLength(50, ErrorMessage = "{0}】不能超过{1}字符长度")]

        public string NickName { get; set; }

        /// <summary>

        /// 【昵称】

        /// <remarks>

        /// 摘要:

        ///     获取/设置1个指定系统用户的头像。

        /// 说明:

        ///     该属性通过网络格式的绝/相对路径来映射用户头像图片。

        /// </remarks>

        /// </summary>

        [Display(Name = "头像")]

        [SugarColumn(ColumnDescription = "头像", ColumnDataType = "nvarchar", Length = 255, IsNullable = true)]

        [StringLength(255, ErrorMessage = "{0}】不能超过{1}字符长度")]

        public string Avatar { get; set; }

        /// <summary>

        /// 【性别】

        /// <remarks>

        /// 摘要:

        ///     获取/设置1个指定系统用户的性别。

        /// </remarks>

        /// </summary>

        [Display(Name = "性别")]

        [SugarColumn(ColumnDescription = "性别")]

        [Required(ErrorMessage = "请输入{0}")]

        public int Sex { get; set; }

        /// <summary>

        /// 【手机号】

        /// <remarks>

        /// 摘要:

        ///     获取/设置1个指定系统用户的手机号。

        /// </remarks>

        /// </summary>

        [Display(Name = "手机号")]

        [SugarColumn(ColumnDescription = "手机号", ColumnDataType = "nvarchar", Length = 50, IsNullable = true)]

        [StringLength(50, ErrorMessage = "{0}】不能超过{1}字符长度")]

        public string Phone { get; set; }

        /// <summary>

        /// 【邮箱】

        /// <remarks>

        /// 摘要:

        ///     获取/设置1个指定系统用户的邮箱。

        /// </remarks>

        /// </summary>

        [Display(Name = "邮箱")]

        [SugarColumn(ColumnDescription = "邮箱", ColumnDataType = "nvarchar", Length = 50, IsNullable = true)]

        [StringLength(50, ErrorMessage = "{0}】不能超过{1}字符长度")]

        public string Email { get; set; }

        /// <summary>

        /// 【邮箱验证?】

        /// <remarks>

        /// 摘要:

        ///     获取/设置1个值false(不需要)/true(需要),该值指示1个指定系统用户是否需要在邮箱验证操作后才能执行登录操作。

        /// </remarks>

        /// </summary>

        [Display(Name = "邮箱是否验证")]

        [SugarColumn(ColumnDescription = "邮箱是否验证")]

        [Required(ErrorMessage = "请输入{0}")]

        public bool EmailVerified { get; set; }

        /// <summary>

        /// 【实名】

        /// <remarks>

        /// 摘要:

        ///     获取/设置1个指定系统用户的实名。

        /// </remarks>

        /// </summary>

        [Display(Name = "真实姓名")]

        [SugarColumn(ColumnDescription = "真实姓名", ColumnDataType = "nvarchar", Length = 50, IsNullable = true)]

        [StringLength(50, ErrorMessage = "{0}】不能超过{1}字符长度")]

        public string TrueName { get; set; }

        /// <summary>

        /// 【身份证号】

        /// <remarks>

        /// 摘要:

        ///     获取/设置1个指定系统用户的身份证号。

        /// </remarks>

        /// </summary>

        [Display(Name = "身份证号")]

        [SugarColumn(ColumnDescription = "身份证号", ColumnDataType = "nvarchar", Length = 50, IsNullable = true)]

        [StringLength(50, ErrorMessage = "{0}】不能超过{1}字符长度")]

        public string IdCard { get; set; }

        /// <summary>

        /// 【出生日期】

        /// <remarks>

        /// 摘要:

        ///     获取/设置1个指定系统用户的生日。

        /// </remarks>

        /// </summary>

        [Display(Name = "出生日期")]

        [SugarColumn(ColumnDescription = "出生日期", IsNullable = true)]

        public DateTime? Birthday { get; set; }

        /// <summary>

        /// 【个人简介】

        /// <remarks>

        /// 摘要:

        ///     获取/设置1个指定系统用户的个人简介。

        /// </remarks>

        /// </summary>

        [Display(Name = "个人简介")]

        [SugarColumn(ColumnDescription = "个人简介", ColumnDataType = "nvarchar", Length = 500, IsNullable = true)]

        [StringLength(500, ErrorMessage = "{0}】不能超过{1}字符长度")]

        public string Introduction { get; set; }

        /// <summary>

        /// 【机构编号】

        /// <remarks>

        /// 摘要:

        ///     获取/设置1个指定系统用户的机构编号。

        /// </remarks>

        /// </summary>

        [Display(Name = "机构id")]

        [SugarColumn(ColumnDescription = "机构id", IsNullable = true)]

        public int? OrganizationId { get; set; }

        /// <summary>

        /// 【状态】

        /// <remarks>

        /// 摘要:

        ///     获取/设置1个值0(正常)/1 (冻结),该值指示1个指定系统用户是否需要在邮箱验证操作后才能执行登录操作。

        /// </remarks>

        /// </summary>

        [Display(Name = "状态,0正常,1冻结")]

        [SugarColumn(ColumnDescription = "状态,0正常,1冻结")]

        [Required(ErrorMessage = "请输入{0}")]

        public int State { get; set; }

        /// <summary>

        /// 【逻辑删除?】

        /// <remarks>

        /// 摘要:

        ///     获取/设置1个值false(可用=0)/true(已经被逻辑删除=1),该值指示系统用户实体的1个指定实例是否已经处于逻辑删除状态。

        /// </remarks>

        /// </summary>

        [Display(Name = "是否删除,0,1")]

        [SugarColumn(ColumnDescription = "是否删除,0,1")]

        [Required(ErrorMessage = "请输入{0}")]

        public bool Deleted { get; set; }

        /// <summary>

        /// 【注册时间】

        /// <remarks>

        /// 摘要:

        ///     获取/设置系统用户实体1个指定实例第1次被持久化到系统用户表中的时间。

        /// </remarks>

        /// </summary>

        [Display(Name = "注册时间")]

        [SugarColumn(ColumnDescription = "注册时间")]

        [Required(ErrorMessage = "请输入{0}")]

        public DateTime CreateTime { get; set; }

        /// <summary>

        /// 【修改时间】

        /// <remarks>

        /// 摘要:

        ///     获取/设置系统用户1个指定实例最后1次被修改后,持久化到系统角色表中的时间。

        /// </remarks>

        /// </summary>

        [Display(Name = "修改时间")]

        [SugarColumn(ColumnDescription = "修改时间", IsNullable = true)]

        public DateTime UpdateTime { get; set; }

    }

}

3 CoreCms.Net.Core.Config.SqlSugarSetup

using Microsoft.Extensions.DependencyInjection;

using SqlSugar;

using SqlSugar.IOC;                  

using System.Reflection;

namespace CoreCms.Net.Core.Config

{

    /// <summary>

    /// SqlSugarCore中间件启动--类】

    /// <remarks>

    /// 摘要:

    ///     通过该类中的方法成员,把SqlSugarCore中间件依赖注入到.Net(Core)框架内置依赖注入容器中。

    /// </remarks>

    /// </summary>

    public static class SqlSugarSetup

    {

        /// <param name="services">.Net(Core)框架内置依赖注入容器实例。</param>

        /// <summary>

        /// 【配置服务】

        /// <remarks>

        /// 摘要:

        ///     通过该方法成员,把SqlSugarCore中间件依赖注入到.Net(Core)框架内置依赖注入容器中。。

        /// </remarks>

        /// </summary>

        public static void AddSqlSugarSetup(this IServiceCollection services)

        {

            if (services == null) throw new ArgumentNullException(nameof(services));

            //注入 ORM

            SugarIocServices.AddSqlSugar(new IocConfig()

            {

                //数据库连接

                /*ConnectionString = AppSettingsConstVars.DbSqlConnection,

                //判断数据库类型

                DbType = AppSettingsConstVars.DbDbType == IocDbType.MySql.ToString() ? IocDbType.MySql : IocDbType.SqlServer,*/

                ConnectionString = "Server=.;uid=zz;pwd=zz;Database=CoreShop230628;MultipleActiveResultSets=true;pooling=true;min pool size=5;max pool size=32767;connect timeout=20;Encrypt=True;TrustServerCertificate=True;",

                DbType = IocDbType.SqlServer,

                //是否开启自动关闭数据库连接-//不设成true要手动close

                IsAutoCloseConnection = true,

            });

            //设置参数

            services.ConfigurationSugar(db =>

            {

                db.CurrentConnectionConfig.InitKeyType = InitKeyType.Attribute;

                //说明:CoreShop的程序是数据库优先,即必须先生成指定的数据库,本人更为喜欢代码优先所以进行了以下定义来实现代码优先。

                //如果指定的数据库软件中不存在指定的数据库,则自动生成该数据库。

                db.DbMaintenance.CreateDatabase();

                //通过反射操作,获取领域文件夹中的所有实体的类型实例。

                //直接获取指定项目中所有类的类型实例。

                Assembly assembly = Assembly.Load("CoreCms.Net.Model");

                //通过过滤操作,获取领域文件夹中的所有实体的类型实例。

                //注意:“Where”过滤操作中“ c.Namespace”最好使用“Contains”,而不要使用“==”

                Type[] _typeArray = assembly.GetTypes()

                    .Where(c => c.Namespace.Contains("CoreCms.Net.Model.Entities") && c.IsClass)//过滤操作。

                    .ToArray();

                //如果数据库软件对自动生成的数据库支持自动备份操作,则通过下行语句在自动生成该数据库中,根据当前项目中的实体类自动生成相应的表。

                //注意:SetStringDefaultLength(stringDefaultLength)必须定义在下行语句中,否则在自动生成表时,该约束定义将不会被映射到表的字段上。

                db.CodeFirst.SetStringDefaultLength(50).BackupTable().InitTables(_typeArray);

            });

        }

    }

}

4 Program.cs

using CoreCms.Net.Core.Config;

var builder = WebApplication.CreateBuilder(args);

//添加数据库连接SqlSugar注入支持

builder.Services.AddSqlSugarSetup();

5 CoreCms.Net.Web.Admin.Controllers.SysRoleController

using Microsoft.AspNetCore.Mvc;

using System.ComponentModel;

using SqlSugar;

using SqlSugar.IOC;

using CoreCms.Net.Model.Entities;

namespace CoreCms.Net.Web.Admin.Controllers

{

    [ApiController]

    [Route("[controller]/[action]")]

    public class SysRoleController : ControllerBase

    {

      private readonly ISqlSugarClient _sqlSugarClient;

        private ISqlSugarClient DbBaseClient;

        public SysRoleController()

        {

            _sqlSugarClient = DbScoped.SugarScope;

        }

        private SqlSugarScope GetDbClient()

        {

            // 必须要as,后边会用到切换数据库操作

            return _sqlSugarClient as SqlSugarScope;

        }

        #region 获取列表============================================================

        [HttpPost]

        [Description("获取列表")]

        public async Task</*AdminUiCallBack*/ bool> GetPageList()

        {

            DbBaseClient = GetDbClient();

          var v = await DbBaseClient

                .Queryable<SysRole>()

                .ToListAsync();

            return true;

        }

        #endregion

    }

}

 

对以上功能更为具体实现和注释见:230725_001CoreShop230628(获取数据库中的数据)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/8362.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【JavaEE初阶】Tomcat安装与使用及初识Servlet

文章目录 1. Tomcat的安装与使用1.1 Tomcat安装1.2 Tomcat的启动1.3 Tomcat部署前端页面 2. Servlet2.1 Servlet是什么2.2 第一个Servlet程序2.3 常见错误 1. Tomcat的安装与使用 1.1 Tomcat安装 在浏览器中搜索Tomcat,打开官方网页.Tomcat官网 点击下载Tomcat8. 点击下载压…

PSP - 使用 MMseqs2 工具快速搜索蛋白质序列数据库 (GMGC)

欢迎关注我的CSDN&#xff1a;https://spike.blog.csdn.net/ 本文地址&#xff1a;https://spike.blog.csdn.net/article/details/131934642 MMseq2 是非常强大和高效的生物信息学软件&#xff0c;可以在极短的时间内对大规模的核苷酸和蛋白质序列进行搜索和聚类。主要特点有&a…

fpga_pwm呼吸灯(EP4CE6F17C8)

文章目录 一、呼吸灯二、代码实现三、引脚分配 一、呼吸灯 呼吸灯是指灯光在微电脑的控制之下完成由亮到暗的逐渐变化&#xff0c;使用开发板上的四个led灯实现1s间隔的呼吸灯。 二、代码实现 c module pwm_led( input clk ,input rst_n ,output reg [3:0] led ); …

spring学习笔记六

一、构造器注入 1.1、BookDao接口和实现类 public interface BookDao {void save(); } public class BookDaoImpl implements BookDao {private int connectionNum;private String databaseName;public BookDaoImpl(int connectionNum, String databaseName) {this.connectio…

【Spring MVC】小文件下载的多种方法

文章目录 HTTP Header 之 Content-Disposition文件下载代码Servlet 实现方式 1Servlet 实现方式 2Spring 实现方式 1 Content-Disposition 指定 inline Win、JDK 17、 Spring Boot 3.1.2 HTTP Header 之 Content-Disposition 以下内容来自 mdn web docs 在常规的 HTTP 应答中&…

c++网络编程:Boost.asio源码剖析

1、前言 Boost库是一个可移植、提供源代码的C库&#xff0c;作为标准库的后备&#xff0c;是C标准化进程的开发引擎之一。Boost库由C标准委员会库工作组成员发起&#xff0c;其中有些内容有望成为下一代C标准库内容。在C社区中影响甚大&#xff0c;是不折不扣的“准”标准库。…

未来行星探索希望:新型多脚机器人-团队版

机器人正在探索一个模拟的外星环境 即使一个机器人失败了&#xff0c;其余的团队成员也可以抵消它的损失。 背景 虽然探测器取得了令人难以置信的发现&#xff0c;但它们的轮子可能会拖慢它们的速度&#xff0c;而不稳定的地形可能会导致损坏。虽然没有东西可以取代“毅力号”…

Vue3输入框(Input)

APIs 参数说明类型默认值必传width输入框宽度string | number‘100%’falseaddonBefore设置前置标签string | slot‘’falseaddonAfter设置后置标签string | slot‘’falseallowClear可以点击清除图标删除内容booleanfalsefalsepassword是否启用密码框booleanfalsefalsedisabl…

tomcat调优2-具体实现

您好,可以通过修改Tomcat的配置文件来实现上述的Tomcat调优措施。 更改JVM内存配置 在Catalina服务的启动脚本catalina.sh中找到JAVA_OPTS变量,增加Java堆空间参数: JAVA_OPTS“-Xms512m -Xmx4096m” 调整线程池参数 在server.xml中的Connector标签中添加executor属性: &…

两个小封装电机驱动芯片:MLX813XX、A4950

一&#xff0e;MLX813XX MELEXIS的微型电机驱动MLX813XX系列芯片集成MCU、预驱动以及功率模块等能够满足10W以下的电机驱动。 相对于普通分离器件的解决方案&#xff0c;MLX813XX系列电机驱动芯片是一款高集成度的驱动控制芯片&#xff0c;可以满足汽车系统高品质和低成本的要…

Spring Boot实践一

一、Spring Boot简介 Spring Boot是一个基于Spring框架的快速开发应用程序的工具。它提供了一种快速、方便的方式来创建基于Spring的应用程序&#xff0c;而无需繁琐的配置。Spring Boot通过自动配置和约定大于配置的方式&#xff0c;使得开发者可以更加专注于业务逻辑的实现&…

【CEEMDAN-WOA-LSTM】完备集合经验模态分解-鲸鱼优化-长短时记忆神经网络研究(Python代码实现)

目录 &#x1f4a5;1 概述 1.1 完备集合经验模态分解原理 1.2 鲸鱼优化 1.3 LSTM &#x1f4da;2 运行结果 &#x1f389;3 参考文献 &#x1f308;4 Python代码实现 &#x1f4a5;1 概述 1.1 完备集合经验模态分解原理 早期的 EMD 方法具有较强的自适应性&#xff0c;能够有…

【node.js】03-http模块

目录 一、什么是http模块 二、创建基本的WEB服务器 三、req请求对象 四、res响应对象 五、根据不同的url响应不同的JSON内容 一、什么是http模块 http 模块是 Node.js 官方提供的、用来创建 web 服务器的模块。通过 http 模块提供的 http.createServer() 方法&#xff0c;…

Etcd 节点为啥不能设置偶数

在etcd集群中&#xff0c;最好不要设置偶数数量的节点。这是因为etcd使用Raft一致性算法来确保数据的一致性和高可用性。Raft算法要求在进行Leader选举和数据复制时&#xff0c;节点数必须是奇数个&#xff0c;以保证算法的正确性和容错性。 主要原因如下&#xff1a; Leader选…

深度学习推理和训练

优化和泛化 深度学习的根本问题是优化和泛化之间的对立。 • 优化&#xff08;optimization&#xff09;是指调节模型以在 训练数据 上得到最佳性能&#xff08;即机器学习中的学习&#xff09;。 • 泛化&#xff08;generalization&#xff09;是指训练好的模型在 前所未…

软考高级科目怎么选?这份秘籍请收好!

2023年软考下半年报名即将开启&#xff0c;软考高级含金量比较高&#xff0c;每年很多人报名&#xff0c;要考软考高级&#xff0c;选哪个科目比较好是每年大家关心的&#xff0c;2023年软考高级选哪个科目还得结合自身所学和工作所需去选择。看工作岗位的需求&#xff0c;工作…

Java的0xFFFF在赋值、比较时引起的困惑

Java中的0xFFFF是整型&#xff0c;在赋值、比较的时候容易引起混淆&#xff0c;涉及到符号位、数值大小&#xff0c;赋值给什么类型的变量。我今天在编码的时候就遇到了一些困惑。用代码样例的形式记录下来&#xff0c;加深理解&#xff1a; package com.thb;public class Tes…

在Springboot集成Activiti工作流引擎-任务分配 三种模式【基础讲解】

任务分配 三种模式 1. 固定分配 指定人去做 2. UEL表达式分配 activiti使用uel表达式&#xff0c;UEL是java EE6规范的一部分&#xff0c;UEL即统一表达式语言 activiti支持两个UEL表达式&#xff1a;UEL-value 和 UEL-method UEL-value 写法 ${变量} ${assignee1} 测试 //…

RT-Thread快速入门-定时器管理

1时钟节拍 任何操作系统都需要提供一个时钟节拍&#xff0c;以供系统处理所有和时间有关的事件&#xff0c;如延时、线程的时间片轮转调度以及定时器超时等。时钟节拍&#xff08;OS Tick&#xff09;是操作系统中最小的时间单位。 时钟节拍是特定的周期性中断&#xff0c;这…

java模板模式

在Java中&#xff0c;模板模式&#xff08;Template Design Pattern&#xff09;用于定义算法的骨架&#xff0c;并将一些步骤的具体实现延迟到子类中。模板模式是一种行为型设计模式&#xff0c;它允许在父类中定义算法的结构&#xff0c;但允许子类重写某些步骤的具体实现。 …