• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

谷谷不咕咕

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

Bean对象初始化方式

一、构造器实例化(无参数构造器),最标准,使用最多

old:

1)创建一个类

public class SomeBean{
public SomeBean(){
System.out.println("SomeBean构造器");
}
}
2)配置配置文件
<bean id="someBean" class="com.hpe.test.SomeBean"></bean>
3)在测试类中读取配置文件并运行

public class SomeBeanTest {
public static void main(String[] args) {
  ApplicationContext context = new ClassPathXmlApplicationContext("spring.xml");

   SomeBean someBean = context.getBean("someBean",SomeBean.class);}
输出——>SomeBean构造器
New:
如果在对象中添加了属性,那么构造器注入使用如下方式:

添加属性的SomeBean:
public class SomeBean {
private Integer id;
private String name;
private Integer age;
public SomeBean() {
System.out.println("SomeBean构造器");
}
public SomeBean(Integer id, String name, Integer age) {
this.id = id;
this.name = name;
this.age = age;
}
@Override
public String toString() {
return "SomeBean{" +
"id=" + id +
", name='" + name + '\'' +
", age=" + age;}}
配置文件修改:
<bean id="someBean" class="com.hpe.test.SomeBean">
<constructor-arg index="0" value="1"/>
<constructor-arg index="1" value="张三"/>
<constructor-arg index="2" value="18"/>
</bean>
输出——>SomeBean{id=1,name='张三',age=18}

  还可修改为:
  <bean id="someBean" class="com.hpe.test.SomeBean">
  <constructor-arg type="java.lang.Integer" value="2"/>
  <constructor-arg type="java.lang.String" value="李四"/>
  <constructor-arg type="java.lang.Integer" value="20"/>
  </bean>
  或:
  <bean id="someBean" class="com.hpe.test.SomeBean">
  <constructor-arg name="id" value="3"/>
  <constructor-arg name="name" value="王五"/>
  <constructor-arg name="age" value="25"/>
  </bean>
从上面的配置中可以发现:配置构造器中的属性可以通过 index(索引)的方式来指定,也可以
通过type(类型)的方式来指定,还可以通过 name(属性名称)的方式来指定。那么这三种方
式中推荐使用 name 的方式来配置。因为使用 name 方式来配置的灵活性更高,同时还便于阅
读,以及它们之间的顺序可以不固定。




posted on 2021-03-03 13:57  谷谷不咕咕  阅读(203)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3