CNode

原生js实现java的spring框架

分享
8892280082发布于4 年前最后回复4 年前4 回复9367 浏览0 收藏

前言

写一些简单的应用node比java方便太多了,如果有了spring加成岂不是更加如虎添翼,嘿嘿。

传送门

spring-ioc

介绍

  • 原生js实现
  • 不依赖第三方库
  • 不需要babel编译
  • 开发模式与java的spring一致,运行时可以拿到注解。

代码用例

代码用例

主程序代码 ./app/Application.js

const {SpringProxy} = require('../spring')

//@Proxy(annotation=Service)
class TransactionManager {
	//beanDefine:定义和注解  bean:实例
	doProxy(beanDefine,bean){
		return new SpringProxy(bean,{
			method(wrapBean,method,args){
				console.log(`TransactionManager: 拦截方法:${method} 参数替换:[${args} => 你好]`);
				return wrapBean.invoke(["你好 "])
			}
		})
	}
}


//@Service
class Service {

	//@Value(config.app.msg)
	appMsg;

	say(userMsg){
		return `${userMsg} ${this.appMsg} \n`;
	}

}

//@SpringBoot
class Application {

	//@SpringFactory
	factory;

	//@Autowired
	service;
	
	main(){
		console.log(this.service.say("hello"))
	}
}

module.exports = {Application,Service,TransactionManager}

启动代码 applicationBoot.js

const {SpringBoot} = require("./Spring")

//正式使用的时候 删除packageName属性
new SpringBoot({srcList:["./app"],packageName:"./spring"}).run();

一些感谢的话

感谢开源大佬和社区的贡献,世界有你们更精彩。

** 如果觉得还不错,麻烦给个星星🤭,方便在乌鲁木齐找个工作 讨碗饭吃 哈哈。 **

查看回复

回复 (4)

8
892280082#1·4 年前

自己占个小板凳****

Z
zengming00#2·4 年前

反对意见,node有node的写法,go有go的写法,java那坨还不舍得丢掉

C
Caluyan#3·4 年前

同意楼上,java 那套依赖注入、控制反转思想,用尽各种反射技巧来解耦,在JS里面根本不是个问题。动态语言就是这点好,直接在运行时把字符串声明成对象。正因为这种强大的特性,才出现了node 无栈开发:https://wuyuan.io 如果用 java 搞一个支持动态加载 class 并且可以实时运行的云开发平台,就好比 eclipse 搬到云上,复杂到不敢想象。

8
892280082#4·4 年前
引用 zengming00反对意见,node有node的写法,go有go的写法,java那坨还不舍得丢掉

@zengming00 node有什么写法。。。从来没有听说过

参与回复
登录后即可参与回复。登录