Spring 装配Bean
Spring 装配Bean

1 <?xml version="1.0" encoding="UTF-8"?>
2 <beans xmlns="http://www.springframework.org/schema/beans"
3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4 xmlns:context="http://www.springframework.org/schema/context"
5 xsi:schemaLocation="http://www.springframework.org/schema/beans
6 http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"
7 >
8
9 <bean id=“myBean” class=“com.springDemo.beanDemo.BeanIntance”></bean>
10 </beans>

- aop:为声明切面以及将@AspectJ注解的类代理为Spring切面提供了配置信息
- beans:支持声明bean和装配bean,是spring最原始也是最核心的命名空间
- context:为配置spring应用上下文提供了配置元素,包括自动监测和自动装配Bean
- jee:提供与java EE API的集成,例如:JNDI和EJB
- jms:为声明消息驱动的POJO提供了配置元素
- lang:支持配置由Grooby,JRuby或BeanShell等脚本实现的Bean
- mvc:启用spring mvc的能力,例如面向注解的控制器,视图控制器和拦截器
- oxm:支持spring对象到XML配置的映射
- tx:声明式事务配置
- util:提供各种各样的工具类元素,包括把集合配置为Bean 支持属性占位符操作

1 “ new com.springDemo.beanDemo.BeanIntance(); ”
2 package com.springDemo.beanDemo
3
4 public class BeanIntance{
5 public BeanIntance myBean(){ BeanIntance intance = new BeanIntance(); intance.setBeanname = “bean,….” ; return intance }
6 private String beanName;
7 public void setBeanName(string beanName){ this.beanName = beanName; }
8 public String getBeanName(){ return beanName;}
9
10 }

ApplicationContext ctx = new classPathXmlApplicationContext(“spring-beans.xml”); // 加载spring-beans.xml 文件
BeanIntance beanIntance = (BeanIntance)ctx.getBean(“myBean”); // 读取mybean组件,
<bean id=“mybean” class=“com.springDemo.beanDemo.BeanIntance">
<constructor-arg value=“hello”/>
</bean>

1 public class BeanIntance{
2 public BeanIntance myBean(){ BeanIntance intance = new BeanIntance(); intance.setBeanname = “bean,….” ; return intance }
3 private String beanName;
4 public void setBeanName(string beanName){ this.beanName = beanName; }
5 public String getBeanName(){ return beanName;}
6 public BeanIntance( String str ){ this.beanName = str ; }
7 }

<bean id=“Sonbean” class=“com.springDemo.beanDemo.SonBeanIntance”/>
<bean id=“mybean” class=“com.springDemo.beanDemo.BeanIntance">
<constructor-arg value=“hello”/>
<constructor-arg ref=“Sonbean”/>
</bean>
1 <bean id=“Sonbean” class=“com.springDemo.beanDemo.SonBeanIntance” scope=“protoType”/>
- scope=“protoType” 属性就是让每次调用都会重新new一个实例出来 ,当然除了 protoType之后,Bean还提供了其他的作用域选项,如下:
- singleton :在每一个spring容器中,每一个bean都是一个唯一的实例(默认)
- protoType:允许Bean的定义可以被实例化任意次(每次调用都会创建一个实例)
- request:在一次http请求中,每个bean定义对应一个实例,该作用域仅在基于web的上下文中有效 比如:spring mvc
- session:在一个http session 中,每个Bean定义为一个实例,该作用域仅在基于web的上下文中有效 比如:spring mvc
- global-session:在一个全局http session中,每个Bean定义为一个实例,该作用域仅在portlet的上下文中有效 (Portlet是基于Java的Web组件,由Portlet容器管理,并由容器处理请求,生产动态内容)

1 pulic class student{
2 private String name;
3 public void setName(String name){this.name = name;}
4 public String getName(){return this.name;}
5 private int age;
6 public void setAge(int age){ this.age=age; }
7 public int getAge(){ return this.age; }
8 }

1 <bean id=“getStudentInfo” class=“com.springDemo.beanDemo.Student”>
2 <property name=“name” value=“liming”/>
3 <property name=“age” value=“18”/>
4 </bean>

