有没有成功使用 typeScript 重写 Java Spring/中间件 项目的案例 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐关注
Meteor
JSLint - a Javascript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
Javascript 权威指南第 5 版
Closure: The Definitive Guide
v2e0xAdmin2
V2EX    Javascript

有没有成功使用 typeScript 重写 Java Spring/中间件 项目的案例

  •  
  •   v2e0xAdmin2 2024-07-01 13:59:32 +08:00 2051 次点击
    这是一个创建于 467 天前的主题,其中的信息可能已经有所发展或是发生改变。

    RT 。

    java 实在是写腻了,听 v 友们说 ts 很牛,我想问问能不能用 ts 写 spring 类似的项目,比如 filter ,controller ,ioc ,事务,aop ,mybatisplus 之类的 ts 库成熟不?有类似的项目可以分享一下,感谢。

    背景:题主 7 年 Java 开发,会一丢丢 js ,没写过 ts 。但对 ts 有好感。准备拿 ts 改造公司的几个 Java 小项目练习一下 ts 。

    v2e0xAdmin2
        1
    v2e0xAdmin2  
    OP
       2024-07-01 14:26:57 +08:00
    TS ( TypeScript )在近年来得到了广泛的应用,尤其是在前端开发中。然而,TS 也可以用于构建类似 Spring 框架的后端项目。虽然 TS 在后端的生态可能不如 Java 那么成熟,但仍有一些库和框架可以实现类似 Spring 的功能,包括 IOC (依赖注入)、AOP (面向切面编程)、事务管理等。

    以下是一些可以帮助你用 TS 实现类似 Spring 项目的库和框架:

    1. NestJS
    NestJS 是一个用于构建高效且可伸缩的服务器端应用程序的渐进 Node.js 框架。它使用了现代的 Javascript ,结合了 TypeScript 的优点,并受到了 Angular 的启发,具有类似于 Spring 的架构。

    IOC/DI (依赖注入): NestJS 内置了强大的依赖注入系统。
    AOP (面向切面编程): 通过中间件和拦截器实现。
    Controllers: 类似于 Spring 的控制器,NestJS 通过装饰器来定义路由和控制器。
    Filters: 通过异常过滤器实现类似 Spring 的过滤器功能。
    ORM: 支持 TypeORM 、Sequelize 等 ORM 库,可以使用类似 MyBatis 的功能。
    更多关于 NestJS 的信息

    2. TypeORM
    TypeORM 是一个 ORM 框架,它可以与 NestJS 结合使用来实现数据库操作。

    事务管理: 支持事务管理。
    Repository 模式: 类似于 Spring Data JPA 。
    TypeORM

    3. InversifyJS
    InversifyJS 是一个强大的依赖注入库,可以用于构建类似于 Spring 的依赖注入系统。

    InversifyJS
    weijancc
        2
    weijancc  
       2024-07-01 15:5:51 +08:00
    ts 写 web 真没必要, 只适合不熟悉其他语言的前端, 要初尝后端时使用, 跟 Java 比起来没优势
    DaneWalters
        3
    DaneWalters  
       2024-07-01 17:37:33 +08:00
    题主可以了解一下 honojs( https://hono.dev)
    v2e0xAdmin2
        4
    v2e0xAdmin2  
    OP
       2024-07-01 17:42:52 +08:00
    @weijancc soga ,hhhhh ,我原本想着 ts 很强了,小项目就不用 java 了
    v2e0xAdmin2
        5
    v2e0xAdmin2  
    OP
       2024-07-01 17:47:30 +08:00
    @DaneWalters 我看看,感谢
    DaneWalters
        6
    DaneWalters  
       2024-07-01 18:01:56 +08:00
    @v2e0xAdmin2 可以尝试一下,小项目用 ts + deno ,还挺舒服的,很多人说性能瓶颈其实没有几个项目会遇到的,即使遇到了也不一定换一种语言就能解决,写着舒服就行了,当然我没有用过 java 也不敢下定论,哈哈。不过相比于一些比较重的框架,这种小而美反倒是眼前一亮。
    northquq
        7
    northquq  
       2024-07-02 10:00:42 +08:00
    nestjs 就行,标准的类 spring 框架
    LandCruiser
        8
    LandCruiser  
       2024-07-02 10:47:21 +08:00
    高估了,我用 nest 那一套写过一个后台管理系统,typeorm 连更新树形嵌套数据都有问题,github issue 上也有好多案例。
    反正 nestjs 这套东西我觉得远没有 java 生态成熟
    v2e0xAdmin2
        9
    v2e0xAdmin2  
    OP
       2024-07-02 12:32:29 +08:00
    @LandCruiser okok ,感谢,那看来是不行了,只能写写客户端小工具了
    v2e0xAdmin2
        10
    v2e0xAdmin2  
    OP
       2024-07-02 12:32:49 +08:00
    @northquq 听楼下的回复说不太行?
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1153 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 40ms UTC 17:48 PVG 01:48 LAX 10:48 JFK 13:48
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86