文档章节

服务器启动时后 调用bean的某个方法

猿神出窍
 猿神出窍
发布于 2017/02/03 10:59
字数 222
阅读 32
收藏 0

场景: tomcat 启动时候 需要调用一个bean的某个方法

举例: tomcat  启动 调用start方法

public final class NettySocketServer {

    static final boolean SSL = System.getProperty("ssl") != null;
    static final int PORT = Integer.parseInt(System.getProperty("port", SSL? "8443" : "8090"));
    
    
//    @PostConstruct
    public  void start() throws CertificateException, SSLException, InterruptedException {
    	new Thread(){

			@Override
			public void run() {
				
				
				 // Configure SSL.
		        SslContext sslCtx = null;
		        if (SSL) {
		            SelfSignedCertificate ssc = null;
					try {
						ssc = new SelfSignedCertificate();
					} catch (CertificateException e1) {
						// TODO Auto-generated catch block
						e1.printStackTrace();
					}
		            try {
						sslCtx = SslContextBuilder.forServer(ssc.certificate(), ssc.privateKey()).build();
					} catch (SSLException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
						
					}
		        } else {
		            sslCtx = null;
		        }

		        EventLoopGroup bossGroup = new NioEventLoopGroup(1);
		        EventLoopGroup workerGroup = new NioEventLoopGroup();
		        try {
		            ServerBootstrap b = new ServerBootstrap();
		            b.group(bossGroup, workerGroup)
		             .channel(NioServerSocketChannel.class)
		             .handler(new LoggingHandler(LogLevel.INFO))
		             .childHandler(new WebSocketChildChannelHandler(sslCtx)); 

		            Channel ch = b.bind(PORT).sync().channel();

		            System.out.println("Open your web browser and navigate to " +
		                    (SSL? "https" : "http") + "://127.0.0.1:" + PORT + '/');

		            try {
						ch.closeFuture().sync();
					} catch (InterruptedException e) {
						e.printStackTrace();
					}
		            System.out.println("2222222222222222");
		        } catch (InterruptedException e1) {
					e1.printStackTrace();
				} finally {
		            bossGroup.shutdownGracefully();
		            workerGroup.shutdownGracefully();
		        }
				
			}
    		
    	}.start();;
    
    }
}

 处理方方法:

1 通过注解

   在 NettySocketServer 上用注解@service

   在start方法上用注解 @PopstConstruct

2 通过XML配置


 <bean id="XXX" class="xxx.NettySocketServer"  init-method="start" />

 

© 著作权归作者所有

猿神出窍
粉丝 18
博文 192
码字总数 71035
作品 0
沙坪坝
项目经理
私信 提问
Spring核心——Bean的定义与控制

在前面两篇介绍Sring核心与设计模式的文章中,分别介绍了Ioc容器和Bean的依赖关系。如果阅读过前2文就会知道,Spring的整个运转机制就是围绕着IoC容器以及Bean展开的。IoC就是一个篮子,所有...

随风溜达的向日葵
2018/06/28
2.5K
1
spring.xml的一些配置技巧总结

1:配置bean的时候,有两种方式 1.)包扫描:(包中的每个类都需要加上@注解。可以是自定义的注解!) @RpcService(value = "AnotactionA.class")@Component优点是:可以批量实例化类对象, ...

刘付kin
2016/12/08
52
0
Spring中关于bean的作用域与生命周期

在Spring中,那些组成应用程序的主体及由Spring IoC容器所管理的对象,被称之为bean。简单地讲,bean就是由IoC容器初始化、装配及管理的对象,除此之外,bean就与应用程序中的其他对象没有什...

忻胜霄
2018/06/07
253
0
spring容器加载完成执行某个方法

http://www.mincoder.com/article/1812.shtml 今天遇到一个问题,需要在项目中加入一个定时器,需要在项目启动后就执行,所以就在网上找spring容器初始化之后就执行的方法有什么: 查了很多资...

小手冰凉丶
2016/12/11
3
0
Spring的基础知识——IOC与DI

1、IOC (1)、概念:把对象的创建、初始化、销毁等工作交给Spring来做 (2)、Hello World 首先导入必须的jar包 接着创建bean容器配置文件applicationContext.xml(文件名可随意) <?xml ve...

littleant2
2016/01/06
85
0

没有更多内容

加载失败,请刷新页面

加载更多

JS 打印控制

JS 打印控制 var PrintStartString = "<!--打印开始标示符-->";//设置打印开始区域var PrintEndString = "<!--打印结束标示符-->";//设置打印结束区域var HtmlText = window.do......

DrChenXX
13分钟前
5
0
LevelDB:使用介绍

LevelDB 提供的接口其实很简单,下面举例进行简单说明。 安装 git clone https://github.com/google/leveldb cd leveldb mkdir -p build && cd build cmake -DCMAKE_BUILD_TYPE=Release .. ......

slagga
18分钟前
5
0
《JavaScript正则表达式迷你书》读书笔记

正则基础 常见简写形式 字符组 具体含义 记忆方式 \d 表示 [0-9]。表示是一位数字。 其英文是 digit(数字) \D 表示 [^0-9]。表示除数字外的任意字符。 \w 表示 [0-9a-zA-Z_]。表示数字、大小...

muzi131313
23分钟前
4
0
Git的反悔操作

概述 这次主要来讲讲Git的反悔操作,自己平时在写代码的过程中经常会出现想要弃用所有的改动或回滚到上一次commit的情况。Git上的反悔操作有reset、rebase、revert等,每个操作各有区别和对应...

duduYZ
23分钟前
2
0
实现双向绑定Proxy比defineproperty优劣如何?

前言 双向绑定其实已经是一个老掉牙的问题了,只要涉及到MVVM框架就不得不谈的知识点,但它毕竟是Vue的三要素之一. Vue三要素 响应式: 例如如何监听数据变化,其中的实现方法就是我们提到的双向...

寻找海蓝
35分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部