一、使用 @PostConstruct 注解
1.1、原理
@PostContruct 是Java自带的注解,在方法上加该注解会在项目启动的时候执行该方法,也可以理解为在spring容器初始化的时候执行该方法。
1.2、代码
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
/**
* @Configuration本质上还是@Component
*/
//@Configuration
@Component
public class NettyProtConfiguration {
public static Integer coordinationProt;
@Value("${netty.server.prot.coordination}")
public Integer nettyServerProtCoordination;
@PostConstruct
public void setCoordinationProt() {
coordinationProt = this.nettyServerProtCoordination;
}
}
二、使用 InitializingBean
2.1、原理
当一个类实现这个接口之后,Spring启动后,初始化Bean时,若该Bean实现InitialzingBean接口,会自动调用afterPropertiesSet()方法,完成一些用户自定义的初始化操作。
2.2、代码
import org.springframework.beans.factory.InitializingBean;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
/**
* @Configuration本质上还是@Component
*/
//@Configuration
@Component
public class NettyProtConfiguration2 implements InitializingBean {
public static Integer coordinationProt;
@Value("${netty.server.prot.coordination}")
public Integer nettyServerProtCoordination;
@Override
public void afterPropertiesSet() throws Exception {
coordinationProt = this.nettyServerProtCoordination;
}
}
三、测试
3.1、代码
import com.wangjing.socket.netty.NettyProtConfiguration;
import com.wangjing.socket.netty.NettyProtConfiguration2;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication(scanBasePackages = "com.wangjing")
public class SocketApplication {
public static void main(String[] args) {
SpringApplication.run(SocketApplication.class, args);
System.out.println("使用 @PostConcust注解的方式,获取常量的值: " + NettyProtConfiguration.coordinationProt);
System.out.println("使用 实现InitializingBean接口的方式,常量的值为: " + NettyProtConfiguration2.coordinationProt);
}
}
# 配置文件,yml 格式
netty:
server:
prot:
coordination: 8804
3.2、效果
注:以上内容仅提供参考和交流,请勿用于商业用途,如有侵权联系本人删除!
版权声明:本文为wang_jing_jing原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。