spring中使用@PostConstruct和@PreConstruct注解
1.@PostConstruct说明
被@PostConstruct修饰的方法会在服务器加载Servlet的时候运行,并且只会被服务器调用一次,类似于Serclet的inti()方法。被@PostConstruct修饰的方法会在构造函数之后,init()方法之前运行。
2.@PreDestroy说明
被@PreDestroy修饰的方法会在服务器卸载Servlet的时候运行,并且只会被服务器调用一次,类似于Servlet的destroy()方法。被@PreDestroy修饰的方法会在destroy()方法之后运行,在Servlet被彻底卸载之前。(详见下面的程序实践)
package com.yygx.flowinterface.service.impl; import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy; import net.zoneland.uniflow.client.impl.SyncProcessServiceClient;
import net.zoneland.uniflow.client.impl.SyncTaskServiceClient; import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Repository; /**
*
* 流程引擎客户端工具类
* @author wuhda
*
*/
@Repository
public class FlowClientUtil { private final static Logger LOGGER = LoggerFactory.getLogger(FlowClientUtil.class); /**
* 流程类接口客户端
*/
private SyncProcessServiceClient processClient; /**
* 任务类接口客户端
*/
private SyncTaskServiceClient taskClient; @PostConstruct
public void init() {
// 接入系统的账号密码,在流程管理平台(UniflowAdminConsole)上配置
String username = "ehr";
String password = "password"; // Uniflow的服务地址
String endpoint = "http://172.16.92.50:10081/UniflowControlCenter/rest"; // 构建流程类接口客户端
processClient = new SyncProcessServiceClient(username, password);
processClient.setServerAddress( endpoint + "/RestProcessService" ); // 构建任务类接口客户端
taskClient = new SyncTaskServiceClient(username, password);
taskClient.setServerAddress( endpoint + "/RestTaskService" );
} @PreDestroy
public void close() {
System.out.println("close client ...");
// 应用结束是最好关闭客户端(内部有HttpClient的连接池)
processClient.close();
taskClient.close();
} public SyncProcessServiceClient getProcessClient() {
return processClient;
} public void setProcessClient(SyncProcessServiceClient processClient) {
this.processClient = processClient;
} public SyncTaskServiceClient getTaskClient() {
return taskClient;
} public void setTaskClient(SyncTaskServiceClient taskClient) {
this.taskClient = taskClient;
} }
spring中使用@PostConstruct和@PreConstruct注解的更多相关文章
- Spring中的@Valid 和 @Validated注解你用对了吗
1.概述 本文我们将重点介绍Spring中 @Valid和@Validated注解的区别 . 验证用户输入是否正确是我们应用程序中的常见功能.Spring提供了@Valid和@Validated两个注 ...
- Java开发之@PostConstruct和@PreConstruct注解
从Java EE5规范开始,Servlet增加了两个影响Servlet生命周期的注解(Annotation):@PostConstruct和@PreConstruct.这两个注解被用来修饰一个非静态的 ...
- Spring 中的事务操作、注解、以及 XML 配置
事务 事务全称叫数据库事务,是数据库并发控制时的基本单位,它是一个操作集合,这些操作要么不执行,要么都执行,不可分割.例如我们的转账这个业务,就需要进行数据库事务的处理. 转账中至少会涉及到两条 SQ ...
- Spring中Bean管理的常用注解
在Spring中,主要用于管理bean的注解分为四大类:1.用于创建对象.2.用于给对象的属性注入值.3.用于改变作用的范围.4.用于定义生命周期.这几个在开发中经常接触到,也可以说每天都会遇见.其中 ...
- 在spring中常被忽视的注解 @Primary
在spring 中使用注解,常使用@Autowired, 默认是根据类型Type来自动注入的. 但有些特殊情况,对同一个接口,可能会有几种不同的实现类,而默认只会采取其中一种的情况下 @Primary ...
- @PostConstruct和@PreConstruct注解
@PostConstruct和@PreConstruct.这两个注解被用来修饰一个非静态的void()方法.而且这个方法不能有抛出异常声明. @PostConstruct //方式1 public v ...
- 品Spring:对@PostConstruct和@PreDestroy注解的处理方法
在bean的实例化过程中,也会用到一系列的相关注解. 如@PostConstruct和@PreDestroy用来标记初始化和销毁方法. 平常更多的是侧重于应用,很少会有人去了解它背后发生的事情. 今天 ...
- Spring中通过java的@Valid注解和@ControllerAdvice实现全局异常处理。
通过java原生的@Valid注解和spring的@ControllerAdvice和@ExceptionHandler实现全局异常处理的方法: controller中加入@Valid注解: @Req ...
- Spring 中基于 AOP 的 @AspectJ注解实例
@AspectJ 作为通过 Java 5 注释注释的普通的 Java 类,它指的是声明 aspects 的一种风格.通过在你的基于架构的 XML 配置文件中包含以下元素,@AspectJ 支持是可用的 ...
随机推荐
- VIP系统
不同等级的VIP可以被_req调用,以实现分级控制 不同的VIP等级可以增加装备升级.强化成功的几率,掉率增加,VIP泡点等 VIP系统可以通过制作多功能Item.Creature及Gameobjec ...
- spring 配置Value常量(不支持到static上)
spring 配置Value常量(不支持到static上) 看代码吧,语言表达有问题. package com.variflight.xzair.rest.constant; import org.s ...
- httpd常见配置
httpd常见配置 配置文件 /etc/httpd/conf/httpd.conf 主配置文件 /etc/httpd/conf.d/*.conf 辅助配置文件 配置文件语法检查及重新加载配置文 ...
- Oracle判断周末
有些业务场景下会有择出周末的需求,具体判断语句如下: 1.SELECT TO_CHAR(TO_DATE(DATA_DATE,'YYYY-MM-DD),'D') FROM DUAL; 如果DATA_DA ...
- linux学习--目录切换命令 cd
- linux服务管理 服务启动和自启动
服务启动和自启动 '服务启动' 就是在当前系统中让服务运行,并提供功能 '服务自启动' 自启动是指服务在系统开机或重启动之后,随着启动系统的启动而自动启动服务 服务自启动 [root@ssgao198 ...
- linux svn 多项目设置
cd /svn/repos svnadmin create project_a svnadmin create project_b cd project_a cp -a conf /svn/ cd / ...
- Service(服务)
1.Service是封装了某一特定功能的独立模块: 2.它可以通过注入的方式供别的模块使用: 3.Service分为很多种,包括:值.函数以及应用所需的特性: 4.最简单的Service import ...
- [Codeforces778E]Selling Numbers
Problem 给一个由问号和数字组成的数字串A(问号表示任一数字). 再给定n个数字Bi,和0~9的数字的价值. F(x)表示x各个位数上的价值和.问A为何值时,sum(F(Bi+A))的值最大为多 ...
- windows下安装rabbitmq的步骤详解
(仅作为个人的备忘记录) Rabbit MQ 是建立在强大的Erlang OTP平台上,因此安装Rabbit MQ的前提是安装Erlang.通过下面两个连接可以下载安装最新的版本: 下载并安装Eral ...