Spring对bean的初始化
程序员文章站
2022-05-21 22:18:33
...
在Spring中,Bean的初始化有两种方式:
1、在配置文档中指定init-method属性来完成。
2、实现org.springframework.beans.factory.InitializingBean接口。
第一种方式:
配置文件如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean id="HelloWorld" class="com.example.demo.test.HelloWorld" init-method="init">
</bean>
</beans>
bean:
package com.example.demo.test;
public class HelloWorld {
public String msg;
public void init() {
msg = "HelloWorld~";
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
}
package com.example.demo.test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext;
public class SpringTest {
public static void main(String[] args) {
ApplicationContext actx = new FileSystemXmlApplicationContext("src/config/config.xml");
HelloWorld h = (HelloWorld) actx.getBean("HelloWorld");
System.out.println(h.getMsg());
}
}
第二种方式:
配置文件去掉init-method属性
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean id="HelloWorld" class="com.example.demo.test.HelloWorld">
</bean>
</beans>
bean:
package com.example.demo.test;
import org.springframework.beans.factory.InitializingBean;
public class HelloWorld implements InitializingBean {
public String msg;
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
@Override
public void afterPropertiesSet() throws Exception {
msg = "HelloWorld~";
}
}