1 <bean id=“getStudentInfo” class=“com.springDemo.beanDemo.Student”>
2 <property name=“name” value=“liming”/>
3 <property name=“age” value=“18”/>
4 <property name=“teacher” >
5 <bean class=“com.springDemo.beanDemo.Teacher">
6 </property>
7 </bean>


1 <?xml version="1.0" encoding="UTF-8"?>
2 <beans xmlns="http://www.springframework.org/schema/beans"
3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4 xmlns:p=“http://www.springframeword.org/schema/p">
5 <bean id=“getStudentInfo” class=“com.springDemo.beanDemo.Student”
6 p:name=“liming”
7 p.age=“18"
8 p.teacher-ref=“Teacher"
9 />
10 </beans>

- <list> : 装配list类型的值,允许重复
- <set> : 装配set类型的值,不允许重复
- <map> : 装配map类型的值,名和值允许类型
- <props> : 装配properties类型的值,名称和值必须都是string类型

1 <bean id=“getStudentInfo” class=“com.springDemo.beanDemo.Student”>
2 <property name=“studentList">
3 <list>
4 <ref bean=“getTeacherInfo”/>
5 <ref bean=“getFirstStudnetInfo”/>
6 <ref bean=“getscondStudentInfo”/>
7 </list>
8 </property>
9 </bean>


1 <bean id=“getStudentInfo” class=“com.springDemo.beanDemo.Student”>
2 <property name=“studentList">
3 <set>
4 <ref bean=“getTeacherInfo”/>
5 <ref bean=“getFirstStudentInfo”/>
6 <ref bean=“getsecondStudentInfo”/>
7 </set>
8 </property>
9 </bean>


1 <bean id=“getStudentInfo” class=“com.springDemo.beanDemo.Student”>
2 <property name=“studentList">
3 <map>
4 <entry key=“getTeacher” value-ref=“getTeacherInfo" />
5 <entry key=“getFirseStudent” value-ref=“getFirstStudentInfo" />
6 <entry key=“getSecondStudent” value-ref=“getsecondStudentInfo" />
7 </map>
8 </property>
9 </bean>

- key : 指定map中entry的值为string
- key-ref :指定map中entry的值为spring上下文中的其它bean的引用
- value :指定map中entry值为string
- value-ref : 指定map中entry的值为spring上下文中其它bean的引用

1 <bean id=“getStudentInfo” class=“com.springDemo.beanDemo.Student”>
2 <property name=“studentList">
3 <props>
4 <prop key=“getTeacher”>getTeacherInfo”</prop>
5 <prop key=“getFirseStudent>getFirstStudentInfo</prop>
6 <prop key=“getSecondStudent”>getsecondStudentInfo”</prop>
7 </props>
8 </properties>
9 </bean>

- <property> 元素用于把值或bean引入到Bean的属性中
- <props> 元素用于定义一个 java properties 类型的集合值
- <prop> 元素用于定义</prop> 元素中的成员
- 使用Bean的ID来引用Bean
- 调用方法和访问对象的属性
- 对值进行算数,关系和逻辑运算
- 正则表达式匹配
- 集合操作

1 <bean id=“getStudentInfo” class=“com.springDemo.beanDemo.Student”>
2 <property name=“studentList">
3 <props>
4 <prop key=“getTeacher”>getTeacherInfo”</prop>
5 <prop key=“getFirseStudent>getFirstStudentInfo</prop>
6 <prop key=“getSecondStudent”>getsecondStudentInfo”</prop>
7 </props>
8 </properties>
9 </bean>

