一.前言

 <bean id="user1" scope="singleton" init-method="myInit" destroy-method="myDestory" class="com.ahd.domain.User">

  1.id作用设置对象名,scope为作用域,class是相关bean的完整路径.

  2.使用原型bean会对性能产生影响,尽量不要设置成prototype,除非有必要,尽量使用scope=”singleton”

  3.init-method和destroy-method为定制方法,前者为定制初始化bean的方法,后者为定制销毁bean及其他需要关闭对象的方法

  4.定制方法也可以通过注解的方式配置

  5.不推荐使用接口,使用接口后bean和springAPI绑定了

  6.如果要把bean的属性设置成空,可以设置成<null/>


二.bean的作用域

  

三.如何给集合对象注入值(map,list,set,数组)?

  1.list和数组类似:

        <property name="namelist">
<list>
<value>北京</value>
<value>上海</value>
<value>天津</value>
</list>
</property>
     <!--value元素改成ref即可引用其他bean对象 -->
   <property name="userlist">
<list>
<ref bean="user1"/>
<ref bean="user2"/>
</list>
   </property>

  

  java测试遍历代码:

    //遍历list<String>
for(String s:cu.getNamelist()){
System.out.println(s);
}
//遍历list<User>
System.out.println();
for(User user:cu.getUserlist()){
System.out.println(user.getId()+user.getName());
System.out.println(user);
}

  2.配置set,set无序不重复,配置代码beans:

     <property name="userset">
<set>
<ref bean="user1"/>
<ref bean="user2"/>
</set>
</property>

  

  java测试遍历代码:

        //遍历set
for(User user:cu.getUserset()){
System.out.println("set"+user.getId()+user.getName());
}

  3.配置map,

        <property name="usermaps">
<map>
<entry key="111" value-ref="user1"/>
<entry key="222" value-ref="user2"/>
</map>
</property>

  

  java测试遍历代码:

        //遍历map,方式一
Map<String,User> map=cu.getUsermaps();
for(String key:map.keySet()){
System.out.println(key+map.get(key)+"user:"+map.get(key).getId());
}
//遍历map,方式二(使用迭代器)
Iterator<Map.Entry<String,User>> it=map.entrySet().iterator();
while(it.hasNext()){
Map.Entry<String, User> entry=it.next();
System.out.println("key:"+entry.getKey()+" value:"+entry.getValue());
} //遍历map,方式三,适合数据量特别大的时候
for(Map.Entry<String, User> entry:map.entrySet()){
System.out.println(entry.getKey()+entry.getValue());
} //遍历map,方式四,只能遍历value,不能遍历key
for(User user:map.values()){
System.out.println(user);
}

  4.给属性集合配值:

     <property name="userpro">
<props>
<prop key="user">password</prop>
<prop key="user1">password1</prop>
</props>
</property>

  

  测试代码

     Properties prop=cu.getUserpro();
Enumeration<Object> keys = prop.keys();
while(keys.hasMoreElements()){
String key=keys.nextElement().toString();
System.out.println(key+" "+prop.getProperty(key));
}

  

四.内部bean,

  内部bean不能被其他对象所引用,只能供父bean使用

  <bean id="user1" class="com.ahd.domain.User">
<property name="name">
<bean id="user3" class="com.ahd.domain.Use">
<property name="id" value="2" />
<property name="name" value="李四" />
</bean>
</property>
</bean>

五.继承 

    <bean id="check3"   parent="validateUser"    class="com.ahd.serviceImpl.CheckUser3">
<property name="phone">
<value>13548965896</value>
</property>
</bean>

  

  

  CheckUser3 类.
package com.ahd.serviceImpl;

import com.ahd.service.ValidateUser;

public class CheckUser3 extends CheckUser1{
private String phone;
public CheckUser3(){ }
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
} }

