JNPF3.4版本 3.3.3版本 最新版源码,JNPF快速开发框架源码目录截图

JNPF是一个灵活可扩展的开发框架,采用前后端分离,支持服务注册与发现、统一授权认证。后端基于Spring Cloud Alibaba,前端使用Vue全家桶。提供权限控制、链路调用监控、多租户支持和多种数据库适配。集成多种组件如Sentinel、Elasticsearch,提供API管理、文件服务和即时通讯功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  JNPF快速开发框架是一个可复用的设计构件,使用JNPF的编程人员可以在一个通用功能已经实现的基础上开始具体的系统开发。JNPF快速开发框架是一个可复用的设计构件,使用JNPF的编程人员可以在一个通用功能已经实现的基础上开始具体的系统开发。

平台设计灵活可扩展、可移植、可应对高并发需求。同时兼顾本地化、私有云、公有云部署,支持SaaS模式应用。

  • 采用前后端分离的模式:前端基于vue-element-admin框架定制开发,后端采用Spring Cloud Alibaba全家桶;

  • 服务注册&发现与调用:基于Nacos来实现的服务注册与发现,使用Open Feign/Dubbo RPC来实现服务互调;

  • 统一授权认证:基于 Spring SecuritySpring OAuth2、JWT 实现的统一认证服务中心,登录基于 spring security 的标准登录流程。客户端授权支持 oauth2.0 的四种授权模式:授权码模式、简化模式、密码模式、客户端模式,授权流程跟标准的 oauth2 流程一致。web 端采用简化模式(implicit)登录系统,移动端可使用密码模式(password)登录系统。同时还支持基于 Spring Social 的三方账号登录方式,如微信、QQ等。

  • 业务熔断:采用Sentinel实现业务流量控制、熔断降级、系统负载等多个维度保护服务的稳定性;

  • 应用监控:利用Spring Boot Admin来监控各个服务的运行状态;

  • 链路调用监控:基于SkyWalking作为项目的全链路性能监控, 从整体维度到局部维度展示各项指标,将跨应用的所有调用链性能信息集中展现,可方便度量整体和局部性能,并且方便找到故障产生的源头,生产上可极大缩短故障排除时间;

  • 灵活的权限控制:基于RBAC权限管理,该功能模块下的功能用于维护企业的组织架构信息以及员工信息。主要包含了组织架构管理、部门管理、分级管理员、角色管理、岗位管理、企业通讯录、通信录同步等功能。用户可在此功能模块下维护公司的组织架构信息(组织/部门/角色/岗位)和用户信息,也可以通过第三方应用(钉钉/企业微信)将组织架构信息一键导入到系统中,也可以使用组织架构和员工信息的导入功能将数据导入到系统中;

  • 支持多租户:简单配置即可转为多租户模式,实现数据隔离;

  • 支持多种数据库:支持MySQLOracleSQL Server达梦数据库人大金仓数据库PostgreSQL,您无需关心不同类型数据库间的语法区别;

  • 统一接口管理:基于Swagger拓展的API文档服务,主要提供在平台开发阶段的API文档管理和API调试等功能。

private SemaphoreSlim _sem = new SemaphoreSlim(0, 1);
private CancellationTokenSource _cts = new CancellationTokenSource();

[Benchmark]
public Task WithCancellationToken()
{
    Task t = _sem.WaitAsync(_cts.Token);
    _sem.Release();
    return t;
}

[Benchmark]
public Task WithTimeout()
{
    Task t = _sem.WaitAsync(TimeSpan.FromMinutes(1));
    _sem.Release();
    return t;
}

[Benchmark]
public Task WithCancellationTokenAndTimeout()
{
    Task t = _sem.WaitAsync(TimeSpan.FromMinutes(1), _cts.Token);
    _sem.Release();
    return t;
}

后端技术栈

  • 主框架:Spring Cloud Alibaba + Spring Boot + Spring Framework
  • 安全框架:Spring Cloud Security OAuth2+JWT
  • 持久层框架:Mybatis-plus、Hibernate Validation、
  • 数据库连接池:Alibaba Druid
  • JSON序列化:Jackson&FastJSON
  • 数据缓存:Redis
  • 消息队列: RocketMQ
  • API网关:Spring Cloud Gateway
  • 服务注册&发现和配置中心: Nacos
  • 服务监控:Spring Boot Admin
  • 服务消费:OpenFeign/Dubbo RPC
  • 日志收集:E(Elasticsearch)+L(Logstash)+K(Kibana)
  • 负载均衡:Ribbon
  • 服务熔断:Sentinel
  • 项目构建:Maven
  • 分布式事务:Seata
  • 代码生成器:Mybatis-plus-generator
  • 链路追踪:Skywalking
  • 模板引擎:Velocity
  • 即时通讯:spring-boot-starter-websocket
  • AOP:spring-boot-starter-aop
  • 文件服务:阿里云OSS、本地存储、七牛云kodo、腾讯cos、MinIO

前端技术栈

  • Vue2 全家桶
  • Element-ui
  • axios
  • sass
  • echarts
  • dayjs

数据库支持

可支持多种关系型数据库,可根据需求再扩展支撑其他数据库:

  • MySQL
  • Oracle
  • SQLServer
  • PostgreSQL
  • 达梦数据库(DM8)
  • 人大金创数据库

using System.Text.Json;

namespace SerializeBasic
{
    public class WeatherForecast
    {
        public DateTimeOffset Date { get; set; }
        public int TemperatureCelsius { get; set; }
        public string? Summary { get; set; }
    }

    public class Program
    {
        public static void Main()
        {
            var weatherForecast = new WeatherForecast
            {
                Date = DateTime.Parse("2019-08-01"),
                TemperatureCelsius = 25,
                Summary = "Hot"
            };

            string jsonString = JsonSerializer.Serialize(weatherForecast);

            Console.WriteLine(jsonString);
        }
    }
}
// output:
//{"Date":"2019-08-01T00:00:00-07:00","TemperatureCelsius":25,"Summary":"Hot"}

[Benchmark(OperationsPerInvoke = 1_000_000)]
public void CreateManyRegisterDispose()
{
    using (var cts = new CancellationTokenSource())
    {
        CancellationToken ct = cts.Token;
        for (int i = 0; i < 1_000_000; i++)
            ct.Register(s => { }, null).Dispose();
    }
}

[Benchmark(OperationsPerInvoke = 1_000_000)]
public void CreateManyRegisterMultipleDispose()
{
    using (var cts = new CancellationTokenSource())
    {
        CancellationToken ct = cts.Token;
        for (int i = 0; i < 1_000_000; i++)
        {
            var ctr1 = ct.Register(s => { }, null);
            var ctr2 = ct.Register(s => { }, null);
            var ctr3 = ct.Register(s => { }, null);
            var ctr4 = ct.Register(s => { }, null);
            var ctr5 = ct.Register(s => { }, null);
            ctr5.Dispose();
            ctr4.Dispose();
            ctr3.Dispose();
            ctr2.Dispose();
            ctr1.Dispose();
        }
    }
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值