@PostConstruct、@Autowired以及构造函数的执行顺序
结论先行:构造函数 -> PostConstruct -> @Autowired 依次执行
由于项目需要启动时加载一个配置信息,所以想到了用@PostConstruct,如下所示:
@Configuration
public class BUserCenterConfig { @Value("${b.user.url}")
public String userCenterUrl; @Value("${b.user.appId}")
public String userCenterAppId; @PostConstruct
public void setDefaultConfig() {
UserCenterConfig.SetInterfaceUrl(userCenterUrl);
UserCenterConfig.SetDefaultAppId(userCenterAppId);
}
}
BeanTest.java
@Service
public class BeanTest { @Autowired
private BeanTest2 beanTest2; public BeanTest() {
System.out.println("this is BeanTest construct. ");
} @PostConstruct
private void init() {
System.out.println("this is BeanTest init function. ");
beanTest2.test2();
}
}
BeanTest2.java
@Service
public class BeanTest2 { @PostConstruct
private void init() {
System.out.println("this is BeanTest2 init function. ");
} public BeanTest2() {
System.out.println("this is BeanTest2 construct. ");
} void test2() {
System.out.println("this is BeanTest2 test2 function. ");
}
}
启动项目,输出结果如下:
this is BeanTest construct.
this is BeanTest2 construct.
this is BeanTest2 init function.
this is BeanTest init function.
this is BeanTest2 test2 function.
@PostConstruct、@Autowired以及构造函数的执行顺序的更多相关文章
- C# 父子类_实例_静态成员变量_构造函数的执行顺序
		
今天去面试的时候被一道题问得一点脾气都没有,今天特地来研究下. 子类成员变量,子类静态成员变量,子类构造函数,父类成员变量,父类静态成员变量,父类构造函数的执行顺序. 现在贴上从另外一个.net程序员 ...
 - Java的初始化块、静态初始化块、构造函数的执行顺序及用途探究
		
Java与C++有一个不同之处在于,Java不但有构造函数,还有一个”初始化块“(Initialization Block)的概念.下面探究一下它的执行顺序与可能的用途. 执行顺序 首先定义A, B, ...
 - Java组合与继承生成的类中构造函数的执行顺序
		
[程序实例] import java.util.*; class Meal{ Meal() { System.out.println("Meal Constructor"); } ...
 - Java基础  静态块、非静态块、构造函数的执行顺序
		
Java中经常有一些静态块,这是用来在生成类之前进行的初始化,无论java还C++语言中的static,都是最先初始化好的.结构如下: static { 静态语句代码块 } { 非静态语句代码块 } ...
 - C#基础知识之父子类,实例、静态成员变量,构造函数的执行顺序(经典示例)
		
父子类.示例.静态成员变量.构造函数的概念的基础理解完全可以利用下面的示例诠释,非常经典,直接上代码: public class ShowInfo { public ShowInfo(string i ...
 - java子类和父类中静态块、非静态块、构造函数的执行顺序
		
public class qqqq extends Parent{ public static void main(String[] args) { new Child(); } } class Pa ...
 - 【转】C#父类与子类的静态成员变量、实例成员变量、构造函数的执行顺序
		
原文地址:http://www.xuebuyuan.com/1092603.html Win7+VS2010测试的结果如下: ①子类静态成员变量②子类静态构造函数③子类实例成员变量④父类静态成员变量⑤ ...
 - Java中继承时静态块,构造块,构造函数的执行顺序
		
public class Father { static { System.out.println("Father静态块"); } { System.out.println(&qu ...
 - C++-理解构造函数、析构函数执行顺序
		
先初始化序列中的函数调用,如果基类构造函数为非引用传递,则引起参数的拷贝构造 再: 先类内的成员构造函数(拷贝/默认),再类的构造函数:先基类,再派生类: 本文主要说明对象创建时构造函数的执行顺序,对 ...
 
随机推荐
- Spring Cloud Eureka 服务注册中心(二)
			
序言 Eureka 是 Netflix 开发的,一个基于 REST 服务的,服务注册与发现的组件 它主要包括两个组件:Eureka Server 和 Eureka Client Eureka Clie ...
 - java架构之路-(tomcat网络模型)简单聊聊tomcat(二)
			
上节课我们说到的Tomcat,并且给予了一般的tomcat配置,和配置的作用,提到了HTTP/1.1 也就是我们的网络通讯模型,那么HTTP/1.1又代表什么呢.我们来简答看一下. tomcat有四种 ...
 - Python对csv排序
			
#/usr/bin/evn python # -*- coding: utf-8 -*- import sys from operator import itemgetter # input_file ...
 - C#解析JSON数组
			
方式一 第一步:使用前,需下载:Newtonsoft.Json.dll 没有的,请到我百度云盘下载 链接:https://pan.baidu.com/s/1JBkee4qhtW7XOyYFiGOL2Q ...
 - 用SignApk.jar对APK进行签名
			
对apk签名需要使用SignApk.jar和签名文件.可以使用Android源码获取,若没有源码,可以在这下载:SignApk.jar.(包含了SignApk.jar和签名文件和批处理文件) 1 Si ...
 - 统计代码测试覆盖率-Python
			
衡量Unit Test(单元测试)是否充分, 覆盖率是一个必要指标, 是检验单元测试的重要依据, 这里针对python unittest 的单元测试覆盖率coverage进行分享. 来自官方的解释: ...
 - 155--MinStack
			
/* 解法一:使用链表从0实现栈,用min来存放最小值. 复杂的地方是,如果pop了最小的数,就要遍重新找到最小的数. */ public class MinStack { List<Integ ...
 - centos7 安装gitlab及简单配置
			
1.安装 wget -O gitlab.rpm https://packages.gitlab.com/gitlab/gitlab-ce/packages/el/7/gitlab-ce-11.11.3 ...
 - C++编译错误 --- 成员函数定义在 .h 文件中出现重定义错误(Error LNK 2005)
			
今天写了一个简单的类,定义在 .h 文件中, 类很简单就将其成员函数定义在了一起(class类后面).运行的时候出现了如下图所示的编译错误(error LNK2005) 查资料,大部分都是说需要加上 ...
 - mysql常用配置注意项与sql优化
			
建立数据库: 建立数据库时编码字符集采用utf8 排序规则: 后缀"_cs"或者"_ci"意思是区分大小写和不区分大小写(Case Sensitive & ...