@component 构造函数_基于.net core Autowired注入,不用构造函数

最近.NET 5出来了,虽然最近没有使用但是还是一直关注着.NET的发展动态和相关生态。最近经常看到关于FreeSql轮子的介绍,所以想动手体验下说不定以后有项目用得着。然后在搭建框架的过程中发现一个问题,.NET CORE的依赖注入个人感觉太繁琐了,需要在构造函数里面传递感觉很不爽,准备自己手动定义Attribute,实现像java spring @Autowired注解那样实现自动装配。

9ca2b6cfd54d3832bb2c7cf34d27726c.png

.NET Cloud Native

当然动手之前手动搜索了下,发现相关问题已经有人提出来了,并且github上有一个类似的开源类库NAutowired,我看了下觉得还不错(^-^哈哈,挺开心又可以偷懒了)。

NAutowired 介绍

NAutowired是一个基于.NET Core 的属性注入依赖类库,通过在需要注入的实现类上标记[Service],便可以在使用的地方通过[Autowired]自动注入,不需要通过构造函数传递。

其开源主页介绍NAutowired的理念与定位如下:

我们不做容器,我们只是NET Core Container的搬运工(在默认容器的基础上增加了一些功能)。

不要在构造函数中使用NAutowired。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
package com.tiger.biz.websocket; import lombok.extern.slf4j.Slf4j; import org.java_websocket.client.WebSocketClient; import org.java_websocket.drafts.Draft_6455; import org.java_websocket.handshake.ServerHandshake; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Component; import javax.websocket.server.ServerEndpoint; import java.net.URI; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Map; import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.TimeUnit; /** * websocket的客户端 */ @Slf4j public class DemoWebSocketClient extends WebSocketClient { @Autowired private RedisTemplate<String, String> redisTemplate; public static final String HEARTBEAT_CMD = "此处为商定的保活命令"; public DemoWebSocketClient(URI serverUri) { super(serverUri, new Draft_6455()); } @Override public void onOpen(ServerHandshake serverHandshake) { //开启心跳保活 heartbeat(this); log.info("===建立连接,心跳保活开启==="); } @Override public void onMessage(String s) { log.info("{}时来自服务端的消息:{}", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()), s); try { Map<Object, Object> map = redisTemplate.opsForHash().entries("zd:location"); System.out.println(map.size()+"dd"); } catch (Exception e) { e.printStackTrace(); } } @Override public void onClose(int a, String s, boolean b) { //重连 log.info("由于:{},连接被关闭,开始尝试重新连接", s); DemoReconnectThreadEnum.getInstance().reconnectWs(this); } @Override public void onError(Exception e) { log.error("====websocket出现错误====" + e.getMessage()); } /** * 心跳保活 * * @param var1 */ private void heartbeat(DemoWebSocketClient var1) { Schedul 改进以上代码怎么让 redistimplate正常注入 且URI serverUri不报错
05-30

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值