(相关资料图)
在 Solon 提倡“克制”的原则下,托管组件分为:
普通组件代理组件(即 @ProxyComponent 注解的类)。代理的细节可以看下《动态代理的本质》 。之所以需要代理,是为了能拦截函数;之所以需要拦截函数,是为了让函数上的注解生效。也算是 AOP 的基础。(如果没有拦截需求,改用 @Component)
如何使用 @ProxyComponent 注解?
1、从替代的角度、或语义的角度使用原来使用 @Service、@Dao、@Repository这三个注解的,或者有这三种语义的类,都用 “@ProxyComponent” 注解。这些类经常会用到事务、或者缓存注解,就会需要函数拦截。使用示例:
@ProxyComponentpublic class UserService{ //...}@ProxyComponentpublic class UserDao{ //...}@ProxyComponentpublic class UserRepository{ //...}
从团队执行规范的管理角度,这个方式比较好,简单:语义对上,就用。
2、从技术的角度使用如果一个类的函数上,使用了“用于拦截的注解”,则使用 “@ProxyComponent” ;如果没有,则使用 “@Component”。比如:
//这个类,虽然也叫 Service,但是函数没有使用“用于拦截的注解”就使用普通组件注解即可。@Componentpublic class ToolService{ public bool isEmpty(String str){ return str=null || str.length()==0; }}//这个类,使用了“用于拦截的注解”,需要使用 "@ProxyComponent"(在函数上加注解,基本上都是拦截目的)@ProxyComponentpublic class UserService{ @Tran public void addUser(UserDo user){ //... }}
从高性能与克制角度,这个方式好。但团队的话,因人员素质差异,可能不好把控细节。
3、补充为什么 “@Controller、@Remoting” 不是动态代理类,也支持函数拦截?因为它们的 Method 被提取并包装成了 MethodWrap。而,所有的函数拦截最终都是由 MethodWrap 执行。
关键词:
【天天时快讯】Solon2 常用注解之 @ProxyComponent 用法说明
当前快讯:36氪首发 | 「随幻科技」完成A+轮数千万元融资,将加速3D虚拟空间业务布局
环球百事通!4月18日基金净值:万家品质生活混合A最新净值2.8771,涨1.34%
广交会折射外贸活跃度 进出口支撑作用不减
4月18日基金净值:景顺长城资源垄断混合最新净值0.59,跌0.34% 焦点短讯
汉字找茬王名梗消除攻略
环球观天下!中海油田服务(02883.HK):4月18日南向资金减持178.6万股
刚刚,雷军官宣新朋友!“高启强”成小米影像探索家|世界快消息
宝明科技(002992):4月18日北向资金减持11.04万股
天天新资讯:与企业一起成长的故事_与企业一起成长
上海发票查询全国统一发票查询平台官网_上海发票查询
如何在小方框里打勾勾_如何在小方框里打钩
观天下!G7国家公然干涉我国内政,不许大陆武统台岛!中国外交部给予反击
【全球报资讯】《欢乐颂4》:道德绑架还泼脏水,叶蓁蓁的准婆婆心眼实在太多!
“低碳家园”项目动态 | “植”此青绿,滋润童年-全球热资讯
环球快看:香港机管局面向内地旅客推出机票赠送计划
国际学生多彩活动共度“国际中文日” 感受中华传统文化魅力 当前通讯
海报直击丨连线苏丹中企员工:停电后关门关窗不外出 当地游行堵路很常见-世界信息
四大名刹怎么读音_四大名刹分别是什么 环球热讯
环球视讯!2022韩版情侣装十大品牌排行榜_韩版情侣装哪个牌子好
吉祥航空第二大股东东航产投拟减持不超2%股份 环球观速讯
全球微资讯!瘦肉怎样更嫩 瘦肉怎样更嫩变嫩
潮流配色、素皮印花:华为nova 11系列引领科技新美学
中国银行对公业务是什么_银行对公业务是什么意思? 世界百事通
华润水泥控股(01313.HK)拟4月28日举行董事会会议 审批一季度业绩
动态:网友感到担忧!iOS 17支持第三方应用商店:这下跟安卓没区别了
快资讯丨变态mu全民奇迹无限钻石版 变态奇迹无限钻石版大全
零就业申请书范文_就业申请书 范文
紫鑫药业就新增诉讼等情况进行说明-当前热门
精选!四氧化三锰商品报价动态(2023-04-18)