springboot在启动项目时初始化自定义方法,以netty为例,三种方式对比

上一篇博客中我实现了客户端的断线重连,断开连接后无限重试,并在连接之后无限发送消息给客户端,有兴趣的朋友可以查看我的这篇博客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();
		}
	}
}

这样可能不规范,但也可以实现

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值