<property name=“student” ref=“getStudent”/>
<property name=“multiplier” value=“#(T(java.lang.Math).Random())">
Spring 装配Bean的更多相关文章
- Spring装配bean
Spring配置的可选方案 Spring提供了如下三种装配机制: (1)在XML中显式配置 (2)在Java中显式配置 (3)隐式的bean发现机制和自动装配 Spring有多种方式可以装配bean, ...
- Spring装配Bean之XML装配bean
在Spring刚出现的时候,XML是描述配置的主要方式,在Spring的名义下,我们创建了无数行XML代码.在一定程度上,Spring成为了XML的同义词. 现在随着强大的自动化配置和Java代码的配 ...
- Spring装配Bean的过程补充
对上一篇的<Spring装配Bean的过程>的过程说一下,不然真产生了误区. 误区在哪里呢?那就是spring bean的作用域问题. 说哈常用的两种作用域:默认是scope = sing ...
- Spring装配Bean的过程
首先说一个概念:“懒加载” 懒加载:就是我们在spring容器启动的是先不把所有的bean都加载到spring的容器中去,而是在当需要用的时候,才把这个对象实例化到容器中. spring配置文件中be ...
- Spring 装配Bean入门级
装配解释: 创建应用对象之间协作关系的的行为通常称为装配(wiring),这也是依赖注入的本质 依赖注入是Spring的基础要素 一 : 使用spring装配Bean基础介绍 1 :声明Bean B ...
- 【转】spring 装配Bean中构造参数的注入
转载自:http://www.bianceng.cn/Programming/Java/201307/37027.htm spring 装配Bean中构造参数的注入 spring装配bean中还有一种 ...
- Spring装配Bean之组件扫描和自动装配
Spring从两个角度来实现自动化装配: 组件扫描:Spring会自动发现应用上下文中所创建的bean. 自动装配:Spring自动满足bean之间的依赖. 案例:音响系统的组件.首先为CD创建Com ...
- Spring装配Bean之Java代码装配bean
尽管通过组件扫描和自动装配实现Spring的自动化配置很方便也推荐,但是有时候自动配置的方式实现不了,就需要明确显示的配置Spring.比如说,想要将第三方库中的组件装配到自己的应用中,这样的情况下, ...
- spring装配Bean过程
主要流程: 1.读取配置文件 2.实例化bean和填充bean属性 这个粗略的流程感觉更像是一个需求,有了这个需求,那么spring内部是怎么处理的呢? 我们知道spring的两个核心接口BeanFa ...
随机推荐
- vb.net常用函数
当然,这些都可以从MSDN查到,但是有时候打开帮助老慢的,所以先放到这里放一放,查个函数什么的比较快一点.都是从网上搜来的.Abs(number) 取得数值的绝对值. Asc(String) 取得字符 ...
- Java多线程-新特征-锁
Java中读写锁有个接口java.util.concurrent.locks.ReadWriteLock,也有具体的实现ReentrantReadWriteLock,详细的API可以查看JavaAPI ...
- memset memcpy函数
memset 函数 1.其头文件为: #include<memory> 或者#include<string> 2.原型 看清是对每个字节,不是其类型 void *mems ...
- 学习使用GitHub(一)--之入门
因为经常Windows和linux系统交替的使用,在实验室一台电脑,在家一台电脑,自己的电脑和实验室的电脑上面的代码往往没法同步,以前由于种种原因(其实就是懒,没有学习GitHub这样的代码管理工具) ...
- dedecms一些技巧
有时我们很多栏目公用一个模版,但栏目展示的图片又不同,并且要考虑到多级栏目下的 {dede:field.typeid function="GetTopid(@me)"/} 这个能获 ...
- mysql 存储过程中的declare 和 set @的两种变量的区别
两者在手册中的说明: DECLARE var_name[,...] type [DEFAULT value]这个语句被用来声明局部变量.要给变量提供一个默认值,请包含一个DEFAULT子句.值可以被指 ...
- mud目录命令说明
目錄結構 以下列出的是 ES2 mudlib 根目錄下標準的子目錄結構,以及簡短的說明. /adm 儲存由系統管理者所管理的程式與資料檔. /std 儲存標準物件的程式碼. /obj 儲存通用物件 ...
- client|server 最简单的聊天
#include <stdio.h> #include <string.h> #include <stdlib.h> #include <sys/socket ...
- SQL Server 行的删除与修改-------------(未完待续P222 deep SQL Server 222 )
删除: 1.堆表:当行被删除时,不会自动重新组织页面上的空间.删除行时不会从物理页面上删除, 而只是把行偏移设置为 0 .表示空间没有使用.除了页面上没有被回收空间之外,堆中的 空白页也常常不会被回收 ...
- Crossing River poj1700贪心
题目描述:N个人过河,只有一只船,最多只能有两人划船,每个人划船速度不同,船速为最慢的人的速度.输入T为case个数,每个case输入N为人数,接下来一行输入的是每个人过河的时间,都不相同.要求输出N ...