InitializingBean afterPropertiesSet
Person[name=Jack,age=10]
style==null:Person@deb6432[name=Jack,age=10,password=Jack'sPassword]
SHORT_PREFIX_STYLE:Person[name=Jack,age=10,password=Jack'sPassword]
SIMPLE_STYLE:Jack,10,Jack'sPassword
MULTI_LINE_STYLE:Person@deb6432[
name=Jack
age=10
password=Jack'sPassword
]
NO_FIELD_NAMES_STYLE:Person@deb6432[Jack,10,Jack'sPassword]
import org.apache.commons.lang3.builder.ReflectionToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle; import java.lang.reflect.Field;
import java.util.Objects; public class StringUtilsDemo {
public static void main(String[] args) {
Person person = new Person();
person.setName("Jack");
person.setPassword("Jack'sPassword");
person.setAge((short) 10);
System.out.println("" + person);
System.out.println("style==null:" + ReflectionToStringBuilder.toString(person));
System.out.println("SHORT_PREFIX_STYLE:" + ReflectionToStringBuilder.toString(person, ToStringStyle.SHORT_PREFIX_STYLE));//截去了包名
System.out.println("SIMPLE_STYLE:" + ReflectionToStringBuilder.toString(person, ToStringStyle.SIMPLE_STYLE));
System.out.println("MULTI_LINE_STYLE:" + ReflectionToStringBuilder.toString(person, ToStringStyle.MULTI_LINE_STYLE));
System.out.println("NO_FIELD_NAMES_STYLE:" + ReflectionToStringBuilder.toString(person, ToStringStyle.NO_FIELD_NAMES_STYLE)); }
} class Person {
private String name;
private Short age;
private String password; public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public Short getAge() {
return age;
} public void setAge(Short age) {
this.age = age;
} public String getPassword() {
return password;
} public void setPassword(String password) {
this.password = password;
} @Override
public String toString() {
return new ReflectionToStringBuilder(this, ToStringStyle.SHORT_PREFIX_STYLE) {
@Override
protected boolean accept(Field field) {
return super.accept(field) && !Objects.equals(field.getName(), "password");
}
}.toString();
} }


package org.test.InitializingBean; import org.springframework.context.support.ClassPathXmlApplicationContext; /**
* 测试 spring的 InitializingBean 接口
* @author Administrator
*
*/
public class InitializingBeanTest { /**
* @param args
*/
public static void main(String[] args) { ClassPathXmlApplicationContext ctx=new ClassPathXmlApplicationContext("applicationContext.xml",
InitializingBeanTest.class);
ctx.start(); } }
package org.test.InitializingBean; import org.springframework.beans.factory.InitializingBean; /**
* @see {@link org.springframework.beans.factory.InitializingBean#afterPropertiesSet}
* @author Administrator
*
*/
public class User implements InitializingBean { public User() {
System.out.println(">>>>>>> User 默认的构造函数执行了");
} @Override
public void afterPropertiesSet() throws Exception {
System.out.println(">>>>>>> 执行了 afterPropertiesSet 方法"); } }
执行的结果如下图所示。可以看到当执行完User默认的构造函数之后,就会调用该类实现afterPropertiesSet方法

InitializingBean afterPropertiesSet的更多相关文章
- spring中afterPropertiesSet方法与init-method配置描述
1. InitializingBean.afterPropertiesSet()Spring中InitializingBean接口类为bean提供了定义初始化方法的方式,它仅仅包含一个方法:after ...
- Spring的InitializingBean与DisposableBean方法
在bean初始化的时候,将所有显示提供的属性设置完毕后调用这个方法 org.springframework.beans.factory.InitializingBean#afterProperties ...
- Spring框架中InitializingBean执行顺序
本文转自:https://www.cnblogs.com/yql1986/p/4084888.html package org.test.InitializingBean; 2 3 import or ...
- spring bean中构造函数,afterPropertiesSet和init-method的执行顺序
http://blog.csdn.net/super_ccc/article/details/50728529 1.xml文件 <bean id="aaa" class=&q ...
- spring源码分析之freemarker整合
FreeMarker是一款模板引擎: 即一种基于模板和要改变的数据, 并用来生成输出文本(HTML网页.电子邮件.配置文件.源代码等)的通用工具. 它不是面向最终用户的,而是一个Java类库,是一款程 ...
- Spring Bean的生命周期(非常详细)
Spring作为当前Java最流行.最强大的轻量级框架,受到了程序员的热烈欢迎.准确的了解Spring Bean的生命周期是非常必要的.我们通常使用ApplicationContext作为Spring ...
- Spring Bean的加载
Spring加载bean的原则:不等bean创建完成就会将创建bean的ObjectFactory提早曝光加入到缓存中. 单例bean在Spring容器里只会创建一次,后续创建时会首先从缓存中获取 ...
- Spring+quartz 实现定时任务job集群配置
为什么要有集群定时任务? 因为如果多server都触发相同任务,又同时执行,那在99%的场景都是不适合的.比如银行每晚24:00都要汇总营业额.像下面3台server同时进行汇总,最终计算结果可能是真 ...
- spring容器对bean生命周期的管理三中方式
spring容器对bean的生命周期管理主要在两个时间点:bean的初始化完成(包括属性值被完全注入),bean的销毁(程序结束,或者引用结束)方式一:使用springXML配置中的init-meth ...
随机推荐
- [收藏] 关于解决“进程com.android.phone意外停止”的方法 (未尝试)
很多机油反应有这个情况,本人费劲九牛20虎之力终于克服之,这个现象一般出现在刚刷完系统会出现,甚至你怎么刷ROM这个现象依旧存在(崩溃不?)~~~有位机油刷了这个系统也出现了http://samsun ...
- Linux 每天自动备份mysql数据库的方法
Linux 每天自动备份mysql数据库的方法 作者: 字体:[增加 减小] 类型:转载 linux下为了安全有时候需要自动备份mysql数据库,下面是具体的实现步骤. /usr/bin为my ...
- DirectX 基础学习系列5 纹理映射
1 纹理坐标 类似BMP图像坐标系,左上为原点 纹理坐标为了规范化,范围限定在[0,1]之间,使用纹理的时候,需要修改顶点结构 struct ColorVetex { float x, y,z; fl ...
- 02/07/2106 @ 6:28am (UTC)
<?php echo pow(2,32); 4294967296 http://www.unixtimestamp.com/index.php 4294967296 Is equivalent ...
- Lazarus如何变成XE的界面
先设置: 进入“配置安装的包”,选中 EasyDockMgr 和 easyDockMgrDsgn 这两项,重新编译 Lazarus 吧 修改以后,界面就变成了XE的了:
- java 开发, jdk 1.6 官方下载地址
在oracle官方网站默认下载的jdk是最新的,目前正式版是1.8. 但有些项目要求是1.6的jdk,费了九牛二虎之力终于找到了1.6的官方版本,链接如下: http://www.oracle.com ...
- SQL查询中关于索引使用的笔记
建表KeyLevelStat (无主键),2个索引: CREATE TABLE KeyLevelStat( [Date] [int] NOT NULL, [Num] [varchar](8), [R0 ...
- GPG操作——签名验证
问题描述: 可能大家都遇到过软件在下载过程中由于网络原因导致下载的软件体积与实际软件体积不符.最常见的办法是对待下载文件附加一个摘要文件.这种做法比较常见,也比较容易实现.但是,还是会有一个问题:如果 ...
- angularJS推荐显示注入写法
使用js压缩工具时发现压缩之后的控制器注入参数由原来的$scope变成了a,b...这样的字母而导致js失效,那么我们推荐使用完整的显示注入方式来解决此问题! //隐式注入的写法 angular.mo ...
- const 修饰函数
At the very first ,I got a problem . Vector Vector::operator+(const Vector &v)const{ return Vect ...