怎么把tcp协议交由spring的bean管理

8 篇文章 0 订阅

这是我在项目中遇到的问题,tcp如果自己启动,在springboot项目中是找不到注入对象的,那么为啥找不到注入对象是因为你没有交由spring来管理,spring容器中没有找到该类的对象,所以会出现在容器中找不到注入的类。

因为tcp是Server端,所以要启动项目的时候启动,而项目又是一个springboot项目,怎么才能在springboot项目中启动Server端的tcp的soket呢?

我做了测试,第一次是直接new 了一个,然后放入启动类里面:

@SpringBootApplication
@EnableScheduling
public class DemoApplication {

    public static void main(String[] args) throws IOException {
                SpringApplication.run(DemoApplication.class,args);
                TcpServer_2 tcp = new TcpServer_2();//这个是写tcpServer端的类
                tcp.tcpmain();//这个是tcp启动的main方法
       
    }

}

然而这样测试以后,发现,springboot不识别我自己new的对象,虽然tcp的Server端确实启动了,但是我在TcpServer_2类中找不到Springboot的注入的类:service、dao层注入都是null,没办法了,只好研究一下,为啥spring会不认识,我自己new的对象了,最后发现spring只会管理和找到注入到自己容器中的对象,当然,以前也是知道spring会管理容器中的对象,但是毕竟是理念,没有实际的遇到过,在研究了以后,这一刻突然感觉明朗了许多,如果要用spring,最好是所有的一切都交由spring来管理,否则你的对象只会找不在spring中注入的对象

哈哈哈,谈到别处啦,回归正传,解决问题,直接上代码,就绕圈子了:

@SpringBootApplication
@EnableScheduling
public class DemoApplication {

    public static void main(String[] args) throws IOException {
        SpringApplication.run(DemoApplication.class, args).getBean(TcpServer_2.class).tcpmain();
        System.out.println("222222222222222222222222222222");
    }

}

getBean大家都知道吧,这个就是spring获取TcpServer_2类的对象,交由spring容器去管理,spring拿到bean以后,就相当于spring认可你是自己人,接下来,你要获取spring容器中其他注入的bean轻而易举。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值