原生js实现java的spring框架
前言
写一些简单的应用node比java方便太多了,如果有了spring加成岂不是更加如虎添翼,嘿嘿。
传送门
介绍
- 原生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 回复
自己占个小板凳****
反对意见,node有node的写法,go有go的写法,java那坨还不舍得丢掉
同意楼上,java 那套依赖注入、控制反转思想,用尽各种反射技巧来解耦,在JS里面根本不是个问题。动态语言就是这点好,直接在运行时把字符串声明成对象。正因为这种强大的特性,才出现了node 无栈开发:https://wuyuan.io 如果用 java 搞一个支持动态加载 class 并且可以实时运行的云开发平台,就好比 eclipse 搬到云上,复杂到不敢想象。
@zengming00 node有什么写法。。。从来没有听说过