上一篇博客中我实现了客户端的断线重连,断开连接后无限重试,并在连接之后无限发送消息给客户端,有兴趣的朋友可以查看我的这篇博客netty客户端连接后无限发送数据,连接不上时无限重试,断线重连
需求是这样的,在springboot项目启动后,需要自动启动启动Netty的客户端,并且无限给服务端发送消息,并将返回的消息利用mybatis存储进数据库。(存库这一步我就不说了,主要实现在项目启动时启动netty)
有四种方法
一、实现CommandLineRunner接口,重写run方法
package com.ning.myrun;
import org.springframework.boot.CommandLineRunner;
import org.springframework.stereotype.Component;
import com.ning.nett.NettyClient;
@Component
public class MyStart1 implements CommandLineRunner{
@Override
public void run(String... args) throws Exception {
NettyClient.connect(10007, "127.0.0.1");
}
}
二、实现ApplicationRunner接口,重写un方法
package com.ning.myrun;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.stereotype.Component;
import com.ning.nett.NettyClient;
@Component
public class MyStart2 implements ApplicationRunner {
@Override
public void run(ApplicationArguments args) throws Exception {
NettyClient.connect(10007, "127.0.0.1");
}
}
三、初始化方法加上@PostConstruct注解
package com.ning.myrun;
import javax.annotation.PostConstruct;
import org.springframework.stereotype.Component;
import com.ning.nett.NettyClient;
@Component
public class MyStart3{
@PostConstruct
public void test() throws Exception {
NettyClient.connect(10007, "127.0.0.1");
}
}
四、其他实现思路
我们只需要让方法得以执行就可以,比如这样做:
package com.ning.myrun;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import com.ning.nett.NettyClient;
@Configuration
public class MyStart4 {
@Bean
public String startNetty() {
try {
NettyClient.connect(10007, "127.0.0.1");
} catch (Exception e) {
e.printStackTrace();
}
return "startNetty";
}
}
在或者,直接扔进静态代码块:(不断探索嘛)
package com.ning.myrun;
import org.springframework.stereotype.Component;
import com.ning.nett.NettyClient;
@Component
public class MyStart5 {
static {
try {
NettyClient.connect(10007, "127.0.0.1");
} catch (Exception e) {
e.printStackTrace();
}
}
}
这样可能不规范,但也可以实现