spring_05装配bean的更多相关文章

  1. [spring]03_装配Bean

    3.1 JavaBean 3.1.1 JavaBean 是什么 JavaBean 是一种JAVA语言写成的可重用组件. 为写成JavaBean,类必须是具体的和公共的,并且具有无参数的构造器. Jav ...

  2. Spring学习系列(三) 通过Java代码装配Bean

    上面梳理了通过注解来隐式的完成了组件的扫描和自动装配,下面来学习下如何通过显式的配置的装配bean 二.通过Java类装配bean 在前面定义了HelloWorldConfig类,并使用@Compon ...

  3. 装配bean

    spring有三种装配bean的方式:隐式装配.java代码装配.xml装配 隐式装配最为省事方便,也称为自动化装配 这三种装配方式可以混搭着来用 在这里通过一个例子来讲述配置 CD的两个实现,一个是 ...

  4. IOC装配Bean(注解方式)

    Spring的注解装配Bean Spring2.5 引入使用注解去定义Bean @Component 描述Spring框架中Bean Spring的框架中提供了与@Component注解等效的三个注解 ...

  5. [原创]java WEB学习笔记103:Spring学习---Spring Bean配置:基于注解的方式(基于注解配置bean,基于注解来装配bean的属性)

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  6. spring IOC装配Bean(注解方式)

    1 Spring的注解装配Bean (1) Spring2.5 引入使用注解去定义Bean @Component 描述Spring框架中Bean (2) Spring的框架中提供了与@Componen ...

  7. Spring常用注解,自动扫描装配Bean

    1 引入context命名空间(在Spring的配置文件中),配置文件如下: xmlns:context="http://www.springframework.org/schema/con ...

  8. Spring学习笔记—装配Bean

    在Spring中,对象无需自己负责查找或创建与其关联的其他对象.相反,容器负责把需要相互协作的对象引用赋予各个对象.创建应用对象之间协作关系的行为通常称为装配(wiring),这也是依赖注入的本质. ...

  9. 自动装配Bean

    Spring提供了几种技巧,可以减少XML的配置数量: 自动装配(autowiring):可以减少<property>(setter注入)和<constructor-arg>( ...

随机推荐

  1. 前端 高级 (二十五)vue2.0项目实战一 配置简要说明、代码简要说明、Import/Export、轮播和列表例子

    一.启动服务自动打开浏览器运行 二.配置简要说明 1.node_modules 安装好的依赖文件,中间件等,所在位置 2.package.jason 配置当前项目要安装的中间件和依赖文件 { &quo ...

  2. Python基础理论 - 常用模块

    time模块:时间戳.时间字符串.时间对象以及如何转换 random模块:随机小数.整数.区间,随机列表元素,打散列表 os模块:与操作系统交互的一个接口,os.path操作文件的路径 sys模块:s ...

  3. 关于Nginx设置端口号,在Asp.net 获取不到的,解决办法

    不知道你有没有遇到过这样的问题,网站访客多起来后,心里很是高兴,加上了Nginx反向代理,出问题了 原来是这么写的: Request.Url.ToString() 输出是这样的: http://www ...

  4. 了解Serverless架构

    1 概述 Serverless中文译为“无服务”是一种新兴起的架构模式,公司ESB产品引入Rest微服务服务机制过程,笔者刚好参与其中,其中Serverless作为一个新起的概念,跟微服务架构相关,为 ...

  5. Spring源码追踪1——doGetBean(为什么org.springframework.data.redis.core.RedisTemplate的实例可以注入为ListOperations)

    类org.springframework.beans.factory.support.AbstractBeanFactory方法T doGetBean(final String name, final ...

  6. dubbo实用知识点总结(一)

    1. dubbo基础架构 架构 特性 服务提供者 服务消费者 配置可以用dubbo.properties来替换 2. 注解配置 提供方(注意:serivce注解是dubbo的service) 消费者 ...

  7. 对List集合中的对象中的某个属性进行排序

    今天在项目中遇到的问题,不能在sql中进行order by.所以将数据库中查询出来的集合,在java代码中进行排序 Collections.sort(list, new Comparator<H ...

  8. Python super() 函数的概念和例子

    概念: super() 函数是用于调用父类(超类)的一个方法. super 是用来解决多重继承问题的,直接用类名调用父类方法在使用单继承的时候没问题,但是如果使用多继承,会涉及到查找顺序(MRO).重 ...

  9. Python编程Day7——字符编码、字符与字节、文件操作

    一.字符编码 重点 ***** 1. 什么是字符编码:将人识别的字符转换计算机能识别的01,转换的规则就是字符编码表2. 常用的编码表:ascii.unicode.GBK.Shift_JIS.Euc- ...

  10. nginx介绍(一) 简介篇

    Nginx(发音为"engine x")是一款由俄罗斯软件工程师Igor Sysoev年发布以来nginx一直关注于高性能.高并发.低内存的使用,另外还有一些特色的Web服务器功能 ...